Buenas tardes. Tengo un programa de sensado de temperatura con el sensor LM35 y ya hecho en microcode estudio, abajo el código.
Ahora quiero implementar el sensor AM2302 de temperatura y humedad pero no encuentro la forma de implementarlo.
¿Me podrían ayudar a incorporar el sensor a microcode estudio?
Ahora quiero implementar el sensor AM2302 de temperatura y humedad pero no encuentro la forma de implementarlo.
¿Me podrían ayudar a incorporar el sensor a microcode estudio?
Código:
; DEFINICIÓN DEL PROGRAMA
INCLUDE "MODEDEFS.BAS" ; LIBRERIA PARA OCUPAR LA COMUNICACIÓN SERIAL
define LOADER_USED 1
DEFINE OSC 20 ;DEFINIR EL OSCILADOR EN 20 MHz (HS)
DEFINE ADC_BIST 8 ;DEFINE LA RESOLUCION DEL ADC
DEFINE ADC_CLOCK 3 ;1-LP 2-XT 3-HS
DEFINE ADC_SAMPLEUS 50 ;TIEMPO QUE TARDA LA SEÑAL EN CONVERTIR LA SEÑAL ANALOGICA A DIGITAL
DEFINE LCD_DREG PORTC
DEFINE LCD_BITS 4
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTC
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTC
DEFINE LCD_EBIT 5
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
TRISA=255 ; DECLARAR TODO EL REGISTRO A COMO ENTRADA
TRISB=0 ; DECLARAR TODO EL REGISTRO B COMO SALIDA
TRISC=%00001111 ; DECLARAR RCO A RC3 COMO ENTRADA Y RC4 A RC7 COMO SALIDA
ADCON1=14 ; DECLARAR QUE LAS ENTRADA ra0 son analogico
SENSAR VAR WORD
DIGITAL VAR WORD
BAJO VAR WORD
ESTABLE VAR WORD
ESTABLE1 VAR WORD
ALTA VAR WORD
BAJO=30
ESTABLE=36
ESTABLE1=38
ALTA=40
SENSAR=0
DIGITAL=0
PORTA=0
PORTB=0
PORTC=0
DATOS:
IF PORTA.2==1 then
LCDOUT $FE,1
LCDOUT $FE,2,"PROG TEM"
LCDOUT $FE,$C0,"ESTABLE=",#ESTABLE,%11011111, "C"
PAUSE 500
if porta.3==1 then
ESTABLE=ESTABLE+1
ESTABLE=ESTABLE MIN 39
endif
if porta.4==1 then
ESTABLE=ESTABLE-1
ESTABLE=ESTABLE MAX 29
endif
endif
if porta.2==0 then
goto inicio
endif
goto datos
INICIO:
ADCIN 0,DIGITAL
SENSAR=195* DIGITAL
SENSAR=SENSAR/100
IF SENSAR>ESTABLE AND SENSAR<ESTABLE1 THEN
PORTB=%00000000
SEROUT PORTC.6,T9600,[#ESTABLE]
LCDOUT $FE,1
LCDOUT $FE,2,"TEM CORRECTA"
LCDOUT $FE,$C0,"ESTABLE=",#SENSAR,%11011111, "C"
PAUSE 500
else
IF SENSAR<BAJO THEN
PORTB=%10000000
PAUSE 500
LCDOUT $FE,1 'LIMPIAR PANTALLA '
LCDOUT $FE,2, "TEM BAJA = ",#SENSAR,%11011111, "C" 'POCICION DE LA LINEA 1'
LCDOUT $FE,$C0, "ACT.CALEFACTOR" 'POCICION DE LA 2 LINEA'
PAUSE 500
else
IF SENSAR>ALTA THEN
PORTB=%00000100
PAUSE 500
LCDOUT $FE,1 'LIMPIAR PANTALLA '
LCDOUT $FE,2, " TEM ALTA= ",#SENSAR,%11011111, "C" 'POCICION DE LA LINEA 1'
LCDOUT $FE,$C0, " ACT.VENTILADOR " 'POCICION DE LA 2 LINEA'
PAUSE 500
ENDIF
ENDIF
ENDIF
GOTO datos