Autor Tema: invernadero  (Leído 3135 veces)

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

Desconectado erpindi

  • PIC10
  • *
  • Mensajes: 1
invernadero
« en: 14 de Julio de 2008, 08:36:11 »
buenas amigos, soy nuevo en esto y estoy tratando de hacer algo facilote con el 16f84
se trata de un invernadero con ventilacion e iluminacion automaticas (solo eso, por eso digo que se ve simple)
mi problema viene cuando quiero temporizar grandes tiempos (6h-12h) y no tengo idea de como hacerlo, ya que lo que he hecho hasta ahora, los tiempos eran segundos.
si alguien tuviera un programita simple con temporizaciones grandes le agradeceria mucho una ayudita (si es el programa en si mejor jejje)
gracias a todos :)

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: invernadero
« Respuesta #1 en: 14 de Julio de 2008, 10:34:12 »
Saludos erpindi, bienvenido al foro!
No especificas en qué lenguaje estás trabajando.
Pero lo más lógico para temporizaciones es usar el propio temporizador del micro, el PIC16F84 trae el TMR0.
Con un oscilador externo de 4MHz y si lo configuras con pre-escala de 1:256 podrías contar 65,5ms.
Para contar un tiempo largo, podrías habilitar la interrupción por tmr0, y en la rutina de interrupción, incrementar una variable de 32bits, o int32.
Eso te permitiría contar más de un año!  :shock:  :D
Lo que tienes que hacer es evaluar la variable que estás incrementando.
Si por ejemplo, quieres contar 12horas, la variable tendría que contar hasta 659.180.
Entonces sería así:

- Configuras tmr0 y habilitas interrupción.
- En la rutina de interrupción: evaluas la variable para saber si llegó a 659.180, luego la incrementas.
                                                si llega a 659.180, colocas a 1 una bandera.
                                                vuelves a cargar el tmr0 con 0 y habilitas la interrupción (si es necesario).
- En el lazo infinito principal del programa: evaluas la bandera, si está en 0, no hace nada, si está en 1 va a la rutina de lo que hay que hacer...

Bueno esto es a groso modo, porque no sé con qué lenguaje estás programando, así que no puedo darte un ejemplo.
Espero que esto te sirva para guiarte un poco.
Revisa el datasheet para que sepas cómo configurar correctamente el tmr0.
Un cordial saludo, nos leemos!  :mrgreen:

 
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: invernadero
« Respuesta #2 en: 15 de Julio de 2008, 22:48:43 »
Yo creo en este caso que seria mejor que uses un reloj en tiempo real (RTC) como el DS1307, y dediques el micro a hacer control en base al cumplimiento de horarios.... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: invernadero
« Respuesta #3 en: 15 de Julio de 2008, 23:21:46 »
Excelente!  :-/
Erpindi, olvida mi comentario...  :? :D
Saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web