Estoy haciendo un pequeño detector de fuego con un PIC 16f873 y no se como usar el sensor analógico lm35 Ademas quisiera saber como coger la señal que este proporciona y deja en ADRESL y ADRESH para poder compararla con un literal. Ademas no se para que sirve el Vref+ que me inidican que he de conectar al DAC del PIC
Respuesta de jlcava
1
1
jlcava, Más de 10 añosdesarrollando equipos electrónicos con...
El LM35 entrega 10 mv por cada grado centígrado de temperatura (si se trata del que tiene salida en ºC). El pic convierte esos voltios en un número de 0 a 1024. Lo muestra en 2 bytes como vos bien has dicho. La Vref es la referencia respecto de la cual se hace la conversión. Si uno pide referencia interna, esta comparación será respecto de 5 voltios(o la alimentación que tenga el micro) y 0 volt. Si no me interesa que sea respecto de la tensión del micro, le puedo asignar otra diferente. Para ello se pone en el vref+ una tensión xx. La tensión vref+ nunca puede ser menor a 2 voltios, no funciona. Yo uso unos diodos de referencia de tensión de 2,5 voltios. De este modo me queda 2500 milivoltios de referencia dividido 1024 pasos del conversor:= 2,4 milivoltios por paso de concersor. Si el adresl y adresh poseen en conjunto el número 325, significa que 325 x 2,4=780mV. Para el caso del lm35 780 mV significan 78 ºc Te paso la rutina de conversión GETAD BSF STATUS, RP0 MOVLW B'10000101' ; MOVWF ADCON1 BCF STATUS, RP0 MOVLW B'11000001' ;RC,CH0,MODULO AD=ON MOVWF ADCON0 BCF PIR1, 6 NO BSF ADCON0, 2 ;GO CONVERT AD CH0 No ;o sea chanel de Tc LOOP BTFSS PIR1,6 ;TEST DE FIN DE CONVER GOTO LOOP ; NOP MOVF ADRESH,W ;CARGO VALOR ADRESH EN W MOVWF TEMP1H ;DESCARGO EN TEMP1H BSF STATUS, RP0 ;CAMBIO DE BANCO MOVF ADRESL, W ;CARGO ADRESL EN W BCF STATUS, RP0 ;BAJO DE PÁGINA MOVWF TEMP1L ;DESCARGO EN TEMP1L Suerte