Autor Tema: Como hacer un gestionador de motores  (Leído 3370 veces)

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

Desconectado 16f

  • PIC12
  • **
  • Mensajes: 73
Como hacer un gestionador de motores
« en: 12 de Mayo de 2008, 17:35:36 »
hola amigos , tengo que realizar un Gestionador de motores ...... es muy parecido a un rele de motres secuenciado.

como funciona , si tengo  1 2 3 o 4 motores, se activara o activaran los motores con menos tiempo de funcionamiento.

para esto requerimos un rtc (ds1307 o ds1302) para que nos de el tiempo real, con el 16f628a.

ejemplo: m1  3hrs
              m2  20min
              m3  1hrs
              m4   50min


como existiran  4 sensores  y la proxima vez que se active uno de ellos hara funcionar el que tenga menos tiempo , en este caso sera M2.

la cosa es como podemos guardar los tiempos de cada motor. y luego determinar .........cual actua?.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Como hacer un gestionador de motores
« Respuesta #1 en: 12 de Mayo de 2008, 18:09:36 »
16F este tema ya lo has planteado muchas veces porque no sigues un solo hilo donde ya te han respondido.


Para que tu sistema sea muy preciso te recomiendo que uses ya sea la memoria interna de un PIC o una externa apoyada de un RTC, para que verifiques cuanto tiempo duro cada motor encendido y asi enciendas la proxima vez el que deseas.

El programa, pues si resultara algo complejo, como estoy en el trabajo dejame darte una explicacion de lo que yo haria. Cada motor es un salida del PIC por lo que al estar en bajo estos se encuentran apagados. Cuando encienda cada salida yo haria que el pic loggeara la hora en la que inicia y la hora en la que termina esto a traves del RTC y asi para cada uno. Cuando llegue la proxima vez de encender los motores, mediante una rutina evaluaria cada tiempo para cada pin y el menor seria el que se activara, repitiendo el logger del RTC.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado 16f

  • PIC12
  • **
  • Mensajes: 73
Re: Como hacer un gestionador de motores
« Respuesta #2 en: 13 de Mayo de 2008, 01:24:40 »
Navaismo , te cuento he dividido los temas , segun la forma y requerimientos del programa, no es el afan de llenar y llenar con temas, y lo hice por que en muchos foros piden hacer otro hilo cuando el tema cambia de rumbo.

bueno  te doy las gracias por tu tiempo,  yo he ocupado el 1307 y el 1302  para un reloj despertador con el 16f628a

ahora a  que le llamas logger   

claro mas menos esta la idea pero la parte codigo es lo que falta. me imagino un pedaso de memoria para cada motor donde podre guardar el tiempo completo para cada motor , o por ejemplo solo minutos ( como ejemplo)

 

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Como hacer un gestionador de motores
« Respuesta #3 en: 13 de Mayo de 2008, 13:49:35 »
Le llamo logger, a un dato que se almacena dando su hora de inicio y su hora de termino, con eso puedes sacar la relacion.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado 16f

  • PIC12
  • **
  • Mensajes: 73
Re: Como hacer un gestionador de motores
« Respuesta #4 en: 13 de Mayo de 2008, 20:26:19 »
mira con este programa he trabajado,  la cosa es que modifico

   
Código: [Seleccionar]
DEVICE = 16F628A
        XTAL = 4
       
LCD_DTPIN = PORTB.4
LCD_RSPIN = PORTB.3
LCD_ENPIN = PORTB.0
LCD_INTERFACE = 4 ' 4-bit Interface
LCD_LINES = 2 ' 2-Line LCD
LCD_TYPE = 0 ' Alphanumeric LCD type
CMCON=7
DIM RTCCMD AS BYTE

DIM TEMP AS BYTE
DIM TEMP1 AS BYTE
DIM TIMEDATA[6] AS BYTE
DIM OLDSECONDS AS BYTE
DIM SECONDS AS timedata#0
DIM MINUTES AS timedata#1
DIM HOURS AS timedata#2
DIM DATE AS timedata#3
DIM MONTH AS timedata#4
DIM YEAR AS timedata#5

'Define registers
SYMBOL SECREG = %00000
SYMBOL MINREG = %00001
SYMBOL HRSREG = %00010
SYMBOL DATEREG = %00011
SYMBOL MONREG = %00100
SYMBOL YRREG = %00110
SYMBOL CTRLREG = %00111
SYMBOL BRSTREG = %11111
       
        SYMBOL CLK = PORTA.0
SYMBOL DTA = PORTA.1
SYMBOL RST = PORTB.6

' Time setup data held in eeprom memory
PRST EDATA $00,$00,$12,$20,$03,$02

ALL_DIGITAL = True
CLS
       
' Clear Write Protect bit in control register of DS1302
TEMP = $10
RTCCMD = CTRLREG
GOSUB DS1302_WRITE

' Pre-set the time registers using a data table stored in eeprom memory
FOR TEMP1 = 0 TO 5
TEMP = EREAD PRST + TEMP1
RTCCMD = TEMP1
GOSUB DS1302_WRITE
NEXT

TEMP = $80
RTCCMD = CTRLREG
GOSUB DS1302_READ

'Only Displays on the LCD if the seconds have changed
WHILE 1 = 1
GOSUB DS1302_READ
IF OLDSECONDS <> SECONDS THEN
PRINT AT 1,1, "TIME ", HEX2 HOURS,":",HEX2 MINUTES,":",HEX2 SECONDS
PRINT AT 2,1, "DATE ", HEX2 DATE,"/",HEX2 MONTH,"/",HEX2 YEAR
ENDIF
WEND

'-----------------------------------------------------------------------------------
' Write to DS1302 RTC
DS1302_WRITE:
HIGH RST
SHOUT DTA, CLK, LSBFIRST, [%0\1,RTCCMD\5,%10\2,TEMP\8]
LOW RST
RETURN
'-----------------------------------------------------------------------------------
' Read from the DS1302
DS1302_READ:
HIGH RST
SHOUT DTA, CLK, LSBFIRST, [%111111\6,%10\2]
OLDSECONDS = SECONDS
SHIN DTA, CLK, LSBPRE, [SECONDS,MINUTES,HOURS,DATE,MONTH,YEAR,YEAR]
LOW RST
RETURN

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Como hacer un gestionador de motores
« Respuesta #5 en: 14 de Mayo de 2008, 13:55:46 »
Esa rutina solo te sirve para configurar y ver la ora del RTC, necesitas agregar la parte del control de motores y las condiciones para que cada que los pines se activen leas el rtc y lo guardes en una variable y cuando se apague vuelva a leer el rtc lo guarde y compare.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado 16f

  • PIC12
  • **
  • Mensajes: 73
Re: Como hacer un gestionador de motores
« Respuesta #6 en: 14 de Mayo de 2008, 20:19:16 »
eso me falta, comandar el motor no es problema , y dar las condiciones , el asunto donde estoy colgado es armar la grabacion del tiempo de cada motor.