Ya que el PIC 16F84A no tiene un conversor análogo digital interno haremos uso de un conversor externo, el ADC0804, para digitalizar la señal de salida analógica del sensor LM35; utilizaremos una pantalla Lcd para visualizar los resultados.
Lista de componentes
- 01 PIC 16F84A
- 01 ADC0804
- 01 LM35
- 01 Cristal de 4MHz
- 01 Potenciómetro de 5K
- 03 Resistencias de 10K
- 01 Resistencia de 330 ohms, 5.6K y 47K
- 02 Condensadores de 22pF
- 01 Condensador 150pF
- 01 Condensador de 0.1uF
- 01 Condensador de 220uF/16V
|
Funcionamiento
La medida de la temperatura se realiza con el sensor LM35, este sensor entrega en su salida un voltaje que varia en relación directa con la temperatura, con un factor de conversión de: 10mV/ºC, esto quiere decir que si la salida es 100mV, la temperatura es 10ºC y si es 1V (1000mV), la temperatura es 100ºC. La máxima temperatura que podemos medir con el sensor es 150ºC, es decir tiene una salida máxima de 1.5V (1500mV).
ADC0804 es un conversor ADC de 8 bits cuyas salidas van directamente al puerto B del PIC, compartiendo 4 piens con el Lcd.
Para controlar el proceso de conversión de manera correcta, solo necesitamos hacer uso de los pines CS,WR y RD. La salida análogica del sensor LM35 debe ir directamente a la entrada «+Vin» del ADC0804, la entad «-Vin» debe estar puesta a tierra.
La salida de 8 bits ofrece una variación decimal de 0 a 255. Para hacer uso de toda la resolución del ADC0804 necesitamos poner la entrada «Vref/2» a un voltaje que represente la mitad del voltaje máximo que va a soportar la entrada «+Vin». Como mencionamos antes, este voltaje máximo es 1.5V, por lo tanto, debemos poner en «Vref/2» un voltaje muy cercano a: 1.5V/2 = 0.75V. De esto se encarga el divisor de tensión formado por R5 (47K) y R6 (5.6K).
Programa
EL programa está en lenguaje ensamblador, tambien serán necesarias las librerías del Lcd, los retardos para 4MHz y conversion de binario a BCD.
Lo primero es poner en alto los pines de control CS,WR y RD, ya que todos se activan en bajo.Para iniciar el proceso de toma de muestra, los pines de CS y WR se ponen en bajo, para iniciar el proceso de conversión de la muestra o digitalziación, se pone en alto el pin WR. Esperamos 1ms para que se realice la conversión, ponemos en bajo el pin RD para que el resultado aparezca en los 8 pines de salida, leemos el puerto B y guardamos el resultado de la conversión, ponemos los pines RD y CS de nuevo en alto.
Con ayduad e la liberia «bin_bcd» realizamos la conversion de binario a al formato bcd y lo enviamos al Lcd.
Consejos de Funky
- En lugar de usar un potenciómetro de 5K, para el contraste del Lcd, puedes colocar una resistencia fija entre el pin 3 y tierra. El valor de la resistencia depende del Lcd, pero puedes probar con valores entre 1K y 4.7K.
- Asegúrate de que las librerías para el Lcd y los retardos se encuentren en la misma carpeta del código principal en ensamblador antes de compilarlo.
- El divisor de tensión formado por R5 y R6 debería entregar 0.75V en el pin «+Vin», pero debido a la tolerancia de las resistencias este valor no es exacto. Para mejorar la precisión de la conversión puedes usar un potenciómetro multivuelta de 10K en lugar de la resistencia de R6 (5.6K).
No hay comentarios:
Publicar un comentario