Autor Tema: programa para control de lavarropas automatico  (Leído 93411 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
programa para control de lavarropas automatico
« en: 20 de Agosto de 2012, 22:17:34 »
Hola a todo el foro: resulta que me regalaron dos lavarropas automáticos que tienen problemas de programador, están gastados y ya an sido reparados, la solución seria conseguir programador nuevo. Pero hace unos años se empezaron a realizar controles electrónicos genéricos para reemplazar a los mecánicos y alargar la vida de estas maquinas, como yo había visto algo por allí de este tema se me ocurrió realizar ese proyecto para mas allá de salvar las maquinas, que me gustan mas que las nuevas lo aclaro, busque y encontré dos proyectos completos en el vecino foros de electrónica. Están basados en el proyecto de pablin, mejorado y muy mejorado.
Pero el tema es que de tan completo solo hay que grabar el pic y realizar la plaqueta y chau solucionado el problema, ese es el pero, esta en ASM y yo quiero, mirando y entendiendo en la medida de lo posible el programa para traducirlo a NIPLE.
Si me imagino que probablemente sea mas fácil comenzar de cero en Niple y no dar tanta vuelta, no se que es mejor porque este programa ya tiene los tiempos de lavado con sus enjuagues y centrifugas y medias cargas y demás. No me cuesta mucha buscar el funcionamiento en tiempos de cada programa, seguro consigo los manuales, pero apunto a algo muy genérico como este y al estar en NIPLE podre reformar lo que no resulte.
No deseo hacer una restauración tipo auto viejo, solo darles la oportunidad a estas maquinas que sigan prestando dignamente servicios unos años mas....Me gustaría que alguien hiciera algo parecido por mi Je je je je.
La idea seria que yo Adjunte el proyecto total y realizar preguntas por partes especificas para ir sabiendo que hace cada bloque, me he preocupado por entender algo de ASM, pero no me entra.
Adjunto el programa completo el ASM esta al final de el doc.
Gracias por su atencion Sergio Peralta

Desconectado Nubbeo

  • PIC10
  • *
  • Mensajes: 12
Re: programa para control de lavarropas automatico
« Respuesta #1 en: 20 de Agosto de 2012, 22:29:24 »
Hola,
no manejo Niple. Pero te lo puedo pasar a C o responder tus consultas sobre el ASM.

Saludos

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re: programa para control de lavarropas automatico
« Respuesta #2 en: 21 de Agosto de 2012, 08:28:45 »
Hola Sergio:

Por mi parte ya sabes que estoy dispuesto a ayudarte a que pases el programa a Niple.
Ademas de esa forma puedes seguir aprendiendo y dominado este lenguaje/forma de programar.

Para pasar el ASM a Niple debes ir realizandolo paso a paso por bloques de programa de ASM, de esa forma las primeras instrucciones se corresponden con la configuracion de los puertos y la creacion de los registros auxiliares que vas a utilizar durante el programa.

¿que version de Niple dispones para poder ir indicandote las correcciones y que puedas ir realizando el programa?.

Saludos
F.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re: programa para control de lavarropas automatico
« Respuesta #3 en: 21 de Agosto de 2012, 13:54:07 »
Hola Sergio, empece a realizar un poco el programa segun el ASm que esta dentro del word y hay algunas cosillas que querria preguntarte al respecto ya que no las entiendo muy bien.
He empezado con la configuraciones de los puertos y pines y de acuerdo al Asm le faltamn los pines rb0, rb4 que se corresponden con un solenoide y algo del centirfugado  y giro a baja velocidad que me imagino que no usaras. Tambien al llegar al bloque de inico le asignas un valor a un registro "0x1F" ver negrita de a continuacion que no se lo que es.

INICIO   clrf   ptoa      ;Arranca con todo apagado
   clrf   ptob
   clrf   ptoc
   clrf   general      ;Flags en cero
   bsf   RP0      ;configura los pines de E/S
   movlw   b'00000110'
   movwf   0x1F
   movlw   b'00111111'

¿ la rb1 que es ¿ ¿salida?
Por otra parte cuando escribes por 1ª vez el “-“ en el display, en el comentario indicas que estará asi 5 segundos y no veo cómo. Entienpo que lo quieres realizar con la carga del valor decimal 10 en el registro “tiempo•3”, pero no veo que el mismo se decremente/incremente en ningún lado y no se compara con el valor de cuenta nunca ¿esto es correcto?
movlw   d'10'      ;Coloca el '-' en el display durante 5 segundos
   call   TABLA
   movwf   ptoc
   movlw   d'10'
   movwf   tiempo3

Cuando resuelva esto seguiré con el programa, ahora voy a crear la tabla. Te adjunto lo realizado hasta ahora.

F.
Todos los días se aprende algo nuevo.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
Re: programa para control de lavarropas automatico
« Respuesta #4 en: 21 de Agosto de 2012, 15:23:33 »
Hola Amigo Fer: Gracias por tu atencion como siempre al pie del cañon en nuestra ayuda.
Fer te mande un mensaje privado.
Bueno Fer : la idea es clara tomar ese Asm y pasarlo a NIPLE, lo primero que se me ocurrió es ver que el micro se se uso en el original se consiguiese en chechelandia porque aquí an cerrado la importación de algunas cosas y se pone difícil. Conseguí el micro 16f887 que también es el que usa Jorge Cano en sus vídeos de enseñanza, Algo de 7 dolares que no es el caso del precio porque es solo aprendizaje.
Ahora tengo que comparar si el 16f872 tiene lo necesario para migrar el proyecto, asumo que si el vendedor me dijo que el 16f887 es mejor.
Bien según mi planteo y en el que concordamos por lo que me doy cuenta que he avanzado en razonar y plantearme la organizacion del programa.Por Tu respuesta del pos, paso uno configuración de puertos y declaración de variables( registros, bits etc.
Lo voy a pegar aquí como esta en el ASM, para luego realizarlo en NIPLE para ver como va tomando forma.
Mi version de NIPLE es 5.6 rev 2.

; Control de lavarropas automático
; Rev. 01 // 04-OCT-2003 // Versión funcional sin selección de productos
; Rev. 02 //12-marzo-2010 // timeout's de carga y descarga del agua

cprog   equ   0x02      ;contador de programa (parte baja)
estado   equ   0x03      ;Registro de estados del micro
ptoa   equ   0x05      ;Puertos de E/S
ptob   equ   0x06
ptoc   equ   0x07
intcon   equ   0x0B      ;Control de interrupciones
tiempo1   equ   0x20      ;Usados para temporizar
tiempo2   equ   0x21
tiempo3   equ   0x22
veces   equ   0x23
display   equ   0x24      ;Resguarda el numero mostrado en el display
general   equ   0x25
tout1   equ   0x26      ;Usadas para el timeout de carga y descarga de agua
tout2   equ   0x27
backw   equ   0x28      ;Back-up de W al interrumpir

#define   CERO   estado, 2   ;Bit indicador de resultado cero
#define   RP0   estado, 5   ;Bit de selección de página de memoria
#define   GIE   intcon, 7   ;Bit de habilitación de las interrupciones
#define   SELECT   ptoa, 0      ;Entrada de selección de programa
#define   START   ptoa, 1      ;Entrada de inicio del proceso
#define   MEDIA   ptoa, 2      ;Entrada de la llave de media carga
#define   NOCENT   ptoa, 3      ;Entrada de la llave de exclusión de centrifugado
#define   PRES50   ptoa, 4      ;Entrada del presostato a media carga
#define   PRES100   ptoa, 5      ;Entrada del presostato a carga completa
#define   BUZZER   ptob, 7      ;Control del parlante piezo
#define   MOTFAST   ptob, 6      ;Motor a alta velocidad
#define   MOTSLOWI   ptob, 5      ;Motor a baja velocidad giro I
#define   MOTSLOWD   ptob, 4      ;Motor a baja velocidad giro D
#define   SELENOID   ptob, 0      ;Selenoide de engrane lavado (off)/centrifugado(on)
#define   VALVULA1   ptob, 3      ;Entrada de agua (electroválvula jabon)
#define   BOMBA   ptob, 2      ;Salida de agua (desagote)
#define  VALVULA2   ptob, 1      ;Entrada de agua (electroválvula enjuage)
#define   PAUSA   general, 0   ;Indica que entre programa y programa haga una pausa
#define   ENTRA   general, 1   ;Indica si esta en modo carga (1) /descarga (0) de agua.


Empecemos por aqui, con esta porcion del ASM.

cprog   equ   0x02      ;contador de programa (parte baja)----¿ que es esto?
estado   equ   0x03      ;Registro de estados del micro             ¿ y esto habla de estado a que se refiere
ptoa   equ   0x05      ;Puertos de E/S                                          ¿ aqui configura los puerto verdad...?
ptob   equ   0x06
ptoc   equ   0x07
intcon   equ   0x0B      ;Control de interrupciones                    ¿ tiempo serian registros?
tiempo1   equ   0x20      ;Usados para temporizar
tiempo2   equ   0x21
tiempo3   equ   0x22
veces   equ   0x23                                                                   
display   equ   0x24      ;Resguarda el numero mostrado en el display ¿ guarda lo ultimo que mostro o el prog. ejecutado?
general   equ   0x25
tout1   equ   0x26      ;Usadas para el timeout de carga y descarga de agua  ¿ esto es otro registro de teimpo?
tout2   equ   0x27
backw   equ   0x28      ;Back-up de W al interrumpir    ¿ esto quiere decir que guarda el contenido del reg. de trabajo
 bueno espero se entiendan las preguntas, son para ir entendiendo como hacerlas con NIPLE, por que me doy cuenta que hace muchas cosas que aparecen en el ASM cuando lo genera que no nos damos cuenta hasta que vemos ese ASM generado por NIPLE.
Fer un abrazo y nuevamente gracias.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
Re: programa para control de lavarropas automatico
« Respuesta #5 en: 21 de Agosto de 2012, 15:33:41 »
Muchas gracias Nubeo, siempre es grato saber que hay alguien dispuesto a dar una mano, pero mi intención es aprender con NIPLE, soy un poco grande de edad y ASM como otros lenguajes me cuestan, porque nunca estuve cerca ni de la electrónica ahora ya viejito y durito de mate, me dio por aprender y no lo llevo mal. Este proyecto no es una necesidad imperiosa sino una forma de entrenar para aprender este lenguaje mucho mas fácil para mi, y como consecuencia realizar algo útil, que pienso puede servirle a otros foristas para automatizar procesos.
Te reitero las gracias por tu amabilidad un abrazo Sergio Peralta.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re: programa para control de lavarropas automatico
« Respuesta #6 en: 22 de Agosto de 2012, 07:06:09 »
Hola Sergio, a ver si voy contestando a tus dudas, sino estoy muy oxidado de mi ASM. Empezemos por lo que has colocado en rojo en el Asm:

1º.-cprog   equ   0x02      ;contador de programa (parte baja)----¿ que es esto?:
El contador de programa es un registro que tienen los pics y es el que se encarga de controlar la secuencia de funcionamineto del pic. Es decir su primer valor es el 000000000, la siguiente la 1 , 2, etc. en cada una de ellas se ejecuta una instruccion, esto es asi por que el icro solo utiliza 1 y 0 y cada instruccion tambien tiene su taduccion a 1 y 0. Este es un registro que se va incrementando de uno en uno salvo cuando hya una instruccion de salto a llamada a subrutina, en ese caso salta a la direccion de la misma pero el valor antes del salto/llamada se guarda en en la pila para que al terminar la subrutina , el programa sepa donde se quedo y continue desde alli.

2º.-estado   equ   0x03      ;Registro de estados del micro             ¿ y esto habla de estado a que se refiere:
El registro de estado es otro registro de control del pic con un significado indicidual de los bits, como "zero" carry" "control de bancos rp0,rp1"(cuando los micros llevan paginacion de memoria. Se utilizan por ejemplo cuando se esta realizando una suma, resta, u otra operacion para saber su resultado. En ese caso hay que consultar los bits determinados.

3º.-ptoa   equ   0x05      ;Puertos de E/S                                          ¿ aqui configura los puerto verdad...?
Son las posiciones que ocupan los registros TRIESTADO de los puertos. NO son la configuracion de los mismos. Esto es asi porque al trabajar en ASM hay que indicar por programa en que posicion de la memoria donde se haya cada uno de los puertos.

4º.-ptoa   equ   0x05      ;Puertos de E/S                                          ¿ aqui configura los puerto verdad...?
Lo mismo que para el puento 3º. Lo mismo para los siguientes dudas planteadas en rojo.

En mi anterior post ya te puse como es la configuaracion de los puertos y como se empieza con el programa y como veo que tienes la misma version que yo directamnete te òndré el programa en vez de hacerlo en Word.
El micro ha utilizado es el 873 pero si quieres otro cualquiera dimelo, siempre y cuando NIple lo soporte, por que por ejemplo el 872 no lo soporta.
Ahora tengo que ghacer alguna cosilla y despues continuo con tu programa y si lo avanzas tu mejor, asi lo corrijo y seguimos avanzando.

Saludos
F.



Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re: programa para control de lavarropas automatico
« Respuesta #7 en: 22 de Agosto de 2012, 07:17:50 »
Te adjunto el ASM con las instrucciones codificadas hasta el momento.
Se encuentran en rojo.

Voy a ver un par de cosas que no entiendo muy bien por que estan reaalizadas como de dondesalen lo 5 segundos con la indicacion "-" en el display. las instucciones que no entiendo muy por que estan puestas las coloco a continuacion para ver si alguien me lo aclara.

bsf   RP0      ;configura los pines de E/S
   movlw   b'00000110'
   movwf   0x1F
....
....

movlw   d'10'      ;Coloca el '-' en el display durante 5 segundos
   call   TABLA
   movwf   ptoc
   movlw   d'10'
   movwf   tiempo3
   bsf   ptoc, 7      ;Hace destellar el punto del display
   call   DEL250
   bcf   ptoc, 7      ;Hace destellar el punto del display
   call   DEL250
   btfss   START      ;Entra en modo pausa al presionar cualquier pulsador durante el -
   goto   SETPAP      ;Acciona el mecanismo paso a paso
   btfss   SELECT
   goto   SETPAP      ;Acciona el mecanismo paso a paso
   decfsz   tiempo3, 1
   goto   $ -9
   goto   AUTOM      ;Saltea la sección donde coloca la 'P'

Bueno acabo de describir lo de los 5 segundos, resulta que el programa que pusiste en el foro es distinto al original creado por Pablin y modificado por otra persona ya que el ultimo codigo adjuntado es el que es distinto y le faltan instrucciones.

F.
Todos los días se aprende algo nuevo.

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
Re: programa para control de lavarropas automatico
« Respuesta #8 en: 22 de Agosto de 2012, 15:01:55 »
Hola Fer: ya compre el micro y la verdad no lo mire cuando lo envolvió el vendedor, oh sorpresa cuando lo saque ayer para verlo y me encontré con que tiene 40 patas.....,menos mal que es para programar y no hay que comprarle zapatos Je je je.
Me entra de suerte en el programador que tengo. adjunto un esquema de pines que me llamo la atención tiene doble alimentación.
Lo bueno es que el 16f887 es el que usa Jorge Cano para los ultimo vídeos que ha puesto en la pagina de NIPLE como ejemplos en valga la redundancia el ejemplo de temporizacion por TMRO allí usa este,ademas nos van a sobrar patas para ir agregando chiches al proyecto.
Me pongo a leer lo que me explicas y ver si comienzo con el proyecto, desde ya gracias Sergio.
« Última modificación: 22 de Agosto de 2012, 15:12:03 por sergioandres »

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: programa para control de lavarropas automatico
« Respuesta #9 en: 23 de Agosto de 2012, 07:04:30 »
Buenassssss, Que pena no poder seguir el desarrollo por no entender el Ansambler, lindo proyecto. Me llamó la atención, y les comento, que no se habla de una memorización de ultimo estado de funcionamiento, caso de corte energia, para su puesta en funcionamiento tras una interrupcion del modo.
- Santiago -

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re: programa para control de lavarropas automatico
« Respuesta #10 en: 23 de Agosto de 2012, 08:10:15 »
Sergio,

Hola Fer: ya compre el micro y la verdad no lo mire cuando lo envolvió el vendedor, oh sorpresa cuando lo saque ayer para verlo y me encontré con que tiene 40 patas.....,menos mal que es para programar y no hay que comprarle zapatos Je je je.
Me entra de suerte en el programador que tengo. adjunto un esquema de pines que me llamo la atención tiene doble alimentación.
Lo bueno es que el 16f887 es el que usa Jorge Cano para los ultimo vídeos que ha puesto en la pagina de NIPLE como ejemplos en valga la redundancia el ejemplo de temporizacion por TMRO allí usa este,ademas nos van a sobrar patas para ir agregando chiches al proyecto.
Me pongo a leer lo que me explicas y ver si comienzo con el proyecto, desde ya gracias Sergio.

- Pues utilizamos el PIC16887
- Ya encontré las dudas que tenia sobre el ASM, lo tengo un poco olvidado.

Lucegiar2005

Buenassssss, Que pena no poder seguir el desarrollo por no entender el Ansambler, lindo proyecto. Me llamó la atención, y les comento, que no se habla de una memorización de ultimo estado de funcionamiento, caso de corte energia, para su puesta en funcionamiento tras una interrupcion del modo.

Se puede empezar de 0 pero utilizando como base la secuencia de tiempos y secuencias de lavado.
¿te animas a colaborar?

F.
Todos los días se aprende algo nuevo.

Desconectado lennart

  • PIC12
  • **
  • Mensajes: 70
Re: programa para control de lavarropas automatico
« Respuesta #11 en: 23 de Agosto de 2012, 09:02:09 »
hola a todos ¿se  puede colaborar empezando desde cero como dice  fer taca?
tengo algunas ideas al respecto saludos

Desconectado sergioandres

  • PIC16
  • ***
  • Mensajes: 168
Re: programa para control de lavarropas automatico
« Respuesta #12 en: 23 de Agosto de 2012, 11:17:39 »
Holasss: Me parece buenísimo que hayan muchos interesados en el tema, siempre sostengo la idea que cuantas mas personas hay mirando algo hay mas puntos de vista e ideas que terminan enriqueciendo el proyecto.
Solo creo que para empezar de cero se tendría que organizar la cosa, me parece que deberíamos fijar las pautas del proyecto y como dice Fer usar lo que hay realizado, por ejemplo panel cuantos botones debería tener, fijamos 2 display de 7 segmentos u otro, usamos la cantidad de programas de lavado como esta en el original o agregamos algo mas que falte y así vamos formalisandolo, cuando este definido comenzar a realizarlo.
Aclaro que como metáfora, en este auto yo soy el perro que ladra corriendo detras je je je.
Un abrazo para todos Sergio

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re: programa para control de lavarropas automatico
« Respuesta #13 en: 23 de Agosto de 2012, 13:50:27 »
Adjunto un primer ejemplo de como podria ser la parte fisica.
He puesto 2 lcd de 7 segmentos de anodo comun y de acuerdo al esquema propuesto por Niple. No tiene decodificador.

A ver quien se anima con mas cosas...................

F.
Todos los días se aprende algo nuevo.

Desconectado lennart

  • PIC12
  • **
  • Mensajes: 70
Re: programa para control de lavarropas automatico
« Respuesta #14 en: 23 de Agosto de 2012, 16:51:36 »
bueno me alegra que que halla disposicion ahora adentrarnos  en el asunto, el projecto
en si es simple es una secuencia simple de eventos (activacion y desactivacion de pines)
en un tiempo dado,  la parte que se tendria  que  estar atentos  es  un eventual corte de energia
domestica y que se reinicie es programa ¿se imaginan el tanque lleno de agua con ropa ?¿como procederia el pic
ante dicho problema?