Autor Tema: Reloj despertador con pic y lcd  (Leído 87493 veces)

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

Desconectado gatobx

  • PIC10
  • *
  • Mensajes: 15
Re: Reloj despertador con pic y lcd
« Respuesta #15 en: 24 de Agosto de 2009, 20:57:05 »
Hola anfegori91,

Me ha gustado tu proyecto y esta muy interesante.

Trate de ejecutarlo con Play desde Proteus 7.5 SP3 y me marca 2 errores.

1.- Could not open COFF file ".. \Desktop\ds1307\reloj.c.COF". U1
2.- Real Time Simulation failed to start. U1

Posiblemente tambien tu reloj tenga una falla de 10 a 50ppm (partes por millon) algo asi como + o - 2 minutos mensuales de atraso o adelanto, debido al uso de un Crystal externo. Yo te recomiendo como un update a tu proyecto, en vez de usar el clock del PIC, o del time keeper DS1307 uses el DS3232 como un reemplazo, el DS3232 es mucho muy preciso y su precision es de solo + o - 2ppm (falla de + o - 2 ,minutos al AÑO solo como referencia los relojes Casio de pulsera se adelantan o atrasan 30 segundos mensuales) y el Crystal interno esta calibrado por laser desde fabrica por lo que es mucho muy preciso, ademas de autocalibrarse por temperatura.

Aqui puedes encontrar info del DS3232 y su datasheet: http://www.maxim-ic.com/ds3232/

Si en tu pais existe el Horario de Verano mejor conocido como DST. Estaria muy bien que se lo implementaras.

Si deseas un reloj aun mas preciso y que solo se atrase o adelante + o - 1 segundo al año tal ves quisieras agregarle un GPS para que se autoajuste a la hora automaticamente.

Checa este Link de un Reloj GPS en desarrollo http://www.todopic.com.ar/foros/index.php?topic=27033.0

¡FELICIDADES POR TU TRABAJO!
« Última modificación: 24 de Agosto de 2009, 21:37:29 por gatobx »

Desconectado luigi.utn

  • PIC10
  • *
  • Mensajes: 11
Re: Reloj despertador con pic y lcd
« Respuesta #16 en: 26 de Agosto de 2009, 12:46:40 »
Trate de ejecutarlo con Play desde Proteus 7.5 SP3 y me marca 2 errores.

1.- Could not open COFF file ".. \Desktop\ds1307\reloj.c.COF". U1
2.- Real Time Simulation failed to start. U1

bueno 1ero gatobx ese error te lo da ya que proteus quiere buscar el cof en una direccion que obviamente no existe ya que es de la maquina de anfegori91

Lo que debes hacer es editar las propiedades del PIC en proteus y elegir de la nueva ruta del archivo *.COF en la que se encuentre ahora, con eso se solucionaria.
Cualquier cosa responde aca intentare responder si esta a mi alcance.


ahora 2do anfegori91 te pasaste la verdad !!!!! yo justo estaba pensando hacer tambien un reloj despertador y estaba por pedir ayuda ya que no se me ocurrio bien como diseñar el tema de la alarma del despertador..

asi que bueno felicitarte por el proyecto, y bueno lo voy a revisar bien y ver si lo puedo realizar y aprender bien como funciona que es lo mas importante, porque asi despues puedo seguir progresando en este mundo del PIC



Saludos desde Cordoba, Argentina
« Última modificación: 26 de Agosto de 2009, 12:52:06 por luigi.utn »

Desconectado anfegori91

  • PIC12
  • **
  • Mensajes: 71
Re: Reloj despertador con pic y lcd
« Respuesta #17 en: 26 de Agosto de 2009, 19:46:03 »
Gracias por las felicitaciones¡¡

En cuanto a las sugerencias de gatobx, muy interesantes pero implicarían un gasto innecesario en $$$. Mis proyectos se caracterizan por buscar la máxima simplicidad y economía. Sería bueno implementar lo de GPS en algúna aplicación más práctica para esa tecnología (como un datalogger que guarde datos acerca de un viaje). Los relojes GPS no se atrasan ni adelantan nada. Y si se me adelanta dos minutos al mes, bien, me levanto 2 minutos más tarde  :D :D :D  Lo del DS1307 ya lo había explicado en el primer post, y el DS3232 ¡¡20 pines!!¡¡¡¡ y como vivo en Colombia, no tenemos horario de verano (menos mal).

Ya pasé el código a un PIC16F872 de menos pines y funciona perfecto, además de solucionar un problema de intermitencia de la alarma. Si necesitan el código me dicen y lo posteo AQUÍ.

Ahora voy a programar un reloj más simple y algo llamativo. Se trata de un reloj de un solo display de 7 segmentos que muestre la hora junto a 4 leds que indicarían qué parte de la hora se está mostrando en el display (decenas de hora, unidades de hora, decenas de minuto, minuto) . Es un proyecto poco popular en Internet pero es interesante y simple.

Desconectado matiaz_108

  • PIC10
  • *
  • Mensajes: 2
Re: Reloj despertador con pic y lcd
« Respuesta #18 en: 27 de Agosto de 2009, 00:05:57 »
hola capo sabaes que estoy haciendo un relog tambien y no puedo mandar los datos al lcd mi relog es con pic16f88 y me trabe con la parte de BCD, las interrupciones las tengo echas pero me trabe en la parte que mandas los datos al lcd como haces?????
« Última modificación: 16 de Septiembre de 2009, 11:11:41 por matiaz_108 »

Desconectado anfegori91

  • PIC12
  • **
  • Mensajes: 71
Re: Reloj despertador con pic y lcd
« Respuesta #19 en: 29 de Agosto de 2009, 20:45:40 »
Dime cuál es tu problema en específico. El reloj no está programado en asm sino en C de HI-TECH, y el archivo de proteus está bien, si hay algún problema o error al abrirlo, es por que no descomprimiste bien el paquete en una carpeta aparte, o algún problema en el Proteus, pero necesito más detalles.

Desconectado matiaz_108

  • PIC10
  • *
  • Mensajes: 2
Re: Reloj despertador con pic y lcd
« Respuesta #20 en: 10 de Septiembre de 2009, 00:26:02 »
el problema es que lo empece a hacer pero me trabe en una parte queria saber si no me mandas en asm como haces para visualizar el reloj en el lcd x yo lo estoy haciendo con interrupciones y ya hice que se interrumpa cada 1s, eso lo incremento 60 veces y ya tengo los segundos, tengo los minutos y me falta la hora xq ahi me trabe pero tampoco lo puedo visulizar en el lcd de (20x4) si x ahi me podes mandar eso te lo agradecería

Desconectado anfegori91

  • PIC12
  • **
  • Mensajes: 71
Re: Reloj despertador con pic y lcd
« Respuesta #21 en: 12 de Septiembre de 2009, 00:47:55 »
el algoritmo para el funcionamiento del reloj es muy sencillo, sólo se debe comprobar cada segundo: si ya pasaron 60 segundos, segundos=0, minutos=minutos+1; si ya pasaron 60 minutos, minutos=0, horas=horas+1; si las horas llegaron a 24, horas=0. Lo que sale en la LCD se actualiza cada segundo, pues se ejecuta dentro de la interrupción. Cuidado, pues no hay que enviar el comando de mostrar los valores en la LCD cada vez que se produzca una interrupción, sino cada vez que el código dentro de la interrupción indique que ha pasado 1 segundo.

Aquí, por ejemplo, utilizo el timer2, que me permite tener una interrupción cada 40ms con cristal de 4MHz, y dentro de la interrupción, compruebo que han pasado 25 interrupciones (40ms * 25  = 1000ms) para ahora sí sumar 1 segundo, comprobar si hay que sumar un minuto o una hora y mostrar los valores en la LCD.

Desconectado anfegori91

  • PIC12
  • **
  • Mensajes: 71
Re: Reloj despertador con pic y lcd
« Respuesta #22 en: 14 de Septiembre de 2009, 23:38:31 »
Hola¡ ya he migrado el código a otro pic más pequeño, el 16f872, que es el que tenía a mano.
adjunto el código y la simulación.
Posiblemente lo migre al 16f628a.. Más pequeño aún¡¡
cualquier pregunta me dicen y la respondo aquí.

Desconectado cesar_rolandi

  • PIC10
  • *
  • Mensajes: 1
Re: Reloj despertador con pic y lcd
« Respuesta #23 en: 12 de Noviembre de 2009, 18:50:11 »
Hola a todos..
en vacaciones me puse a diseñar un reloj para colegios que timbre automáticamente a las horas de cambio de clase. Se suponía que le iba a adaptar un DS1307 (reloj-calendario i2c que no pierde la hora ante fallas de energía) pero nunca había programado un pic para comunicarse con otro dispositivo vía i2c. Así que dejé a un lado ese proyecto y decidí programar el pic con las rutinas necesarias para que funcionase el reloj sin necesidad del ds1307. Concluí en 4 noches de trasnocho con el mplab y el proteus pero al fin logré diseñar, simular y construir el producto final: El reloj despertador , además de mucho código útil para utilizar en el otro proyecto, ya que ahora sí sé manejar las rutinas i2c.

Me gusta aplicar el mínimo de hardware en mis proyectos (aunque usé un PIC16F877A, pero lo cambiaré por uno más pequeño), así que todo se controla con sólo 2 switches y la información (día del mes, mes, año, día de la semana, hora...) se visualiza en un lcd de 16x2 carácteres, además de que la alarma puede ser de la elección del diseñador, como mi caso (utilizo provisionalmente un buzzer que produce un ruido infernal), o se puede adaptar para que encienda un radio (queda como radio reloj), una lámpara, un televisor, en fin, todo lo que se pueda ocurrir (
)

Así que sin más, adjunto los archivos del proyecto y el archivo de Proteus ISIS para el que lo quiera ver, y si alguien está interesado en el código (está escrito en C de HI-TECH), que lo diga y con mucho gusto lo comento. Ahh... y el manual y modo de operación también me lo pueden preguntar.  :D Buenas noches a todos ¡¡¡

Hola, felicitaciones por tu proyecto!

Me puedes enviar el esquema de conexion y el codigo C por favor?
Mi correo es crolandiz@upao.edu.pe

Saludos desde Peru!

Desconectado anfegori91

  • PIC12
  • **
  • Mensajes: 71
Re: Reloj despertador con pic y lcd
« Respuesta #24 en: 17 de Noviembre de 2009, 00:28:19 »
Están adjuntos en la primera entrada del post!!

Desconectado ktgoth

  • PIC10
  • *
  • Mensajes: 1
Re: Reloj despertador con pic y lcd
« Respuesta #25 en: 19 de Marzo de 2010, 11:21:20 »
Hola angefori...
Primero q todo felicitaciones por tu proyecto, está excelente.

Ahora mi pregunta es la siguiente....
Si quiero migrar el código que tienes en C Hi-tech a CCS, qué tanto debo modificar??

GRacias

Desconectado anfegori91

  • PIC12
  • **
  • Mensajes: 71
Re: Reloj despertador con pic y lcd
« Respuesta #26 en: 22 de Marzo de 2010, 01:42:29 »
Pues nunca he programado en CCS C, pero tengo entendido que la librería lcd es distinta en CCS, así que puedes empezar por eso.
También habría que cambiar las librerías y escribir los bits de configuración, modificar la parte de la lectura de los interruptores y la salida de alarma, lo cual no es gran cosa. También habría que cambiar la parte de las interrupciones y la configuración del timer... No creo que sea muy complicado. Tal vez hubiera sido más fácil si el usuario que escribió que iba a migrar el código lo hubiera hecho.

Desconectado anfegori91

  • PIC12
  • **
  • Mensajes: 71
Re: Reloj despertador con pic y lcd
« Respuesta #27 en: 23 de Marzo de 2010, 20:51:21 »
Modifiqué y comenté el código, lo adjunto aquí.

Cualquier duda la atiendo!! :mrgreen:

Desconectado angelix.84

  • PIC10
  • *
  • Mensajes: 2
Re: Reloj despertador con pic y lcd
« Respuesta #28 en: 19 de Abril de 2010, 16:52:31 »
Hola, por favor me puedes decir con que version del hi-tech, y como lo instalo, es que he intentado compilar un programa que he realizado, y tambien el tuyo (crei que era mi programa el problema) pero vi que la activacion lite no la realiza y por eso no me compila, te agradezco la ayuda es q es para un proyecto de la U,

gracias de nuevo

Bye

Desconectado someillan

  • PIC10
  • *
  • Mensajes: 2
Re: Reloj despertador con pic y lcd
« Respuesta #29 en: 14 de Mayo de 2010, 00:10:25 »
el algoritmo para el funcionamiento del reloj es muy sencillo, sólo se debe comprobar cada segundo: si ya pasaron 60 segundos, segundos=0, minutos=minutos+1; si ya pasaron 60 minutos, minutos=0, horas=horas+1; si las horas llegaron a 24, horas=0. Lo que sale en la LCD se actualiza cada segundo, pues se ejecuta dentro de la interrupción. Cuidado, pues no hay que enviar el comando de mostrar los valores en la LCD cada vez que se produzca una interrupción, sino cada vez que el código dentro de la interrupción indique que ha pasado 1 segundo.

Aquí, por ejemplo, utilizo el timer2, que me permite tener una interrupción cada 40ms con cristal de 4MHz, y dentro de la interrupción, compruebo que han pasado 25 interrupciones (40ms * 25  = 1000ms) para ahora sí sumar 1 segundo, comprobar si hay que sumar un minuto o una hora y mostrar los valores en la LCD.

Hola oye felicitaciones esta genial el reloj ,fijate que arme tu reloj y cuando lo conecto despues de ajustar min,horas,dia de la semana,año ,mes y dia cuando empiezan a correr los seg vuelve a salir la leyenda ajuste inicial y no corren los segundos a que se debera