You are on page 1of 26

UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERIA DEPARTAMENTO DE ELECTRONICA DISEO CON ELECTRONICA INTEGRADA 27 DE NOVIEMBRE DE 2006

LAVARROPAS AUTOMATICO CON PIC 16F872


David Mariscal Nuo dmariscaljr@hotmail.com

INDICE: Resumen...2 Antecedentes....3 Definicin de presstato..3 Definicin de Servo..4 Diagrama y caractersticas del Servo..5 Descripcin del microcontrolador PIC16F872..6 Diagrama a bloques PIC16F8727 Desarrollo del proyecto...8 Esquema elctrico...9 Diagrama del Servo..11 Montaje.12 Conclusiones14 Referencias bibliograficas...14

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

Resumen: La idea de este proyecto es reemplazar un temporizador electromecnico de lavarropas automtico por un microcontrolador y unos cuantos componentes de fcil adquisicin como lo son resistores, Capacitores y bobinas, esto con el fin de mejorar el funcionamiento del aparato en cuestin. Cabe aclarar que esto surge tras la necesidad de que varios dispositivos que cuentan con temporizadores electromecnicos sufrieron la rotura del timer (temporizador) por lo que se decide hacer esta fcil solucin al problema. Una cosa importante a tener en cuenta cuando se emprende una reforma de semejantes dimensiones es tener un amplio conocimiento de lo que se pretende lograr. Un timer (temporizador) no es ms que un reloj gigante que avanza a determinado ritmo (definido por la frecuencia de la red elctrica). Este ritmo a veces es condicionado por eventos externos como estado del presstato al momento de cargar el agua o en el desahogue. Antes que nada se debe conocer bien el funcionamiento d etenidamente y ver que es lo que el timer hace para luego poder sintetizarlo con un microcontrolador. El funcionamiento bsico del dispositivo se describe a continuacin: Primero se carga el agua con un producto para pre-tratar las prendas (esto suele ser detergente), una vez llenado el tanque con el agua mas el producto en caso de haberlo en la gaveta del cajn porta productos se comienza el ciclo de lavado, esto consiste en hacer girar el tambor a baja velocidad. Algunos lavarropas slo tienen un sentido de rotacin del tambor, otros lavarropas tienen dos sentidos de giro. Esto de girar para un lado y para el otro no es capricho, el giro hacia un solo lado la ropa se trenza entre s hacindose una gran pelota de trapo que, cuando toca el turno de centrifugar hace que el lavarropas baile. Despus 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, lo que se hace es forzar el agua a pasar por la gaveta de jabn en polvo y listo, todo lo anterior es igual. El proceso siempre es igual, lo que cambia es el producto que se le agrega al agua, el jabn es el encargado de lavar bien, no el aparato, dependiendo del programa seleccionado esto de lavar con jabn 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 lquido y est contenido en una gaveta especialmente diseada para que no se escurra el producto antes del tiempo debido. Bsicamente es un piletoncido donde el lquido queda contenido, cuando le tiramos agua desde arriba el piletn desborda y el lquido cae por gravedad. Otra vez se hace girar el tambor a baja velocidad y luego se vaca. Por ltimo se hace el centrifugado que consiste en hacer girar el tambor a alta velocidad durante siete minutos y medio (este tiempo puede variar dependiendo del lavarropas). Durante el centrifugado se acciona la bomba de desahogue para quitar del tambor los restos de agua que se escurran. En si este es el funcionamiento bsico de un lavarropas automtico cotidiano, pero con el uso del microcontrolador se reemplaza el temporizador electromecnico para un funcionamiento mas optimo.

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

ANTECEDENTES: El desarrollo del proyecto hasta ahora es fcil, pero al destapar el aparato se encuentran variantes que debemos tomar en cuenta, como lo son la forma en la que se canaliza el agua a travs de las gavetas del cajn. Se pretende encontrar algo elctrico que accione algn mecanismo el cual forc el agua a pasar por tal o cual canal. Pero la realidad es muy distinta: el lavarropas tiene un mando plstico que une el control de flujo del agua dentro del cajn con el anillo del timer. Al girar el timer mueve el mando de plstico el cual cambia la gaveta por la cual pasa el agua. El sistema es ingenioso, pero de muy mala calidad. Ahora debemos buscar la forma de como hacer para que un microcontrolador accione el mando del cajn, se piensa en motores paso a paso, en motores embragados, en solenoides y en muchas otras cosas mas, una solucin fcil y sencilla seria en hacerle un agujero extra al cajn y entrar con otra electro vlvula. Accionando una tendra la entrada de agua por un sitio y accionando la otra por el otro sitio. Esto implicaba un sistema de caos unidos dentro del equipo pero no nos seria de mucha utilidad. Por lo que la solucin aparece de la mano de los servos utilizados para modelismo. Estos servos requieren de slo una seal de control para posicionar un eje en un lugar preciso sin importar donde se encuentre antes. Luego viene 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 rels se controla el accionamiento del motor. Dos rels deciden cual ser la bobina de arranque a utilizar y dos rels deciden cual ser la bobina de marcha a hacer funcionar. De esta forma el microcontrolador tiene la forma de controlar el motor. Otros dos rels accionan la electro vlvula que permite el ingreso del agua y la bomba que se encarga de desahogar el tanque. Gracias a un presstato 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. [1] Un presstato sirve para controlar o regular una presin o una depresin en un circuito neumtico o hidrulico. Estos aparatos transforman un cambio de presin en una seal elctrica todo o nada. Cuando se alcanza una cierta presin preseleccionada, el contacto de tipo ruptura brusca cambia de estado. [3] Los presostatos se emplean en multitud de aplicaciones de los campos de la industria y comercio: 1. Para el control y la regulacin de las condiciones de presin en medios lquidos o gaseosos en tuberas, tanques, calderas, etc. en fluidos. 2. Usados en procesos industriales, tcnica de refrigeracin, neumtica e hidrulica. 3. Para el control de la presin en circuitos de refrigeracin y sistemas de lubricacin de aceite para una amplia variedad de mquinas. Adems del control automtico y la limitacin de la presin, los presostatos se usan para iniciar y finalizar procesos varios de regulacin y control, para programar secuencias de funciones y mostrar seales.

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

Los aparatos de control de presin se usan para encender o apagar los motores en las bombas, compresores, reguladores de la aspiracin, vlvulas de electroimn y sistemas de suministro de aire comprimido, en funcin de la presin que rija el equipo. La presin del fluido de seguimiento acta - segn el rango de presin - como una membrana plana o pistn y acciona un micro-interruptor de cascada por medio de un sistema elevador y muelles resistentes a las vibraciones, que garantiza un funcionamiento del mecanismo libre de oscilaciones. [4]

Figura 1. Presstato

El servo motor a utilizar aqu es el hitec hs-311, es un servo de tamao y potencia estndar que ha sido empleado durante muchos aos en miles de aplicaciones, demostrando sus capacidades y su fiabilidad. Este servo proporciona todas las caractersticas y funcionalidades que uno espera encontrar en un servo de calidad, a la vez que mantiene un coste ajustado. Tanto el cojinete de salida como los engranajes son de Nylon. Conexiones: Amarillo-seal, Rojo- positivo y Negro-negativo. [2]

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

Caractersticas tcnicas Servo Hitec HS311 Servo Hitec HS311


Sistema de Control Velocidad a 6V Fuerza a 6V Corriente en reposo Corriente funcionamiento Corriente Mxima Zona Neutra Rango Trabajo Dimensiones Peso Rodamiento Principal Engranajes Longitud del cable en Control por Anchura de Pulso. 1,5 ms al centro 0,15 Seg /60 grados sin carga 3,5 Kg cm 7,7 mA 180 mA sin carga 800 mA 5 sec 1100 a 1900 sec 40 x 20 x 36,5 mm 43 g Plstico Plstico 300 mm

Tensin de funcionamiento 4,8V a 6 V

Tabla 1. Caractersticas del Servo Hitec HS311

Figura 2. Servo

Este servo se atornilla al chasis frontal del lavarropas, junto a los botones de mando original para carga a media y exclusin de centrifugado, y por medio de un alambre bastante rgido se logra enlazarlo con el mando del cajn porta productos. Despus se busca las correctas posiciones para el brazo del servo, debido a que un lavarropas convencional tiene cuatro gavetas de productos son necesarias cuatro rutinas distintas de seleccin 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.

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

Descripcin del PIC16F872 Para poder programar el microcontrolador PIC16F872 es necesario conocer primero su arquitectura as como el diagrama a bloques que lo constituye internamente. Hay 3 bloques de memorias en el PIC16F872, la memoria de programa y la memoria de datos estn separadas por buses para el acceso, la memoria de datos esta cubierta en esta seccin. El PIC tiene 13 bits de contador de programa diseccionados a 8K por palabra x 14 bits de espacio en memoria de programa. El PIC16F872 ofrece 64 octetos de memoria de los datos de EEPROM, uno mismo que programa, un ICD, 5 canales de convertidor de analgico a digital de 10 pedacitos, 2 contadores de tiempo adicionales, una captura/compare/PWM funciona y el puerto serial sncrono se puede configurar como 3 ata con alambre el interfaz perifrico serial ( del de SPI) o el de dos hilos Inter-Integrada - circular (el autobs del del de C del de I). Todas estas caractersticas hacen ideal para usos de analogico a digital llanos ms avanzados en automotor, industrial, aplicaciones y usos del consumidor.[5] El PIC16F872 permite la depuracin en circuito ejecutando la aplicacin en tiempo real sin necesidad de utilizar el emulador. La tecnologa Flash permite a los usuarios la realizacin de diagnsticos de circuitos durante el desarrollo y fabricacin, hasta que la tarjeta est plenamente operativa. [5]

Figura3. Diagrama de Pines del PIC16F872

En la figura anterior se puede apreciar la configuracin de los pines del microcontrolador, as como de los puertos que este utiliza. La arquitectura del microcontrolador es del tipo Harvard, en la figura siguiente podemos apreciar el diagrama a bloques del microcontrolador :

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

Figura 4. Diagrama a Bloques del PIC16F872

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

Desarrollo: Adems del control del servo en esta nueva revisin se le agrega 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 presstato 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 comn esto no est contemplado y si se llega a cortar el agua y no lo detectamos la electro vlvula quedar permanentemente conectada con lo que se quemar. 2. Time -Out para el desahogue: Si al desahogue el agua, el presstato no muestra bajo nivel en aprox. 10 minutos el equipo corta la corriente de todas las etapas. Sucede que a veces se coloca al tambor prendas que no se deberan meter, las cuales desprenden residuos que en ocasiones contadas pueden trabar la bomba de descarga de agua. Esto provocara a la larga la quemadura del motor que la hace girar ya que la ventilacin del bobinado de este motor depende de unas paletas plsticas 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.

Diagrama a bloques del sistema:

Figura 5. Diagrama a bloques del sistema

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

Figura 6. Esquema Elctrico.

Este circuito corresponde a la etapa de actuacin de potencia. Con los dos rels dobles se controla el funcionamiento del motor de rotacin. Accionando el rel superior se hace circular corriente por la bobina de marcha lenta (Lavado) as como por la bobina de arranque en sentido horario. Si, en cambio, se acciona el rel inferior har circular corriente por la bobina de marcha rpida (centrifugado) as como por la bobina de arranque en sentido antihorario. La forma en la que logra hacer girar el tambor hacia el sentido anti-horario pero a baja velocidad es accionando el centrifugado pero al mismo tiempo la bobina de marcha lenta, la de marcha; no la de arranque. En ese caso el lavarropas gira para el otro lado a baja velocidad y con buena fuerza. Los dos rels simples controlan la electro vlvula de admisin de agua y la bomba de desahogue respectivamente. Los pad's que vienen desde el mdulo de control son ML, MC, EV y BD los cuales accionan el motor en marcha lenta, el motor en marcha rpida, la electro vlvula y la bomba de desahogue respectivamente al poner a tierra cada uno. El otro extremo del rel est conectado al positivo de 12V de la fuente de alimentacin.

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

Figura 7.Seccin Lgica del Sistema El circuito electrnico muestra la seccin lgica del sistema. Esta formada bsicamente por un microcontrolador PIC16F872 el cual tiene grabado en su memoria el programa apropiado. El ULN2803A es un driver de corriente con diodos de proteccin que permite al PIC comandar los rels y el buzzer sin que ello represente carga alguna. El display de siete segmentos permite seleccionar el programa a ejecutar. Los nmeros indicados en cada segmento corresponden al bit dentro del puerto C al que debe conectarse cada uno. Se vera mas adelante el tiempo y cantidad de pasos de cada programa. Dado que el display no est multiplexado con otras funciones su ctodo comn debe ser conectado a tierra. El puerto C del micro es destinado al manejo directo del display. El puerto B, en tanto, es destinado al control de salidas y el puerto A al censado de entradas. El cristal de 4MHz provee de oscilacin 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 exclusin de centrifugado son del tipo estndar por lo que no requieren mayor explicacin. Los pulsadores Seleccin 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 mencionadas. Las cinco resistencias de 1K mantienen en alto las entradas (Pull Up) en caso de estar abiertos los interruptores y pulsadores respectivos. El presstato dispone de dos inversores comandados por un censor de presin a goma. Cuando la presin en la goma alcanza la media carga del tanque el primer inversor se acciona. Cuando la presin alcanza la totalidad del tanque el segundo inversor se acciona. Debido a que
David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

10

son inversores nosotros slo usaremos los contactos "Comn" y "Normal Abierto" de cada uno. Los contactos "Comn" los pondremos a tierra mientras que los "Normal Abierto" irn al microcontrolador a indicarle los niveles alcanzados. El contacto "MC" es para la deteccin de media carga alcanzada mientras que el contacto "CC" es para la deteccin de carga completa. El servo es muy fcil de conectar. Por lo general dispone de tres cables con los colores amarillo negro y rojo. El cable negro debe ir a tierra, el rojo a alimentacin (+ 5Vcc) y el amarillo al microcontrolador, por este cable van los pulsos de control de posicin.

Figura 8. Diagrama del Servo

Por ltimo la fuente de alimentacin 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 rels como as tambin del buzzer y del LED indicador de encendido. El regulador lineal 7805 provee los 5V necesarios para alimentar el microcontrolador y el servo. El capacitor de 100nF filtra el rizado producido por este componente al regular. El programa tiene siete pasos. Al encender el equipo un guin 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 confirmacin 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. Es algo til y ningn lavarropas lo tiene. Seleccionamos el programa apropiado con el pulsador ubic ado 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 despus de iniciado el lavado. Lo mismo sucede con el de "Exclusin de centrifugado". Si durante el proceso de lavado se corta la corriente elctrica y el tambor queda cargado con agua esto no ser problema. Al volver la energa el lavarropas inicia una verificacin y de haber agua en el tambor har un desahogue y luego quedar al comienzo, como siempre. Cuando el lavado
David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

11

termine tres pitidos sonarn y aparecer una "F" de finalizado en el display. Podemos ahora presionar el pulsador de seleccin de programa y volver a lavar o desconectar el equipo. Montaje: Se utiliza una caja plstica del tipo Chillemi para colocar los rels lejos de la placa del microcontrolador y bien cerca de donde estn las partes a controlar; motor, electro vlvula y bomba de desahogue. Aparte se cuelga con precintos el transformador muy alto cosa que se le complique al agua alcanzarlo. Lo mismo se hace con la plaqueta la cual quedo ocupando el lugar del viejo timer mecnico. En donde estaba la rueda selectora se coloca un acrlico transparente que se corta en el cual estn los dos pulsadores y el display indicador. El servo se monta en el chasis frontal junto con las llaves de opciones de "Media Carga" y "Exclusin de centrifugado". 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 ms bien que est el programa si el cascote de concreto le da un golpe al box de rels puede pasar cualquier desastre. Hay que tener en cuenta que se esta 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 problemas luego.

Figura 9. Montaje de Reles En la figura anterior se observa el montaje de la caja de los reles en el lavarropas en la parte del chasis del aparato, lejos del contacto con las mangueras del agua para evitar algn corto circuito posible.

Figura 10. Tableta de montaje

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

12

Se puede apreciar el montaje de de los elementos y del microcontrolador en la parte de atrs del panel frontal del lavarropas, desde donde se operara y el microcontrolador mandara las instrucciones necesarias a todo el esquema elctrico para su buen funcionamiento.

Figura 11. Presstato

Se observa el montaje del presstato que sirve para controlar las presiones del liquido en la tina, a un costado se observa el transformador, los cuales estn lo mas alejados de las mangueras del agua para evitar que se mojen y se daen por si alguna ves se rompieran las mangueras accidentalmente.

Figura 12. Montaje del Servo


David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

13

Por ultimo, en la figura anterior podemos ver montado el Servo, el cual esta encargado de proporcionar los giros de la tina en el lavarropas, es uno de los elementos mas importantes dentro des este prototipo. Conclusiones: Con el desarrollo de este proyecto podemos observar que mediante la implementacin de un microcontrolador y aditamento de circuitos, pode mos mejorar el funcionamiento de ciertos mecanismos en nuestra vida cotidiana, tal es el caso de un lavarropas automtico, el cual con el funcionamiento de un temporizador electromecnico pudimos modificarlo mediante un microcontrolador y un Servo motor que hacen mas eficiente su funcionamiento, ya que el temporizador sufre muchas roturas con el pasar del tiempo, lo que pretendemos hacer es que el funcionamiento o rotamiento de la tina se haga por medio de un Servo el cual esta controlado por un PIC el cual previamente programado le indica las instrucciones, que en este caso son los ciclos de lavado. Esto presenta bastantes mejoras ante el esquema anterior, adems de que presenta un bajo coste la implementacin, ya que no presenta mucha complejidad, pero si una mejora en el funcionamiento del aparato. Se pretende que el desarrollo de este sistema provee bastante eficiencia no solo en este sistema sino en una gran gama de sistemas electrnicos los cuales son controlados por temporizadores electromecnicos.

Bibliografa: [1] http://www.pablin.com.ar/electron/circuito/mc/rev02.asm [2] http://www.pablin.com.ar/electron/circuito/lavapic/ [3] http://html.rincondelvago.com/automatismos_2.html [4]http://www.bauerkompressoren.de/es/produkte/schraubenkompressoren/komponente n/druckschalter/index.php [5] www.robotstore.com/download/246941.pdf

LAVARROPAS AUTOMATICO CON PIC 16F872


David Mariscal Nuo dmariscaljr@hotmail.com A continuacin se presenta el programa ensamblado para el microcontrolador para realizar la funcin en el lavarropas automtico.
; ; ; ; Control de lavarropas automtico Universidad De Guadalajara CUCEI David Mariscal Nuo equ equ equ equ equ equ 0x02 0x03 0x05 0x06 0x07 0x0B ;contador de programa (parte baja) ;Registro de estados del micro ;Puertos de E/S

cprog estado ptoa ptob ptoc intcon

;Control de interrupciones

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

14

tiempo1 tiempo2 tiempo3 veces display general tout1 agua tout2 backw #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define pausa #define agua

equ equ equ equ equ equ equ equ equ CERO RP0 GIE SELECT START MEDIA NOCENT PRES50 PRES100 BUZZER MOTFAST MOTSLOW CALEF VALVULA BOMBA SERVO PAUSA ENTRA

0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 estado, 2 estado, 5 intcon, 7 ptoa, 0 ptoa, 1 ptoa, 2 ptoa, 3 ptoa, 4 ptoa, 5 ptob, 7 ptob, 6 ptob, 5 ptob, 4 ptob, 3 ptob, 2 ptob, 1 general, 0 general, 1

;Usados para temporizar

;Resguarda el numero mostrado en el display ;Usadas para el timeout de carga y descarga de

;Back-up de W al interrumpir ;Bit indicador de resultado cero ;Bit de seleccin de pgina de memoria ;Bit de habilitacin de las interrupciones ;Entrada de seleccin de programa ;Entrada de inicio del proceso ;Entrada de la llave de media carga ;Entrada de la llave de exclusin de centrifugado ;Entrada del presostato a media carga ;Entrada del presostato a carga completa ;Control del parlante piezo ;Motor a alta velocidad ;Motor a baja velocidad ;Control del sistema de calentamiento del agua ;Entrada de agua (electrovlvula) ;Salida de agua (desagote) ;Pulsos de control del servo selector de producto ;Indica que entre programa y programa haga una ;Indica si esta en modo carga (1) /descarga (0) de

goto org movwf incfsz goto incf movf sublw btfss goto bcf bcf bcf bcf bcf FALLA movlw call movwf bsf call bcf call movlw btfss movlw call movwf bsf call bcf call goto

INICIO

;Saltea la tabla del display

0x04 ;Vector de interrupcion backw ;Guarda W tout1, 1 ;Suma 1 a TimeOut 1 SALEINT ;Si no llego a dar la vuelta sale tout2, 1 ;Suma 1 a TimeOut 2 tout2, 0 ;Controla si llego a 17 (aprox. 10 min) d'34' CERO SALEINT ;Si no llego a cinco minutos sale VALVULA BOMBA MOTFAST MOTSLOW CALEF d'11' TABLA ptoc BUZZER DELOFF BUZZER DEL250 d'1' ENTRA d'2' TABLA ptoc BUZZER DELOFF BUZZER DEL250 FALLA ;Apaga la electrovlvula de entrada de agua ;Apaga la bomba de desage ;Apaga el Motor ;Apaga el sistema de calentamiento de agua

;Muestra E2 en el display ;Muestra E2 en el display

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

15

SALEINT movlw movwf movf retfie TABLA addwf retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw clrf clrf clrf clrf bsf movlw movwf movlw movwf clrf clrf movlw movwf movlw desde XT movwf bcf movlw call movwf movlw movwf bsf call bcf call btfss pulsador durante goto btfss goto decfsz goto goto SETPAP movlw call movwf bsf call call btfss goto

b'10100000' ;Restablece las interrupciones intcon backw, 0 ;Restablece W

cprog, 1 ;Genera b'00111111' b'00000110' b'01011011' b'01001111' b'01100110' b'01101101' b'01111101' b'00000111' b'01111111' b'01101111' b'01000000' b'01111001' b'01110001' b'01110011' ptoa ptob ptoc general RP0 b'00000110' 0x1F b'00111111' ptoa ptob ptoc b'00100000' intcon b'11010111' 0x01 RP0 d'10' TABLA ptoc d'10' tiempo3 ptoc, 7 DEL250 ptoc, 7 DEL250 START el SETPAP SELECT SETPAP tiempo3, 1 $ -9 AUTOM d'13' TABLA ptoc PAUSA BEEP DEL250 SELECT $ -2

los nmeros y caracteres en el display ; 0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; - (10) ; E (11) ; F (12) ; P (13) ;Arranca con todo apagado

INICIO

;Flags en cero ;configura los pines de E/S

;Establece las interrupciones ;Asigna a TMR0 el predivisor a 256 y toma osc.

;Coloca el '-' en el display durante 5 segundos

;Hace destellar el punto del display ;Hace destellar el punto del display ;Entra en modo pausa al presionar cualquier ;Acciona el mecanismo paso a paso ;Acciona el mecanismo paso a paso

;Saltea la seccin donde coloca la 'P' ;Coloca la P en el display

;Acciona el flag de Paso a Paso

;Espera que suelte ambos pulsadores

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

16

btfss goto AUTOM bsf bcf clrf clrf btfsc goto movlw call movwf call call call call call bsf btfss goto call call bcf bcf movlw call movwf call call btfss goto btfss goto btfss goto goto movlw call movwf call call btfss goto btfss goto btfss goto goto movlw call movwf call call btfss goto btfss goto btfss goto goto movlw call movwf call call btfss

START $ -4 GIE ENTRA tout1 tout2 PRES50 SEL1C d'11' TABLA ptoc BEEP DEL250 BEEP DEL250 BEEP BOMBA PRES50 $ -1 DIEZSEG DIEZSEG BOMBA GIE d'1' TABLA ptoc BEEP DEL250 SELECT $ -2 SELECT SEL2C START START1C $ -4 d'2' TABLA ptoc BEEP DEL250 SELECT $ -2 SELECT SEL3C START START2C $ -4 d'3' TABLA ptoc BEEP DEL250 SELECT $ -2 SELECT SEL4C START START3C $ -4 d'4' TABLA ptoc BEEP DEL250 SELECT ;Activa el sistema de time-out de descarga ;Inicializa los contadores de timeout ;Si hay agua en el tanque desagota totalmente ;Coloca el 'E' en el display

;Enciende la bomba de desagote ;Espera que el presostato indique tanque vaco

;Desconecta la bomba ;Desactiva el sistema de timeout ;Arranca en programa corto 1

SEL1C

;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

SEL2C

;Programa corto 2

;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

SEL3C

;Programa corto 3

;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

SEL4C

;Programa corto 4

;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

17

SEL5C

SEL6C

goto btfss goto btfss goto goto movlw call movwf call call btfss goto btfss goto btfss goto goto movlw call movwf call call btfss goto btfss goto btfss goto goto movlw call movwf bsf call call btfss goto btfss goto btfss goto goto movlw call movwf bsf call call btfss goto btfss goto btfss goto goto movlw call movwf bsf call call btfss goto btfss goto

$ -2 SELECT SEL5C START START4C $ -4 d'5' TABLA ptoc BEEP DEL250 SELECT $ -2 SELECT SEL6C START START5C $ -4 d'6' TABLA ptoc BEEP DEL250 SELECT $ -2 SELECT SEL1L START START6C $ -4 d'1' TABLA ptoc ptoc, 7 BEEP DEL250 SELECT $ -2 SELECT SEL2L START START1L $ -4 d'2' TABLA ptoc ptoc, 7 BEEP DEL250 SELECT $ -2 SELECT SEL3L START START2L $ -4 d'3' TABLA ptoc ptoc, 7 BEEP DEL250 SELECT $ -2 SELECT SEL4L

;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

;Programa corto 5

;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

;Programa corto 6

;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

SEL1L

;Programa largo 1

;Enciende el punto decimal del display ;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

SEL2L

;Programa largo 2

;Enciende el punto decimal del display ;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

SEL3L

;Programa largo 3

;Enciende el punto decimal del display ;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

18

SEL4L

SEL5L

SEL6L

SEL7L

btfss goto goto movlw call movwf bsf call call btfss goto btfss goto btfss goto goto movlw call movwf bsf call call btfss goto btfss goto btfss goto goto movlw call movwf bsf call call btfss goto btfss goto btfss goto goto movlw call movwf bsf call call btfss goto btfss goto btfss goto goto

START START3L $ -4 d'4' TABLA ptoc ptoc, 7 BEEP DEL250 SELECT $ -2 SELECT SEL5L START START4L $ -4 d'5' TABLA ptoc ptoc, 7 BEEP DEL250 SELECT $ -2 SELECT SEL6L START START5L $ -4 d'6' TABLA ptoc ptoc, 7 BEEP DEL250 SELECT $ -2 SELECT SEL7L START START6L $ -4 d'7' TABLA ptoc ptoc, 7 BEEP DEL250 SELECT $ -2 SELECT SEL1C START START7L $ -4 BEEP BOX1 CARGAR d'6' LAVAR VACIAR BEEP d'2' TABLA

;Controla el pulsador para iniciar el programa

;Programa largo 4

;Enciende el punto decimal del display ;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

;Programa largo 5

;Enciende el punto decimal del display ;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

;Programa largo 6

;Enciende el punto decimal del display ;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

;Programa largo 7

;Enciende el punto decimal del display ;Evita repeticiones por pulsadores garcha ;Espera que suelte el pulsador ;Controla el pulsador para cambiar de programa ;Controla el pulsador para iniciar el programa

START1C call call 1) call movlw call call START2C call movlw call

;Selecciona la carga de agua por el box 1 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 10 min. ;Desagota el tanque

;Muestra el 2 en el display

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

19

movwf btfss goto btfsc goto SIGUE2C call 2) call movlw call call START3C call movlw call movwf btfss goto btfsc goto SIGUE3C call 2) call movlw call call START4C call movlw call movwf btfss goto btfsc goto SIGUE4C call 2) call movlw call call START5C call movlw call movwf btfss goto btfsc goto SIGUE5C call (enjuague) call movlw call call START6C call movlw call movwf btfss goto btfsc goto SIGUE6C call movlw

ptoc PAUSA SIGUE2C START $ -7 BOX2 CARGAR d'6' LAVAR VACIAR BEEP d'3' TABLA ptoc PAUSA SIGUE3C START $ -7 BOX2 CARGAR d'6' LAVAR VACIAR BEEP d'4' TABLA ptoc PAUSA SIGUE4C START $ -7 BOX2 CARGAR d'51' LAVAR VACIAR BEEP d'5' TABLA ptoc PAUSA SIGUE5C START $ -7 BOX3 CARGAR d'24' LAVAR VACIAR BEEP d'6' TABLA ptoc PAUSA SIGUE6C START $ -7 CENTRIF d'12'

;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 2 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 10 min. ;Desagota el tanque

;Muestra el 3 en el display

;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 2 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 10 min. ;Desagota el tanque

;Muestra el 4 en el display

;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 2 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 25 min. ;Desagota el tanque

;Muestra el 5 en el display

;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 3 ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 16 min. ;Desagota el tanque

;Muestra el 6 en el display

;Si esta pausado... ;Espera que presione el pulsador ;Centrifugado ;Coloca la 'F' en el display

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

20

call movwf call btfsc goto movlw call movwf call btfss goto goto START1L call call 1) call movlw call call START2L call movlw call movwf bsf btfss goto btfsc goto SIGUE2L call 1) call movlw call call START3L call movlw call movwf bsf btfss goto btfsc goto SIGUE3L call 2) call movlw call call START4L call movlw call movwf bsf btfss goto btfsc goto SIGUE4L call 2) call movlw call

TABLA ptoc BEEPFIN SELECT $ -1 d'10' TABLA ptoc DEL250 SELECT $ -2 SEL1C BEEP BOX1 CARGAR d'6' LAVAR VACIAR BEEP d'2' TABLA ptoc ptoc, 7 PAUSA SIGUE2L START $ -8 BOX1 CARGAR d'21' LAVAR VACIAR BEEP d'3' TABLA ptoc ptoc, 7 PAUSA SIGUE3L START $ -8 BOX2 CARGAR d'21' LAVAR VACIAR BEEP d'4' TABLA ptoc ptoc, 7 PAUSA SIGUE4L START $ -8 BOX2 CARGAR d'51' LAVAR

;Hace tres beep's largos ;Espera que presione el pulsador ;Coloca el '-' en el display

;Previene rebotes en pulsadores garcha ;Espera que suelte el pulsador ;Vuelve al comienzo del programa 1 corto

;Selecciona la carga de agua por el box 1 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 10 min. ;Desagota el tanque

;Muestra el 2 en el display

;Enciende el punto del display ;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 1 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 15 min. ;Desagota el tanque

;Muestra el 3 en el display

;Enciende el punto del display ;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 2 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 15 min. ;Desagota el tanque

;Muestra el 4 en el display

;Enciende el punto del display ;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 2 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 25 min.

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

21

call START5L call movlw call movwf bsf btfss goto btfsc goto SIGUE5L call 2) call movlw call call START6L call movlw call movwf bsf btfss goto btfsc goto SIGUE6L call (enjuague) call movlw call call START7L call movlw call movwf bsf btfss goto btfsc goto SIGUE7L call movlw call movwf call btfsc goto movlw call movwf call btfss goto goto BOX1 movlw movwf bsf movlw call bcf call decfsz goto

VACIAR BEEP d'5' TABLA ptoc ptoc, 7 PAUSA SIGUE5L START $ -8 BOX2 CARGAR d'21' LAVAR VACIAR BEEP d'6' TABLA ptoc ptoc, 7 PAUSA SIGUE6L START $ -8 BOX3 CARGAR d'90' LAVAR VACIAR BEEP d'7' TABLA ptoc ptoc, 7 PAUSA SIGUE7L START $ -8 CENTRIF d'12' TABLA ptoc BEEPFIN SELECT $ -1 d'10' TABLA ptoc DEL250 SELECT $ -2 SEL1L d'40' tiempo3 SERVO d'100' DELON SERVO DELOFF tiempo3, 1 $ -6

;Desagota el tanque

;Muestra el 5 en el display

;Enciende el punto del display ;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 2 (jabn ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 15 min. ;Desagota el tanque

;Muestra el 5 en el display

;Enciende el punto del display ;Si esta pausado... ;Espera que presione el pulsador ;Selecciona la carga de agua por el box 3 ;Carga agua en el tanque ;Ejecuta un ciclo de lavado de 38 min. ;Desagota el tanque

;Muestra el 7 en el display

;Enciende el punto del display ;Si esta pausado... ;Espera que presione el pulsador ;Centrifugado ;Coloca la 'F' en el display

;Hace tres beep's largos ;Espera que presione el pulsador ;Coloca el '-' en el display

;Previene rebotes en pulsadores garcha ;Espera que suelte el pulsador ;Vuelve al comienzo del programa 1 corto ;Selecciona el casillero 1 de jabn

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

22

return BOX2 movlw movwf bsf movlw call bcf call decfsz goto return movlw movwf bsf movlw call bcf call decfsz goto return movlw movwf bsf movlw call bcf call decfsz goto return bsf bsf clrf clrf bsf btfsc goto btfss goto goto btfss goto goto bcf bcf return d'40' tiempo3 SERVO d'120' DELON SERVO DELOFF tiempo3, 1 $ -6 ;Selecciona el casillero 2 de jabn

BOX3

d'40' tiempo3 SERVO d'200' DELON SERVO DELOFF tiempo3, 1 $ -6

;Selecciona el casillero de enjuague

BOX4

d'40' tiempo3 SERVO d'155' DELON SERVO DELOFF tiempo3, 1 $ -6

;Selecciona el casillero de pre-lavado

CARGAR

CARGA

MITAD

LLENO

GIE ENTRA tout1 tout2 VALVULA MEDIA MITAD PRES100 LLENO CARGA PRES50 LLENO CARGA VALVULA GIE

;Activa el sistema de time-out de carga ;Inicializa los contadores de timeout ;Conecta la electrovlvula ;Verifica si debe cargar a media o completo ;Mira el presostato a 100% ;Si se lleno termina la carga ;Si no se lleno espera que termine la carga ;Mira el presostato al 50% ;Si alcanz el nivel termina la carga ;Si no alcanz el nivel espera que llegue ;Desconecta la electrovlvula ;Desactiva el sistema de time-out

;/////////////////////////////////////////////////////////////////////////////////// ///// ;PROCESO DE LAVADO ;Demora 6 minutos en cargar el agua y dos minutos mas en descargarla ;Por lo que el tiempo total del lavado es igual a 8 min + (W * 20 seg) ;Lavado de 10 min -> W = 6 ;Lavado de 15 min -> W = 21 ;Lavado de 16 min -> W = 24 ;Lavado de 25 min -> W = 51 ;Lavado de 38 min -> W = 90 ;/////////////////////////////////////////////////////////////////////////////////// ///// LAVAR movwf veces ;Utiliza W para condicionar la cant. de ciclos de lavado

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

23

LAVAMAS bsf segundos movf movwf call bcf movf movwf call decfsz goto return VACIAR bsf bcf clrf clrf bsf btfss goto call call bcf bcf return

MOTSLOW ptoc, 0 display DIEZANI MOTSLOW display, 0 ptoc DIEZSEG veces, 1 LAVAMAS

;Enciende el motor en baja velocidad durante 10 ;Resguarda el numero mostrado en el display

;Apaga el motor durante 10 segundos ;restaura el display a su estado normal

GIE ENTRA tout1 tout2 BOMBA PRES50 $ -1 DIEZSEG DIEZSEG BOMBA GIE

;Activa el sistema de time-out de descarga ;Inicializa los contadores de timeout ;Acciona la bomba de desagote ;Espera que se vace completamente el tanque ;Espera 20 segundos extra ;Desconecta la bomba ;Desactiva el sistema de timeout

CENTRIF btfsc return btfsc goto bsf btfss goto call call bcf CENT2 bsf bsf algo) call call call call call call movlw intermitente movwf bsf call bcf call call call decfsz goto bcf return DIEZANI movlw movwf call decfsz goto return ANIM movlw

NOCENT PRES50 CENT2 BOMBA PRES50 $ -1 DIEZSEG DIEZSEG BOMBA MOTFAST BOMBA DIEZSEG DIEZSEG DIEZSEG DIEZSEG DIEZSEG DIEZSEG d'4' veces BOMBA DIEZSEG BOMBA DIEZSEG DIEZSEG DIEZSEG veces, 1 $ -7 MOTFAST

;Si esta en modo no-centrifugar ;Evita hacerlo ;Mira si hay agua en el tanque ;Si no hay agua va directamente a centrifugar ;Enciende la bomba de desague

;Una vez que se vacia el tanque apaga la bomba ;Enciende el motor a alta velocidad ;Activa el desagote (por si con suelte escurre ;Un minuto con bomba a pleno

;Espera 2 minutos y monedas con la bomba

;Enciende la bomba de desagote ;Apaga la bomba

;Apaga el motor

d'10' tiempo3 ANIM tiempo3, 1 $ -2

b'00100000'

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

24

movwf call movlw movwf call movlw movwf call movlw movwf call return DIEZSEG movlw goto UNSEG movlw movwf call decfsz goto return BEEPFIN bsf call call bcf call call bsf call call bcf call call bsf call call bcf call call return BEEP bsf call bcf call return movwf nop nop nop nop nop nop nop decfsz goto return movlw goto movlw movwf movlw movwf nop

ptoc DEL250 b'00000001' ptoc DEL250 b'00000010' ptoc DEL250 b'01000000' ptoc DEL250

d'40' $ +2 d'4' tiempo3 DEL250 tiempo3, 1 $ -2

;Demora de 10 segundos ;Demora de 1 segundo

BUZZER DEL250 DEL250 BUZZER DEL250 DEL250 BUZZER DEL250 DEL250 BUZZER DEL250 DEL250 BUZZER DEL250 DEL250 BUZZER DEL250 DEL250

;Hace tres beep's largos

BUZZER DELOFF BUZZER DELOFF

DELON

tiempo1

tiempo1, 1 $ -8

DEL250 DELOFF TOP2 TOP1

d'250' $ +2 d'50' tiempo2 d'110' tiempo1

;Demora de 1/4 de segundo ;Demora de 50ms

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

25

nop nop nop nop nop decfsz goto decfsz goto return end

tiempo1, 1 TOP1 tiempo2, 1 TOP2

David Mariscal Nuo codigo: 300314714 Diseo con Electrnica Integrada

26

You might also like