Lavarropas automático con PIC


La idea de este proyecto fue reemplazar un temporizador electromecánico de lavarropas automático por un microcontrolador y un puñado de cosas no muy complejas. Cabe aclarar que esto surgió tras la necesidad, no por inquietud; mi flamante lavarropas del año 2001 a la fecha sufrió tres veces la rotura del timer por lo que me cansé y decidí darle una solución definitiva.

Algo a tener en cuenta cuando se emprende una reforma de semejantes dimensiones es tener conocimiento de lo que se está queriendo lograr. Un timer de lavarropas no es mas que un reloj gigante que avanza a determinado ritmo (definido por la frecuencia de la red eléctrica). Este ritmo a veces es condicionado por eventos externos como estado del presóstato al momento de cargar el agua o en el desagote. Dado que de lavarropas nunca supe mucho decidí mirarlo funcionar detenidamente y ver que es lo que el timer hace para luego poder sintetizarlo con un microcontrolador. Y me encontré con lo siguiente:

Primero se carga el agua con un producto para pre-tratar las prendas (esto suele ser o bien lavandina así como viene o nada, dependiendo de las ganas de blanquear que se tengan), una vez llenado el tanque con el agua mas el producto en caso de haberlo en la gaveta del cajón porta productos se comienza el ciclo de lavado, esto consiste en hacer girar el tambor a baja velocidad. Algunos lavarropas (como el mío) sólo tienen un sentido de rotación del tambor, otros lavarropas (mejorcitos) tienen dos sentidos de giro. Esto de girar para un lado y para el otro no es capricho, girando hacia un solo lado la ropa se trenza entre sí haciéndose una gran pelota de trapo que, cuando toca el turno de centrifugar hace que el lavarropas baile al ritmo de Lou Vega. Después de un rato largo de ciclos lentos y pausas se descarga el tanque y se pasa al paso siguiente.

Similar al anterior en su funcionamiento este paso carga el agua enjabonada en lugar de enlavandinada. Lo que se hace es forzar el agua a pasar por la gaveta de jabón en polvo y listo, todo lo anterior es igual. En verdad el proceso siempre es igual, lo que cambia es el producto que se le agrega al agua, en este punto ya sea la blancura de Julian Weich o el desafío del blanco de Fabián Gianola el jabón es el encargado de lavar bien, no el aparato.

Dependiendo del programa seleccionado esto de lavar con jabón se hará 1, 2, 3 y hasta 4 veces.

Terminados los ciclos de lavado se vuelve a cargar agua en el tambor pero esta vez pasando por la gaveta de suavizante. Este producto es líquido y está contenido en una gaveta especialmente diseñada para que no se escurra el producto antes del tiempo debido. Básicamente es un piletoncido donde el líquido queda contenido, cuando le tiramos agua desde arriba el piletón desborda y el líquido cae por gravedad. Otra vez se hace girar el tambor a baja velocidad y luego se vacía.

Por último se hace el centrifugado que consiste en hacer girar el tambor a alta velocidad (en mi lavarropas no es tan alta, 500 rpm) durante siete minutos y medio (este tiempo puede variar dependiendo del lavarropas). Durante el centrifugado se acciona la bomba de desagote para quitar del tambor los restos de agua que se escurran.

Esto es en resumen lo que hace el lavarropas para que las prendas queden bien blancas.

El tema hasta ahora viene fácil, pero al destapar el aparato me encontré con cosas no tan agradables a la vista. La primera de ellas es la forma en la que se canaliza el agua a través de las gavetas del cajón. En mi ignorancia pretendí encontrar algo eléctrico que accionara algún mecanismo el cual forzara el agua a pasar por tal o cual canal. Pero la realidad es muy distinta: este lavarropas tiene un mando plástico que une el control de flujo del agua dentro del cajón con el anillo del timer. Al girar el timer va moviendo el mando de plástico el cual cambia la gaveta por la cual pasa el agua. El sistema es ingenioso, pero de muy mala calidad (como casi todo en este lavarropas brasilero). Y este fue mi primer dolor de cabeza, como hacer para que un microcontrolador accione el mando del cajón... Pensé en motores paso a paso, en motores embragados, en solenoides y en muchas locuras mas... Es mas, pensé en hacerle un agujero extra al cajón y entrar con otra electro válvula. Accionando una tendría la entrada de agua por un sitio y accionando la otra por el otro sitio. Esto implicaba un sistema de caños unidos dentro del equipo y la idea no me gustaba nada. Hasta que recibí algo de colaboración extra (Gracias Hector !!!) y la solución apareció de la mano de los servos utilizados para modelismo. Estos servos requieren de sólo una señal de control para posicionar un eje en un lugar preciso sin importar donde se encuentre antes. IDEAL !!!. Algo de martillo y alambre ayudo para que el servo quede fijo en el lavarropas y hermanado al mando del cajón.

Luego vino el momento de controlar el motor del equipo. Este motor tiene varios bobinados los cuales realizan distintas tareas. Dos son de arranque y dos son de marcha. Como siempre, el bobinado de arranque debe ir acoplado a un capacitor que atrase la fase para poder comenzar a girar. Con cuatro relés controlo el accionamiento del motor. Dos relés deciden cual será la bobina de arranque a utilizar y dos relés deciden cual será la bobina de marcha a hacer funcionar. De esta forma el micro tiene la forma de controlar el motor. Otros dos relés accionan la electro válvula que permite el ingreso del agua y la bomba que se encarga de desagotar el tanque.

Gracias a un presóstato de dos niveles el equipo sabe que cantidad de agua contiene el tanque. Un primer nivel es alcanzado cuando el tanque se encuentra a media carga, el segundo nivel se alcanza al llenarse el tanque.

Si hay algo que me asustó de entrada es la cantidad de cables que el lavarropas tenia, no se si me quedo corto diciendo que mas de cincuenta cables de todos colores de un lado al otro del equipo. Y es lógico si pensamos la gran cantidad de funciones a realizar y sin mas que un temporizador mecánico. Obviamente que luego de hacer la reforma la cantidad de cable resulto ser ínfima. 

Dado que mi problema era crítico (el lavarropas no funcionaba) decidí dividir la tarea en dos etapas. La primera de ellas, de ejecución inmediata, sería devolverle al equipo el funcionamiento; esto comprende la carga de agua, pre-lavado, lavados, enjuague y centrifugado sin la selección del producto a utilizar. Como no tenia en claro cómo resolver el tema de la selección del producto dentro del cajón de gavetas decidí implementar un sistema de confirmación paso a paso permitiendo así el agregado del producto apropiado en cada paso del proceso. En otras palabras al arrancar colocaba el jabón en polvo, cuando termina el paso 1 el lavarropas queda pausado haciendo sonar un buzzer a la espera. Cuando coloco nuevamente jabón en la gaveta presiono el pulsador y comienza a cargar agua para el paso 2 y así durante los siguientes pasos. Esto convierte al lavarropas en semi-automático pero impide que se me junte la ropa sucia en el lavadero de casa !. Esto dio lugar a la primera revisión del firmware del micro.

Me tomo casi dos meses encontrar un servo apropiado (bueno, bonito y barato) para esta aplicación. La idea mía no era invertir 100 pesos en un servo Futaba de super lujo ya que el mismo va a estar dentro de un lavarropas el cual como todos sabemos trabaja con agua. Por eso me puse a buscar y conseguí el servo HITEC HC-311 el cual es de aceptable calidad y módico precio (30 pesos). Este servo lo atornille al chasis frontal del lavarropas (junto a los botones de mando originales para carga a media y exclusión de centrifugado) y por medio de un alambre bastante rígido logre enlazarlo con el mando del cajón porta productos. Luego fue el turno de buscar las correctas posiciones para el brazo del servo, debido a que mi lavarropas tiene cuatro gavetas de productos fueron necesarias cuatro rutinas distintas de selección de producto. Estas rutinas (BOX1, BOX2, BOX3 y BOX4) son las encargadas de posicionar el servo en su debido lugar a fin de guiar correctamente el paso del agua por la jabonera.

Además del control del servo en esta nueva revisión le agregué un par de mecanismos de seguridad a fin de evitar problemas estos son:

  1. Time-Out para la carga de agua: Si al cargar el agua el presóstato no detecta nivel suficiente en aprox. 10 minutos el equipo corta la corriente de todas partes y queda indicando en el display "E1" Error 1 - Falta de entrada de agua. En un lavarropas común esto no está contemplado y si llegase a cortarse el agua y no lo detectamos la electro válvula quedará permanentemente conectada con lo que se quemará.

  2. Time-Out para el desagote: Si al desagotar el agua el presóstato no acusa baja de nivel en aprox. 10 minutos el equipo corta la corriente de todas las etapas. Sucede que a veces metemos al tambor prendas que no deberíamos meter (frazadas peluchosas, zapatillas con plantillas gastadas, etc.) las cuales desprenden residuos que en ocasiones contadas pueden trabar la bomba de descarga de agua. Esto provocaría a la larga la quemadura del motor que la hace girar ya que la ventilación del bobinado de este motor depende de unas paletas plásticas las cuales giran si el motor gira. Y como el motor queda trabado por las pelusas el mismo se quema. Cuando el proceso de descarga de agua supere los 10 minutos el equipo quedará detenido indicando "E2" Error 2 ó problemas al descargar el agua.

Algo sucede con este mecanismo de seguridad porque a veces, después de mucho tiempo de haber terminado el proceso y estando en "F" el display (FIN) comienza a acusar "E2". No me puse aún a revisar porque sucede esto porque como pasa una vez por semana nada mas no me preocupa. Pero debe ser alguna pavada en el manejo de las interrupciones.

Aquí están disponibles las dos revisiones actuales del firmware con su correspondiente fuente.

Revisión 1 - ASM / HEX
Revisión 2 - ASM / HEX

Cabe aclarar que en la revisión 1 utilice un buzzer sin oscilador que tenia por ahí dando vueltas, como al poco tiempo se quedo mudo puse otro que tenia pero que era con oscilador interno por lo que el firmware de la revisión 2 usa buzzer con oscilador.

Vamos ahora al esquema eléctrico:

Este circuito corresponde a la etapa de actuación de potencia. La misma es para mi lavarropas, un White Westinghouse modelo WW055BTW. Con los dos relés dobles controlo el funcionamiento del motor de rotación. Accionando el relé superior hago circular corriente por la bobina de marcha lenta (Lavado) así como por la bobina de arranque en sentido horario. Si, en cambio, acciono el relé inferior haré circular corriente por la bobina de marcha rápida (centrifugado) así como por la bobina de arranque en sentido anti-horario. Algo que probé es enviar corriente por la bobina de marcha lenta y por la de arranque en sentido anti-horario (para ver si podía hacerlo girar hacia ambos lados en el lavado) pero no fue posible. El motor "canto" pero no se movió. Esto se debe, creo, a que las bobinas no están correctamente enfasadas para funcionar en esa combinación. La forma en la que logré hacer girar el tambor hacia el sentido anti-horario pero a baja velocidad fue accionando el centrifugado pero al mismo tiempo la bobina de marcha lenta (la de marcha, no la de arranque). En ese caso el lavarropas giro para el otro lado a baja velocidad y con buena fuerza pero no me gusta la idea de energizar tantas bobinas al mismo tiempo, me da cosa.

Los dos relés simples controlan la electro válvula de admisión de agua y la bomba de desagote respectivamente. Los pad's que vienen desde el módulo de control son ML, MC, EV y BD los cuales accionan el motor en marcha lenta, el motor en marcha rápida, la electro válvula y la bomba de desagote respectivamente al poner a masa cada uno. El otro extremo del relé está conectado al positivo de 12V de la fuente de alimentación.

El circuito electrónico muestra la sección lógica del sistema. Esta formada básicamente por un microcontrolador (un PIC16F872) el cual tiene grabado en su memoria el programa apropiado. El ULN2803A es un driver de corriente con diodos de protección que permite al PIC comandar los relés y el buzzer sin que ello represente carga alguna. El display de siete segmentos permite seleccionar el programa a ejecutar. Los números indicados en cada segmento corresponden al bit dentro del puerto C al que debe conectarse cada uno. Veremos mas adelante el tiempo y cantidad de pasos de cada programa. Dado que el display no está multiplexado con otras funciones su cátodo común debe ser conectado a masa. El puerto C del micro fue destinado al manejo directo del display. El puerto B, en tanto, fue destinado al control de salidas y el puerto A al censado de entradas. El cristal de 4MHz provee de oscilación al micro para poder trabajar. El capacitor de 100nF desacopla la fuente evitando así trastornos en el micro debidos a interferencias. Este capacitor debe estar lo mas cerca posible del microcontrolador.

Las llaves de media carga y exclusión de centrifugado son del tipo estándar por lo que no requieren mayor explicación. Los pulsadores Selección y Marcha permiten seleccionar el programa y paso desde el que se desea comenzar y dar comienzo al lavado respectivamente. Estos pulsadores son del tipo normal abierto al igual que las llaves de opciones anteriormente comentadas. Las cinco resistencias de 1K mantienen en alto las entradas (Pull Up) en caso de estar abiertos los interruptores y pulsadores respectivos.

El presóstato (al menos el que mi lavarropas tiene) dispone de dos inversores comandados por un censor de presión a goma. Cuando la presión en la goma alcanza la media carga del tanque el primer inversor acciona. Cuando la presión alcanza la totalidad del tanque el segundo inversor acciona. Debido a que son inversores nosotros sólo usaremos los contactos "Común" y "Normal Abierto" de cada uno. Los contactos "Común" los pondremos a masa mientras que los "Normal Abierto" irán al micro a indicarle los niveles alcanzados. El contacto "MC" es para la detección de media carga alcanzada mientras que el contacto "CC" es para la detección de carga completa.

El servo es muy fácil de conectar. Por lo general dispone de tres cables con los colores de la bandera de Alemania. El cable negro debe ir a masa, el rojo a alimentación (+ 5Vcc) y el amarillo al micro (por este cable van los pulsos de control de posición).

Por último la fuente de alimentación es del tipo tradicional, con un transformador reductor el cual nos entrega 9V de corriente alterna. Rectificamos y filtramos y obtenemos 12Vcc los cuales usamos para el manejo de potencia tanto de los relés como así también del buzzer y del LED indicador de encendido. El regulador lineal 7805 provee los 5V necesarios para alimentar el micro y el servo. El capacitor de 100nF filtra el rizado producido por este componente al regular.

Programas:

Este lavarropas viene con dos programas diferentes. El primero tiene seis pasos en los cuales hace un pre-lavado, tres lavados, un enjuague con suavizante y un centrifugado. El segundo programa tiene siete pasos y a diferencia del anterior hace un lavado mas. A pedido de mi mujer no le puse al programa pre-lavado dado que ella no lo usa y prefirió darle un toque mas de jabón en vez de perder el paso con agua sola. Por ello verán en el ASM el bloque llamado BOX4 el cual selecciona de la gaveta el pre-labado pero no es llamado desde ninguna parte del programa. El programa corto va desde el 1 hasta el 6 (con el punto apagado) mientras que el programa largo va desde el 1 hasta el 7 (con el punto encendido). El programa corto (el que siempre usamos) demora 1 hora 10 minutos en completarse. Lo único que no entiendo es porqué ahora mi lavarropas lava mejor siendo que respete a rajatabla los programas originales (no creo que sea por entrar lavando con jabón en vez de pre-lavar con nada...).

Al encender el equipo un guión aparece en el display al tiempo que el punto titila. Esto dura cinco segundos. Si dentro de ese tiempo presionamos alguno de los dos pulsadores (cualquiera) aparecerá una "P" en el display indicando que se utilizará el modo de confirmación paso a paso. Este modo hace sonar el buzzer al comenzar cada programa y espera que el usuario presione el pulsador antes de arrancar. Esto permite meter prendas en medio del proceso o quitarlas antes de centrifugar o enjuagar. Créanme que es algo útil y ningún lavarropas lo tiene. Seleccionamos el programa apropiado con el pulsador ubicado en RA0 y damos comienzo al proceso con el pulsador en RA1. Comienza inmediatamente la carga de agua. Dado que durante el proceso de carga de agua se controla en todo momento el estado del interruptor "Media Carga" podemos activarlo o desactivarlo incluso después de iniciado el lavado. Lo mismo sucede con el de "Exclusión de centrifugado". Si durante el proceso de lavado se corta la corriente eléctrica y el tambor queda cargado con agua esto no será problema. Al volver la energía el lavarropas inicia una verificación y de haber agua en el tambor hará un desagote y luego quedará al comienzo, como siempre. Cuando el lavado termine tres pitidos sonarán y aparecerá una "F" de finalizado en el display. Podemos ahora presionar el pulsador de selección de programa y volver a lavar o desconectar el equipo.

Montaje:

Yo utilice una caja plástica del tipo Chillemi para colocar los relés lejos de la placa del micro y bien cerca de donde están las partes a controlar (motor, electro válvula y bomba de desagote). Aparte colgué con precintos el transformador bien alto cosa que se le complique al agua alcanzarlo. Lo mismo hice con la plaqueta la cual quedo ocupando el lugar del viejo timer mecánico. En donde estaba la rueda selectora coloque un acrílico trasparente que hice cortar en el cual están los dos pulsadores y el display indicador. El servo lo monté en el chasis frontal junto con las llaves de opciones de "Media Carga" y "Exclusión de centrifugado".

Fotos disponibles: 

Algo a tener en cuenta a la hora de montar todo en el lavarropas es ver hasta donde puede sacudirse el tambor. Esto es muy importante porque por mas bien que esté el programa si el cascote de concreto le da un golpe al box de relés puede pasar cualquier desastre. Hay que tener en cuenta que estamos trabajando en un lavarropas donde hay agua y mangueras. Por mas que ahora este todo bien hay que contemplar a donde puede ir a dar el agua en caso que alguna manguera se rompa. Prever esto es tener menos dolores de cabeza luego.

Autor: Pablo Canello (pablo@canello.com.ar)