Autor Tema: Tiene un maximo el retardo que puede manejar un PIC16F84A?  (Leído 10260 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Gjalken

  • PIC10
  • *
  • Mensajes: 7
Tiene un maximo el retardo que puede manejar un PIC16F84A?
« en: 13 de Enero de 2006, 06:52:00 »
Mi problema es que soy novato en esto, y necesito hacer un programita pal 16F84A que me permita mover un motor paso a paso 180° hacia la derecha, dos horas despues 180° a la izquierda, despues de dos horas moverlo hacia la derecha (para mover la bandeja de una incubadora).....etc etc, ya he visto que el motor lo tengo que manejar mediante un driver, el problema es que no he encontrado en el comercio, asi que he visto en las hojas de datos de los driver algunas configuraciones que me sirven y esas si las puedo hacer con componentes que si he encontrado en el comercio, la cosa es que no se me ocurre como hacer lo del retardo de dos horas, si me pudieran orientar con mi problema se los agradeceria mucho.

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #1 en: 13 de Enero de 2006, 08:08:00 »
Hombre retardo de dos horas....es mucho retardo para cargarselo al timer del pic, y mas al del F84A que el de 8 bits que eso en la formula:

Temporizacion = Tcm · Prescaler · (256-Carga TMR0)

da una temporizacion maxima de: 65,536 ms
Teniendo en cuenta un cristal de 4MHz: Tcm= 1u
Prescaler: 256
Carga TMR0: 0

Mucha tela temporizar dos horas.....ahora bien si dicha temporizacion no es exacta! es decir permite margenes de tolerancias, puedes intentarlo mediante el timer, en cambio si dicha temporizacion deben ser lo mas exactas posibles te recomiendo(y para tu caso de temporizaciones altas mas aconsejable todavia) un integrado que te produzca la señal de 2 horas requerida, existe en el mercado unos cuantos, el mas conocido el integrado 555, dicho integrado lo pones en la patita RB0 y programas el pic para que cada vez que RB0 detecte un flanco de subida/bajada producido por el 555(cada dos horas) produzca una interrupcion, en dicha interrupcion debera realizarse el control de los motores.

Te he puesto la patita RB0 ya que es la interrupcion externa!

Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado Gjalken

  • PIC10
  • *
  • Mensajes: 7
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #2 en: 13 de Enero de 2006, 08:09:00 »
otra consultita, los pines que no utilize del PIC debo conectarlos a algo (5V) o los puedo dejar sin coneccion????

Utilizando el MicroCode Studio Plus se podria meter un retardo dentro de un ciclo for ??? algo asi como

Detenido:
    FOR x=1 to "algun valor"
    "codigo de retardo max"
    RETURN

o utilizar el SLEEP que por lo visto soporta tiempo de 65535 segundos, pero por lo visto este utiliza el WATCHDOG TIMER,

como puedo hacer para que el pic me reconozca un flanco de subida?

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #3 en: 13 de Enero de 2006, 08:20:00 »
Hola Gjalken, acá te dejo una rutina de retardo de aproximadamente 2 horas, digo aproximada porque le faltan casi 4 segundos para las 2, pero como para conseguir mayor precisión lleva un buen tiempo y en tu caso 4 segundos no influye, acá esta:

CONTADOR1      EQU      .13
CONTADOR2      EQU      .14
CONTADOR3      EQU      .15
CONTADOR4      EQU      .16

DEMORA
   movlw   .48
   movwf   CONTADOR1
RET1
   movlw   .255
   movwf   CONTADOR2
RET2
   movlw   .255
   movwf   CONTADOR3
RET3
   movlw   .255
   movwf   CONTADOR4
RET4
   clrwdt
   decfsz   CONTADOR4,F
   goto   RET4
   decfsz   CONTADOR3,F
   goto   RET3
   decfsz   CONTADOR2,F
   goto   RET2
   decfsz   CONTADOR1,F
   goto   RET1
   return

Esta rutina es puramente por software, las hay también por hardware y combinadas, pero se te complicaría un poca mas la cosa.

Los pines que queden libres del micro simplemente no los conecte y listo, ya que si los conectas corres el riesgo de quemar el PIC.

Espero te ayude, suerte.

Atte. CARLOS


La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado Gjalken

  • PIC10
  • *
  • Mensajes: 7
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #4 en: 13 de Enero de 2006, 08:33:00 »
Vamos a probar gracias por sus respuestas, les cuento como me fue Sonrisa

Chaly29, ese codigo que me enviaste esta en C????es que estaba tratando de hacerlo con l MicroCode Studio Plus, se puede? o tendria que cambiar el codigo?

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #5 en: 13 de Enero de 2006, 08:41:00 »
Hombre yo la verdad que para retardos grandes como 2 horas no lo realizaria por software, ¿por que no? pues sencillo, los retardos por software es hacer que nuestro pic trabaje continuamente perdiendo el tiempo, eso significa un consumo mayor, el pic siempre esta trabajando 2 horas perdiendo el tiempo por lo tanto un desgaste mayor de microcontrolador(esto puede ser despreciable pero vamos a la larga se puede quedar colgado el pic) y etc etc etc, para retardos como los tuyos aconsejo que uses un chip externo que le "diga" al pic que debe actuar sobre los motores, esto implica un consumo menor, el microcontrolador casi siempre esta en reposo........

Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado Gjalken

  • PIC10
  • *
  • Mensajes: 7
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #6 en: 14 de Enero de 2006, 22:56:00 »
vszener, gracias por la sugerencia, mas no he podido lograr el retardo de dos horas con el 555, lo trate de configurar como astable, total, lo que va a reconocer el PIC va a ser un canto de subida cada dos horas, pero no he logrado hacerlo Enfurruñado se tendra que hacer con varios NE555??? estoy probando con un 555 y dos 4017 (contdores de decada) el 555 a una frec de 0.01387 Hz y los dos contadores se encargan de dividir la frec para lograr los 7200 seg (dos horas) lo pruebo mañan y les cuento si me sale.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #7 en: 15 de Enero de 2006, 01:46:00 »
Me has dejado helado Helado con el argumento del desgaste, Vszener, no lo había oído nunca.
Cuando pienso ahora el desgaste que deben tener los chips de mi PC, que no se apaga nunca, o los integrados del reloj que está siempre encendido ... loco

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #8 en: 15 de Enero de 2006, 06:02:00 »
Jeje...haber como dije en mi comentario:
Codigo:

...desgaste mayor de microcontrolador(esto puede ser despreciable pero vamos a la larga se puede quedar colgado el pic)....


puse que puede ser despreciable, eso si, seguro que en tu PC ni en tu reloj que siempre estan encendidos el microcontrolador no esta haciendo una rutina de espera de 2 horas!sino que tiene un periferico conectado a él que le indique el retardo(en caso que sean grandes), eso significa que tus microcontroladores que estan en el PC  o en el reloj "casi siempre" estan a la espera del los perifericos que le rodean, el microcontrolador o microprocesador simplemente actua cuando le viene la orden de algunos de sus perifericos. En resumen, el micro "casi siempre" esta a la espera.

 Lo que a la larga se quede colgado es facil, sinonimo de que se quede un microcontrolador colgado muchas veces se traduce a que se queme! hay llevas el desgaste....jeje

Pero vamos que me reitero en lo de antes, yo por lo menos no he visto un pic realizar retardos tan grandes a efectos practicos industriales ni comerciales, y si deben ser retardos precisos mucho menos!teniendo en cuenta que el desbordamiento de los timer"s no son exactos y suelen tener margenes de tolerancia bastante grandes!

Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado miltonmc

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 305
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #9 en: 15 de Enero de 2006, 11:39:00 »
Hola a todos.
Bueno si los micros tienen desgaste con el estar perdiendo el tiempo creo que pronto tendré muchos líos. Llorica
Ya que tengo una línea de Cargadores de baterías de ciclo profundo de alta potencia.
Y esos si pierden el tiempo como 12 horas más o menos mientras usan los A/D y los PWM.
Uso el PIC 16f877a y están funcionando desde hace  2 años, y son como muchos y nunca e tenido problemas con ninguno.
Espero que el desgaste no ocurra muy rápido ya que serán muchas las quejas. Muchas risas
De todos modos el retardo de 2 horas no es algo muy complejo ni creo que afecte el PIC ya que si fuera así muchos equipos dejaran de funcional.
Creo que en el almacén hay un programa que sirve para general retardos y funciona muy bien. Refresca el perro guardián y no deja que el micro se cuelgue.
Si no lo encuentra te lo envió por privado.

Desconectado miltonmc

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 305

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #11 en: 15 de Enero de 2006, 11:57:00 »
Yo creo que lo que se refiere vszener, es a realizar la rutina de 2 horas completamente por software, no a que el pic trabaje sin cesar.
Otra opcion seria emplear el temporizador con un divisor exacto de esa temporizacion, si utilizas un cristal de 4Mhz puedes temporizar 50 o 60 milisegundos, y gestionar el desbordamento por interrupciones y mientras temporiza que caiga en un bule infinito: nada goto nada. Otra opcion es utilizar un cristal, de 32k por ejemplo creo que hay 1, de menor frecuencia que te permite temporizar un mayor tiempo.
Y contabilizar el numero de veces que reboza, para asi conseguir mayores temporizaciones.
Aunque estas opciones requieren que el pic este constantemente trabajando, tambien puedes hacer hibridos usando el Ne555 y si no consigues temporizar 2 horas del tiron con tiempos menores divisores exactos de 2 horas conectado a RB0 y contabilizar el numero de veces que debe cambiar hasta llegar a las 3 horas
Saludos desde Córdoba, españa

Desconectado miltonmc

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 305
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #12 en: 15 de Enero de 2006, 12:01:00 »

Desconectado miltonmc

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 305
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #13 en: 15 de Enero de 2006, 12:17:00 »
Hola a todos.
En la mayoría de mis diseños el micro nunca se duerme ya que esta siempre trabajando en una u otra función.
Un retardo por software de 2 horas no es mucha cosa, ya que tengo uno  que cada 12 horas cambia un dato en la eeprom. Y dura 12 horas mas y cambia de nuevo así cuando lee la eeprom sabe cuantas veces a cambiado.
Gjalken si quiere te hago una subrutina de 2horas para que hagas tu incubadora


Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: Tiene un maximo el retardo que puede manejar un PIC16F84A?
« Respuesta #14 en: 15 de Enero de 2006, 12:40:00 »
Hola gente, el desgaste de 2 horas no es nada creo que los micros vienen diseñado para trabajar 100000 horas si no me equivoco, cuanto seria? un poco mas de 11 años sin parar. Si acá a 11 años tenemos problemas con un micro creo que nadie lo notará, aparte, de algo hay que vivir ¿NO?. Muchas risas

Gjalken la rutina que te expuse esta en asembler.

Con respecto al programa Picdel_sp anda muy bien pero no llega a demoras de 2 horas, yo lo e probado hasta el limite que dá, siendo de 2147483 Ms= 35m47s483ms en 4MHz y demora un monton, mas de una hora

Suerte

Atte.CARLOS


La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.


 

anything