viernes, 25 de marzo de 2016

Refrigerador con Arduino UNO y dos sondas DS18B20


Llevo tiempo apartado de este blog porque la obligación está por encima de la devoción. De todos modos, espero compensar ese retraso con la entrega de esta nueva entrada, fruto de la colaboración entre un buen amigo y especialista de frío industrial y yo.
Con un shield de Arduino, el LCD Keypad Shield, un módulo de relés y dos sondas digitales de temperatura DS18B20, controlamos el funcionamiento de un refrigerador, cuyo software nos permitirá controlar su punto de trabajo y producir el desescarche automático del evaporador. Modificando simplemente unos parámetros podremos adaptar el software para trabajar como congelador o refrigerador, ajustando la temperatura desde -20 ºC hasta 15 ºC. El método para deshacernos de la escarcha que se forma en el serpentín del evaporador en un circuito de enfriamiento se denomina desescarche, y el que utilizaremos es el de calentamiento con una resistencia eléctrica. Una sonda detectara la presencia de una capa de hielo en el serpentín del evaporador, que actúa como aislante dificultando el paso del aire a través de los tubos, reduciendo así el coeficiente de transferencia de calor; en ese momento se parará el compresor y entrará en funcionamiento una resistencia eléctrica que calentará el evaporador hasta que la capa de hielo desaparezca, retomando luego el sistema el funcionamiento normal del refrigerador.
En la siguiente imagen os muestro el evaporador que usamos en nuestro frigorífico experimental:


En la siguiente imagen se muestra la primera prueba en el taller del frigorífico experimental controlado por Arduino. Todo un éxito.


Esquemáticamente, el circuito es como sigue:



En el siguiente vídeo podéis ver como trabaja el software sobre Arduino  UNO y el LCD Keypad Shield (Música de Jon Maurer: Burning Bright. Gracias Jon por compartir. Jon thanks for sharing)




En el vídeo observamos que inicialmente el sistema activa el desescarche, luego de calentar el evaporador vuelve al funcionamiento normal. Aquí trabaja con parámetros de prueba con temperatura de ambiente, así pude evaluar que funcionaba correctamente el software final sin tener que recurrir al taller y conectarlo al sistema de frío creado por mi amigo Jero. Intentaré describir los elementos importantes del software, pero ya con parámetros razonables para trabajar con un sistema de frío doméstico.

Comentaré de pasada el programa que esbocé para controlar el sistema. Sé que es un poco complicado para neófitos, pero no tengo mucho tiempo para los detalles, y si se quiere aprender tendrán que currárselo analizando "a pelo" el código que les doy.
En la imagen siguiente muestro el código con el que creé el carácter º(Grado) para visualizarlo en el display, ya que directamente no se puede con el juego de caracteres que posee; cada vez que arranca el sistema lo guarda en un lugar de la memoria del display, y luego lo llamamos para que se imprima en el mismo.



La botonera del LCD Keypad Shield está conectada a la entrada analógica de Arduino A0 a través de un divisor resistivo, y según el umbral de tensión que aplicamos a la entrada analógica al pulsar una tecla, el programa selecciona la acción con la estructura de control Switch Case según el valor que guarda en la variable "tecla" de la entrada A0, asignado un número a la variable "caso", activando así una acción para cada tecla. ¿Fácil no?


En el apartado "default:" de la estructura de control Switch Case se encierra el meollo principal. Ahí se envía al display la información oportuna de la temperatura, se activa y desactiva el compresor, se llama al subprograma de desescarche, se imprime el asterisco en el display durante el ciclo de histéresis  de enfriamiento. Les recuerdo que el módulo de relés HL-54S actúa con lógica inversa, es decir, se activa a nivel bajo y se desactiva a nivel alto en sus entradas.

El subprograma de control de temperatura y el de desescarche creo que están claros con los comentarios contenidos. Para cualquier aclaración agradecería lo hicieran a través de un comentario en este blog.

El código del programa para Arduino UNO (.ino) lo podéis bajar desde aquí.

La librería Dallas de control de temperatura la podéis bajar en zip desde aquí.

La última versión del protocolo de un hilo de Dallas Semiconductor (Dallas Semiconductor's 1-Wire Protocol) la podéis bajar desde aquí.

En el siguiente vídeo podemos ver las primeras pruebas en el taller.

No hay comentarios:

Publicar un comentario en la entrada