Autor Tema: 16f877 con LCD y el sensor sht15 (temperatura y humedad)  (Leído 11508 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mleyton

  • PIC10
  • *
  • Mensajes: 6
16f877 con LCD y el sensor sht15 (temperatura y humedad)
« en: 20 de Enero de 2008, 16:07:16 »
'****************************************************************
'*  Name    : sht15.BAS                                         *
'*  Author  : [Mauricio Leyton Carrasco]                        *
'*  Notice  : Copyright (c) 2005 [set under view...options]     *
'*          : All Rights Reserved                               *
'*  Date    : 01/19/2007                                        *
'*  Version : 1.0                                               *
'*  Notes   :   Leer la data de temperatura y humedad  para ser *
'*              enviada por la RS232, asi como tambien a un dis-*
'*              play LCD de 2 x 16, mostrando en el display las *
'*              temperaturas-humedad maxima y minima            *     
'*              Mantener la linea Define LOADER_USED 1          *
'****************************************************************
Define   LOADER_USED   1
include "modedefs.bas"

' Define LCD pines
Define  LCD_DREG        PORTD 'puerto D para LCD
Define  LCD_DBIT        4      'bit de partida
Define  LCD_BITS        4       'cantidad de bit
Define  LCD_RSREG       PORTE   'puerto E para RSREG
Define  LCD_RSBIT       0       'pin 0 para RSREG
Define  LCD_EREG        PORTE   'puerto E para Enable
Define  LCD_EBIT        1       'pin 1 para Enable

' Define parametros de rs 232
   DEFINE   DEBUG_REG   PORTC   ' Puerto C
   DEFINE   DEBUG_BIT   6      ' ***  pin Bit-6 ***
   DEFINE   DEBUG_BAUD 1200   ' *** Baud Rate ***
   DEFINE   DEBUG_MODE   0      ' Set Puerto Serial Mode 0=True, 1=Inverted
   DEFINE   DEBUG_PACING 300   ' retardp en microsegundos entre cada caracter
    DEFINE  DEBUGIN_REG PORTC
    DEFINE  DEBUGIN_BIT 7
    DEFINE  DEBUGIN_MODE  0





ADCON1 = 7              ' Setea Puerto A y Puerto E para digital
 Low PORTE.2



'** Asigamiento de Pines

dta    VAR PORTD.2 ' Linea de Datos
clk    VAR PORTD.3 ' Reloj Serial
'ser_tx VAR PORTC.6

'** Constantes

cmdtr CON %00000011 ' Command "read temperature"
cmdhr CON %00000101 ' Command "read humitity"

'** Variables

result VAR WORD ' RAW Data from Sensor
chksum VAR BYTE ' Checksum
cmd    VAR WORD ' Sensor Command
RHlin  VAR WORD ' Rel. Humidity (RH) Linear (% *10)
RHtc   VAR WORD ' Rel. Humidity (RH) temp. compensated (% *10)
Temp   VAR WORD ' Temperature (°C *100)
i      VAR BYTE
maxi   VAR WORD
mini   VAR WORD
maxhr   VAR WORD
minhr   VAR WORD

flag   VAR BIT
flag = 0
maxi = 0
mini = 0
maxhr = 0
minhr = 0
PAUSE 1000
main:
'SEROUT2 GPIO.5,16468,["COMIENZO...",10,13]
GoSub init
cmd = cmdtr

GoSub readsensor
Temp=result-3995

GoSub init
cmd = cmdhr

GoSub readsensor
RHlin=(26542-(54722**result+result))**result-40 ' RH linear
RHtc=655+(result*5)+(result**15917)
RHtc=(RHtc**(Temp/10+2480))-(RHtc**2730)+RHlin ' RH temp. compensated

'++++++++++++++++++++++++++++++++++++++++++
if flag = 0 then mini = Temp
if flag = 0 then minhr = RHtc
if Temp > maxi then maxi = Temp
if Temp < mini then mini = Temp
if RHtc > maxhr then maxhr = RHtc
if RHtc < minhr then minhr = RHtc
flag = 1
DEBUG "TEMP",DEC2 temp/100,".",DEC1 temp/10," - %HR:",DEC2 RHTC/10,".",DEC1 RHTC,10,13
LCDOUT $fe,128, "TEMP = ",DEC2 temp/100,".",DEC1 temp/10," C"
LCDOUT $fe,192,"HR   = ",DEC2 RHTC/10,".",DEC1 RHTC," %"
PAUSE 5000
LCDOUT $fe,1
LCDOUT $fe,128, "Max T = ",DEC2 maxi/100,".",DEC1 maxi/10," C"
LCDOUT $fe,192, "Min T = ",DEC2 mini/100,".",DEC1 mini/10," C"
PAUSE 5000
LCDOUT $fe,1
LCDOUT $fe,128, "Max HR = ",DEC2 maxhr/10,".",DEC1 maxhr," %"
LCDOUT $fe,192, "Min HR = ",DEC2 minhr/10,".",DEC1 minhr," %"
PAUSE 5000
LCDOUT $fe,1

GoTo main

'** Iniciar Sensor
init:
High dta
Low clk
For i=1 to 10
High clk
Pause 1
Low clk
Pause 1
Next i
Call tstart
Return

'** Comienzo de Transferencia
tstart:
High clk
Pause 1
Low dta
Pause 1
Low clk
Pause 1
High clk
Pause 1
High dta
Pause 1
Low clk
Return

'** Leyendo Datos del SHT
readsensor:
GoSub tstart
GoSub WaitSensor

ShiftOut dta,clk,1,[cmd\8] ' send command
Input dta ' wait acknowledge
Low clk
While dta=1
Wend
PulsOut clk,10 ' send ack
While dta=0
Wend
While dta=1 ' wait for conversion to complete
Wend
Low clk
ShiftIn dta,clk,0,[result.highbyte\8] ' get first byte
Low dta
PulsOut clk,10 ' send ack
ShiftIn dta,clk,0,[result.lowbyte\8] ' get second byte
Low dta
PulsOut clk,10 ' send ack
ShiftIn dta,clk,0,[chksum\8] ' get third byte (checksum)
High dta
PulsOut clk,10 ' send ack
Input dta ' End of Transmission
Input clk
Return


WaitSensor:
result=4096
Loop:
result=result-1
IF dta && result.bit11 Then Loop
Return

end 
« Última modificación: 21 de Enero de 2008, 00:16:55 por mleyton »

Desconectado mleyton

  • PIC10
  • *
  • Mensajes: 6
fotos del 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #1 en: 21 de Enero de 2008, 00:15:26 »
Ahi estan fotos con el display mostrando temperatura - humedad,temp max - min,humedad max - min

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #2 en: 21 de Enero de 2008, 13:19:24 »
Gracias por el aporte.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado lord_micro

  • PIC12
  • **
  • Mensajes: 64
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #3 en: 22 de Enero de 2008, 18:16:18 »
excelente aporte si señor, tenia ya uno casi terminado con el sht71 y estaba atascao en la conversion de la formula de humedad y temperatura y acabo de salir de dudas.
Un saludo mleyton y gracias...si señor

Desconectado mleyton

  • PIC10
  • *
  • Mensajes: 6
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #4 en: 22 de Enero de 2008, 19:15:16 »
Gracias Navaismo y tambien a Lord Micro, este es un pequeño grano de arena de mi parte, agradeciendo todo lo aprendido en este foro que es una muy buena ayuda, para los que nos gusta experimentar.

Atentamente

Mauricio Leyton

Desconectado secv923

  • PIC10
  • *
  • Mensajes: 1
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #5 en: 27 de Julio de 2009, 11:03:07 »
Excelente aporte!!!!
Solo tengo una duda, porque cuando compilo el programa, me sale un error en el "IF" del "WaitSensor:"....


WaitSensor:
result=4096
Loop:
result=result-1
IF dta && result.bit11 Then Loop
Return

Les estare muy agradecido si pueden ayudarme a resolver este problema...

Desconectado mleyton

  • PIC10
  • *
  • Mensajes: 6
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #6 en: 16 de Enero de 2010, 18:49:13 »
Luis ahi te dejo el ejecutable

Atentamente
mauricio

Desconectado larrygil

  • PIC10
  • *
  • Mensajes: 1
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #7 en: 03 de Febrero de 2011, 23:49:18 »
muy buenas noches necesito una ayuda con el sensor de sht15 con 16f877 si me pueden ayudar se los agradeceria mi correo es larryrge@hotmail.com disculpen la molestia

Desconectado eddie_utt

  • PIC10
  • *
  • Mensajes: 4
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #8 en: 09 de Marzo de 2011, 02:13:27 »
hola me llamo eddie, soy nuevo en esto de proyectos,  me gustaria saber si este proyecto se puede hacer pero con un sensor LM35
oyes amigo, el lick que dejas de un ejecutable se puede abrir en PIC SIMULATOR IDE?
bueno es que lo abri en ese programa
y me marca un error en la linea 15

'*              temperaturas-humedad maxima y minima            *
'*              Mantener la linea Define LOADER_USED 1          *
'****************************************************************
Define loader_used 1
include "modedefs.bas"

' Define LCD pines
Define LCD_DREG PORTD  'puerto D para LCD
Define LCD_DBIT 4  'bit de partida
Define LCD_BITS 4  'cantidad de bit
Define LCD_RSREG PORTE  'puerto E para RSREG
Define LCD_RSBIT 0  'pin 0 para RSREG
Define LCD_EREG PORTE  'puerto E para Enable
Define LCD_EBIT 1  'pin 1 para Enable


Desconectado victor0011

  • PIC10
  • *
  • Mensajes: 1
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #9 en: 24 de Junio de 2011, 17:42:02 »
Buenas! perdona la molestia, soy estudiante de Ing. electrónica y  vi en la web un aporte que usted hizo en la pag. todopic de un sensor SHT15, pic: 16f877 y una pantalla LCD, me gustaría saber si me puede ayudar con los diagramas de  configuración que uso usted para el diseño de su proyecto, yo lo intente simular con el Proteus y para la programación del micro use el microcode plus. pero siempre me genera un error...

Desconectado VICMEC01

  • PIC10
  • *
  • Mensajes: 1
Re: 16f877 con LCD y el sensor sht15 (temperatura y humedad)
« Respuesta #10 en: 14 de Marzo de 2013, 02:47:36 »
hola tengo problema en la linea SEROUT2 GPIO.5,16468,["COMIENZO...",10,13]
nececito ayuda con la conexcion
y quiero agregarle un temporizador a este programa


 

anything