En gran cantidad de aplicaciones es importante mantener un control de la temperatura, por ejemplo la programación de la calefacción, temperatura en hornos, temperatura que se deben regular en ambientes hostiles y un sinfín de instalaciones. Es por ello que presento esta sencilla aplicación del control de temperatura mediante histéresis de 21 a 29 grados. La idea es que esta aplicación funciona como indicador de temperatura entre dos rangos.
El control se hace mediante el Microcontrolador 18F4520 de Microchip donde se utiliza como sensor el modelo LM35, sensor de fácil utilización conectado al microcontrolador. Por otra parte la temperatura se indica en una pantalla LCD común para la interacción con el usuario.
Para el control de la histéresis, se ha utilizado un relé que indica mediante un led verde si nos encontramos en el rango correcto de temperatura, en caso de tener una temperatura inferior o superior se activará un led rojo. Aunque se haya optado por unos indicadores led, hay relés que pueden utilizarse como interruptores para cortar la tensión de casa de 220v por lo que puede utilizarse para automatizar de una forma muy sencilla con unos pequeños cambios la calefacción de casa en caso de que sea eléctrica.
Etapa Sensor temperatura
El sensor de temperatura, es un sensor muy sencillo de utilizar, capaz de leer rangos de 2 grados hasta 150 donde proporcionará una tensión proporcional y bien linealizada a la temperatura, por ejemplo si el sensor mide 150 ºC tendrá en su salida una tensión de 150 mV.
Un detalle importante es el tratamiento de la señal del sensor, puesto que al tratarse de tensiones muy pequeñas es fácilmente influenciable por ruidos e interferencias. Es por ello que se recomienda entre el sensor y el PIC la instalación de una etapa seguidora de tensión con un AO o incluso una amplificación para generar una señal menos susceptible a interferencias.
Como se ha comentado, se ha generado un ciclo de histéresis controlado mediante software mediante un código muy sencillo en lenguaje C:
IF ((temp>=21) | (temp<=28)){ output_low(RELE); } IF ((temp<21) | (temp>28)){ output_high (RELE);
Etapa visualización.
La etapa de visualización se hace mediante una pantalla LCD donde hay gran cantidad de ejemplos de su utilización por internet. Básicamente se utiliza una librería propia que se debe incluir en el programa “lcd.c” donde su utilización es bastante sencilla. Primero activamos la pantalla, indicamos las coordenadas a escribir y posteriormente mediante la directiva “printf” indicamos lo que queremos escribir, por ejemplo:
lcd_init(); lcd_gotoxy(1,1); printf(LCD_PUTC,"Temperatura %u",temp);
La conexión del PIC al LCD es importante tenerla en cuenta ya que la librería está preparada para utilizar el LCD mediante el puerto D aunque se puede modificar en la librería del dispositivo.
Etapa convertidor CAD
Para conectar el sensor LM35 al PIC, debe utilizarse el convertidor analógico digital, en caso de que el modelo de micro no tenga se debe utilizar uno externo. En éste proyecto se ha utilizado la entrada analógica A0.
El sensor, según el fabricante tiene un error de mV según los grados medidos, es por ello que se debe en aplicaciones donde es necesaria una alta precisión calibrar mediante software el sensor y se deberá tener en cuenta el tipo de conversión del CAD y los bits configurados de lectura. En este caso hay un error de precisión de 1 ºC.
En este proyecto, he sido bastante directo en cuanto programación ya que me interesa más el funcionamiento como ejemplo a otros proyectos o ideas que no la propia precisión.
Para la lectura del sensor mediante el CAD, mediante código se debe especificar el canal, en éste caso el canal 0 y mediante la funciona “read_adc()” obtener el valor leído.
x = read_adc(); //lectura del CAD volcado a variable x
Componentes utilizados
- -Micro PIC 18F4520
- -Sensor LM35
- -LCD LM020L
- -Resistores, condensadores, Cristal quarzo.
- -Relé 5v (relés de 220V, 10W para utilizar con la red eléctrica).
- -Diodos indicadores de 5V (si son de 2v añadir en serie R=220 ohm).
A continuación dejo en descarga el proyecto completo, donde por una parte hay la simulación en Proteus y el código fuente en C programado con el compilador CCS.
0 comentarios:
Publicar un comentario