Reloj digital Arduino con módulo RTC

Reloj digital Arduino con módulo RTC

En esta publicación vamos a construir un reloj digital usando el módulo RTC o Real Time Clock. Entenderemos qué es el módulo 'RTC', cómo interactuar con Arduino y qué hace.

Por:



El módulo RTC es un circuito que realiza un seguimiento de la hora actual con precisión. Realiza dos funciones, se comunica con microcontroladores y microprocesadores para dar la hora actual y actúa como circuito de respaldo para mantener el tiempo en caso de falla de energía, ya que tiene un sistema de respaldo de batería incorporado.



Podemos encontrar RTC en cualquier dispositivo electrónico donde el tiempo sea una función importante del dispositivo.

Por ejemplo, nuestra computadora o computadora portátil mantiene su tiempo incluso después de que se desconecta la energía o se quita la batería. En la placa base de cualquier computadora podemos encontrar una batería CMOS, que alimenta el circuito RTC.



Tipo de circuito similar que vamos a utilizar en este proyecto.

El módulo RTC es un dispositivo económico que se puede encontrar en cualquier sitio de comercio electrónico y en sus tiendas de proyectos electrónicos locales.

Ilustración del módulo RTC típico DS1307:



La mayoría de los módulos RTC vienen con batería (CR2032) en el momento de la compra. Hay diferentes tamaños y modelos, lo que se ilustra arriba puede no ser el mismo para usted. Pero asegúrese de que el número de modelo sea DS1307. El código escrito en esta publicación solo es compatible con DS1307.

Ahora sabe algo sobre los RTC. Pasemos ahora al diseño del reloj digital. Antes de continuar con este proyecto, debe descargar la biblioteca de los siguientes enlaces e instalarla en su IDE:

• DS1307RTC.h

Enlace: github.com/PaulStoffregen/DS1307RTC

• TimeLib.h

Enlace: github.com/PaulStoffregen/Time

Otras dos bibliotecas habrían sido preinstaladas en Arduino IDE, si tiene la última versión.

• LiquidCrystal.h

• Wire.h

El circuito:

La conexión del circuito entre arduino y la pantalla LCD es estándar, y podemos encontrar una conexión similar en otros proyectos basados ​​en LCD. El único componente adicional es el RTC.

Para reducir la congestión del cable durante el prototipo, el RTC se puede insertar en los pines analógicos directamente del arduino. Suelde SCl, SDA, Vcc y GND con pines macho de cabezal e insértelos A2 a A5 pines como se muestra en el prototipo.

Prototipo del autor:

Cómo insertar correctamente RTC en Arduino:

Si su RTC tiene diferentes ubicaciones de pines y no se pudo replicar como se ilustra arriba, siempre puede usar cables para la conexión. Ahora que la configuración de su hardware está completa, pasemos a la parte de software del proyecto.

Cómo configurar la hora:

Una vez que se programa el módulo RTC, mantiene el tiempo incluso si se quita del arduino. La batería debería durar al menos un par de años.

No hay ningún botón para ajustar la hora, el siguiente programa establecerá la hora en RTC. La hora se sincroniza automáticamente con la hora de su computadora, mientras compila el código, así que asegúrese de que su computadora esté configurada con la hora correcta, antes de cargar los programas.
Cargue este código 'SetTime' para configurar la hora con el RTC conectado:

|_+_|

Una vez que se cargue este código, abra el monitor en serie y debería aparecer un mensaje de éxito diciendo que se ha establecido la hora.

Esto significa que su conexión entre el RTC y arduino es correcta y la hora está configurada.

Ahora cargue el siguiente código para mostrar la hora en la pantalla LCD.

|_+_|

Una vez hecho esto, debería ver que la hora y la fecha se muestran en la pantalla LCD y se están ejecutando.

Nota: El código 'SetTime' se modifica del código de ejemplo de DS1307RTC para optimizar las conexiones de cables para el módulo RTC, la carga del código original no establece la hora.

Despertador digital con Arduino

En esto, aprendimos cómo construir el reloj Arduino básico usando el módulo RTC, en la siguiente sección investigamos cómo se puede actualizar a un circuito de reloj de alarma digital usando Arduino.

Hay algunas personas que no necesitan despertador, se despiertan naturalmente y hay algunas personas que se despiertan después de que suene el despertador unas cuantas veces y hay algunas personas que presionan el botón de repetición varias veces y se van a la universidad / trabajo tarde algunas excusas.

El pequeño y divertido proyecto de reloj despertador propuesto puede enfrentar el problema de la pereza durante el despertar matutino. La mayoría de los relojes de alarma tienen un botón de repetición y una hora de corte predeterminada para la alarma si el usuario no responde.

Diseñamos este despertador sin un botón perezoso (botón de repetición) y la alarma no se apagará hasta que el usuario presione un botón.

Este reloj puede mostrar la hora en formato de 12 horas y la fecha en formato DD / MM / AAAA.

La hora y la fecha se mostrarán en la pantalla LCD de 16 x 2. Un RTC o un módulo de reloj en tiempo real se encargará de rastrear la hora y puede retener la hora correcta incluso después de un corte de energía prolongado.

Se proporcionan 5 botones cuya función se explicará en breve. El cerebro del proyecto Arduino puede cualquier modelo de su elección, le recomendamos Arduino pro mini o Arduino nano debido a su tamaño compacto.

Ahora, profundicemos en los esquemas.

Lo anterior es el esquema para que Arduino muestre la conexión, ajuste el contraste de la pantalla girando el potenciómetro de 10K.

A continuación se muestra el resto del circuito:

El circuito puede ser alimentado con un adaptador de pared de 9V 500mA.

Funciones de 5 botones:

S1: se utiliza para detener la alarma (también es el botón de reinicio).
S2: se utiliza para configurar la alarma. Si mantiene pulsado S2, accederá al menú de configuración de la alarma.
S3: se utiliza para incrementar las horas.
S4: se utiliza para incrementar los minutos.
S5: se utiliza para alternar el estado de la alarma. Si '*' existe en la pantalla LCD en la esquina inferior derecha, la alarma está encendida, si el '*' no existe, las estadísticas de alarma están apagadas.

En la parte inferior del artículo se explican más detalles sobre cómo configurar la alarma.

Descargue los archivos de la biblioteca a continuación:

Enlace 1: github.com/PaulStoffregen/DS1307RTC
Enlace2: github.com/PaulStoffregen/Time

Ahora, tenemos que configurar la hora para el módulo RTC, la hora se sincronizará desde su PC al módulo RTC.

Cargue el siguiente código para configurar la hora y abrir el monitor serial:

|_+_|

Ahora ha configurado correctamente la hora en RTC
A continuación, debe cargar el siguiente código principal:

|_+_|

Después de cargar el código anterior, debe ver la hora y la fecha correctas en la pantalla.

Ahora veamos cómo configurar la alarma:
• Mantenga pulsado S2 hasta que pueda ver el menú Alarma.
• Presione S3 y S4 para ajustar las horas y los minutos respectivamente.
• Después del ajuste de tiempo deseado, presione S2 una vez más. Dirá 'La alarma está configurada para xx: xx horas'.
• Si la alarma está ENCENDIDA, puede ver el símbolo “*” en la pantalla, si la alarma está APAGADA, no habrá ningún símbolo “*”.
• Puede encender / apagar la alarma presionando S5 durante medio segundo. No mantenga presionado hasta que '*' desaparezca (vuelve de nuevo), solo presione medio segundo para alternar el estado de la alarma.

NOTA IMPORTANTE:

El error más común al configurar una alarma en cualquier reloj es alternar involuntariamente AM / PM, lo que resulta en no sonar la alarma a la hora deseada.

Para contrarrestar este problema, la configuración propuesta del reloj de alarma está diseñada en formato de reloj de 24 horas.

El tiempo que se muestra en la pantalla LCD será de 12 horas con el formato AM / PM pero, cuando configure una alarma con este proyecto, debe configurarlo en formato de 24 horas de 0 a 23 horas.

Por ejemplo: si desea configurar la alarma a las 9:00 PM, debe configurar 21 horas y 0 minutos. Para, 5 AM: 5 horas y 0 minutos y así sucesivamente.

Prototipo del autor:

Te gusta este proyecto Si tiene alguna pregunta con respecto a este proyecto, no dude en expresarla en el comentario, puede recibir una respuesta rápida.

Clip de vídeo:




Artículo anterior: Circuito indicador de nivel de baliza para tanques de grano de cosechadora Siguiente artículo: 3 circuitos inversores de onda sinusoidal pura SG3525 de alta potencia