Estimados PICeros... les cuento mi última odisea... en noviembre del año pasado se me rompió la heladera.
Una Bosch no frost, modelo KSU 66.
La historia completa está
aca.Para los que les dé huevo leer el tread ese (que es largo, el tema es que el servicio técnico de Bosch, da a la heladera por muerta) y el repuesto de la plaqueta con el microcontrolador no es posible de conseguir (o por lo menos yo no pude).
Como no tengo las más de 4 lucas que cuesta una heladera similar nueva y conseguí el manual de servicio de Bosch en la red, me di cuenta testeando todos los componentes de que el problema claramente era el microcontrolador, porque el resto del hardware del refrigerador funcionaba correctamente.
¿Qué hacer para un PICero de pura cepa como yo?
Adivinaron: ¡¡¡¡¡PONER UN PIC!!!!!!
Entonces puse manos a la obra. Armé una plaqueta con un fuente integrada para un PIC 18F452 en epoxy con cristal de 20Mhz. El circuito está
aqui. Esta es la
foto de la plaqueta terminada. Esa es una
foto de costado.
Después diseñé una plaqueta con 4 relays, uno de 20 Amperes para el compresor, uno para la resistencia de deshielo del evaporador, uno para la resistencia de la bandeja de drenaje y otro para el ventilador (forzador) que manda el aire frio desde el congelador a la parte de abajo de la heladera. Esta es una
foto de la placa de los relés terminada.
Le puse un display de 2X16 de LCD, mismo que tuve un inconveniente... porque al principio usé uno sin backlight que tenia dando vueltas por ahi, pero después de instalado en la caja, me doy cuenta que estaba roto... y era un toque mas grande que el resto de los displays que tengo... así es que mala suerte... pero el agujero de la caja quedó más grande de lo que tenía que ser.
Después diseñé una plaqueta con todos los circuitos de control que iba a necesitar. Acá está la
foto. Nótese que tiene:
1.- Soporte para 3 termistores NTC (para medir la temperatura)
2.- Soporte para tres switches
3.- Soporte para las dos puertas (más de esto adelante)
4.- Un MAX232 para que se pueda reprogramar en circuito
5.- Un buzzer para que suene si olvido una puerta de la heladera abierta
Para los termistores, el tema es que no son lineales, así es que tuve que descular el polinimio de Steinhart-Hart, que describe
la curva con una precisión asombrosa (0.1 %).
La heladera tiene de fábrica dos termistores, uno en el evaporador (que se usa para el deshielo) y el otro en el lugar más caliente del freezer (la esquina superior derecha, al fondo).
Esto es muy desafortunado, porque el ventilador forzador no se puede controlar de acuerdo a la temperatura de abajo de la heladera, simplemente porque no hay un termistor que mida el frío de abajo. Así es que simplemente instalé uno, tal como lo muestra esta
foto. Nótese que el mismo no queda a la vista sino debajo de la moldura (está a la vista para la foto).
Después encaré el problema de las puertas... las mismas están directamente conectadas a 220v. Así es que para leerlas armé este
circuito con dos acopladores ópticos. Como podrán observar, del otro lado me devuelve una cuadrada de 50 Hz. Con lo cual lo único que tengo que hacer es tomar 3 lecturas a 13 ms cada una para saber si las puertas fueron abiertas.
Una vez solucionado eso... armé todo el proyecto mismo que quedó más o menos
asi. Esta es otra
foto.
Acá hay una
foto del DB9 que le puse a la caja.
Aqui hay una
foto de todo armado.
Una vez que puse todo y puse un bootloader en el PIC, lo más divertido fue programar.
Armé los ciclos tal cual están descriptos en el manual de la Bosch, sobre todo el de deshielo, y lo mejoré de acuerdo a mis ideas. Más o menos esto es lo que hace:
1.- El ciclo del compresor es de 20 minutos encendido por 10 de apagado (para que no se queme) y se prende bajo demanda. Para que encienda el freezer tiene que estar en -20 centígrados en su lugar más caliente. Se apaga a los -25.
2.- Cada vez que se abre una puerta, se dispara un timeout... si a los 20 segundos no se cierra la puerta, suena el buzzer. También el ventilador para (para no sacar el frío de la heladera) y se cuenta el número de segundos que las puertas quedaron abiertas y se lleva un contador global. Esto es importante porque cada vez que se abren las puertas entra humedad. Cuando las puertas se cierran y como dice el manual el ventilador se enciende un minuto para hacer un reciclado total del aire (y sacar la humedad del mismo).
3.- El ciclo de descongelado depende del número de veces (tiempo total) de puertas abiertas... mientras más tiempo las abrís, antes entra el ciclo de deshielo. También depende de cuánto le costó el último deshielo. Si costó el tope (60 minutos) el próximo deshielo se hace más rápido.
4.- El ventilador enciende depende de la temperatura de la heladera bajo demanda (porque esta el tercer termistor que mide la temperatura de abajo). También el ventilador hace un reciclado total de aire cada media hora.
5.- Se puede setear desde la botonera temperatura mínima y máxima de la heladera. Esos valores se escriben en la ROM del 18F452 asi es que reviven un reset.
6.- Puse un timeot cuando arranca la heladera de 2 minutos. La idea es que en un corte de luz, espere 2 minutos para evitar que el compresor vaya a recibir un pico de tensión.
7.- Lleva los tiempos totales de todo.
8.- Se puede iniciar un deshielo manual desde la botonera cuando así se lo desee.
El proyecto lo programé con PICC.
En resumen... la heladera quedó horrible de pinta... ¡pero funciona como nunca! Estoy feliz... con menos $200 de inversión y muchas tardes de diversion la hice andar ¡¡¡¡COMO YO QUIERO!!!!
Les dejo unas fotos de la pantalla del LCD
Arrancando...Temperaturas... H = heladera E = evaporador y F = freezer
Indicador de encendido de compresor y ventilador.Tiempo total de encendidoLaptop conectada a la heladera!Screenshot de la info que tira el puerto serial¡¡¡Dejen sus comentarios!!!!
Saludos