Autor Tema: Reloj Digital Despertador  (Leído 4387 veces)

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

Desconectado Ferblitz90

  • PIC10
  • *
  • Mensajes: 3
Reloj Digital Despertador
« en: 16 de Junio de 2010, 04:40:54 »
Hola mmm no se mucho de este foro pero espero puedan ayudarme eh estado leyendo alguno de los temas pero algunas cosas no las entiendo, talvez porque están programadas en C cosa que yo alguna vez hice pero ahora ya no lo recuerdo aparte de que solo programaba para la computadora no para los pics, últimamente eh estado programando en MpLab y he hecho varios proyectos muy interesantes el ultimo que si nos costo trabajo pero salio fue una matraca de leds la cual están conectados 56 leds en una PCB y esta gira mostrando en el giro una figura, letras, imagen, etc. comento esto por si alguien mas le interesa un proyecto así.

Ahora ya que estoy de ocioso me puse a diseñar un reloj despertador tengo la parte del reloj hecha esta sincronizada y tengo un retraso muy leve en cada segundo el problema es que lo estoy haciendo con subrutinas de tiempo cosa que creo es algo impractico dado que necesito hacer otras varias funciones mientras se cuenta el tiempo, entonces pensé en usar el Timer0 y una interrupción para cambiar el tiempo, la situación es la siguiente:

-Con el Timer0 el tiempo se me hace menos preciso que con las subrutinas (cosa que provoca que se atrase mi reloj o adelante y tenga un error considerable)

-Ahora si lo dejara como esta con subrutinas de tiempo como podria hacerle para poder poner mmm un teclado matricial para cambiar la hora y la alarma o si no unos  2 a 4 push botoms y que al mismo tiempo mi subrutina de tiempo no se me descompense y se me atrase mientras ajusto la alarma, ya que en la hora es facil se para el conteo y se inicia desde la hora que se indique.

-Para aplicar el despertador pensaba talvez poner una bocina al pic y que este me de una frecuencia de sonido para que de esta manera suene a un tono en especial, el tono es indiferente, pero esto también generara retraso de tiempo en mi programa.

-Uso un LCD de 16X2 para mostrar la hora, este al ser las 12 hace los cambios de AM a PM o viceversa, este tiempo de muestra en el LCD ya esta contemplado en mi tiempo de conteo de segundo.

-Por cierto uso un PIC16F877A algo rustico pero muy útil y me he adaptado muy bien a el de igual manera si recomiendan otro pic para este proyecto lo tomare en cuenta y lo buscare y aprenderé a usar.

Creo que son todos los puntos que tengo hasta ahora en mi programa y dudas, talvez se me fue algo pero con esto mientras quisiera saber algunas recomendaciones de como poder mejorar esto sin tener retrasos del tiempo muy notorios, o algunas experiencias al crear este tipo de relojes.

Gracias de antemano por su tiempo.
« Última modificación: 16 de Junio de 2010, 04:48:00 por Ferblitz90 »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Reloj Digital Despertador
« Respuesta #1 en: 16 de Junio de 2010, 11:37:15 »
Hola, para tener un timer preciso puedes usar el timer2 con su registro de restablecimiento PR2. Así no te toca cargar el timer2 cada que se interrumpe ya que se hace automáticamente.

El pic16f887 es el reemplazo justo y económico al 887a.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Reloj Digital Despertador
« Respuesta #2 en: 16 de Junio de 2010, 12:28:46 »
.


En esta application note aparece una idea muy interesante para llevar el tiempo sin mucho retraso (algo de 1,7 segundos por día, mas o menos), que consiste en colocar un cristal entre dos pines dedicados del Timer1, lo que permite generar una interrupción cad 1 segundo (con lo que tampoco hay que andar contando cuántas interrupciones hay hasta llegar a 1 segundo). Espero que te sirva.

¡Saludos!


When you see a good move, look for a better one (Emanuel Lasker)

Desconectado Ferblitz90

  • PIC10
  • *
  • Mensajes: 3
Re: Reloj Digital Despertador
« Respuesta #3 en: 18 de Junio de 2010, 04:13:31 »
Hola gracias sii son buenas ideas la verdad intentare la del timer2 aprenderé a usarlo y la otra también la tendré en cuenta si tienen algún ejemplo mas concreto y me lo pudieran pasar se los agradecería mucho.
De antemano gracias.


 

anything