Trastejant

Crea, comparte, aprende y disfruta

Reloj real

Reloj real

A veces nuestros proyectos necesitan utilizar la fecha y la hora actual. Ya sea para hacer saltar eventos (alarmas, un riego automático, encender luces… etc.), para mostrarla (cómo en el caso de un reloj) o para guardar un registro de eventos que incluya el día y la hora a la que sucedió un determinado cambio o evento.

Para todos estos casos, la mejor opción es utilizar un chip de reloj de tiempo real, que sepa en todo momento la hora y la fecha en la que nos encontremos. Uno de los más baratos y sencillos es el DS1307, que incluyen módulos muy económicos cómo el Tiny RTC I2C son fáciles de encontrar en Internet y es el que emplearemos para este tutorial.

Este módulo se comunica vía I2C, lo que facilita mucho su uso con Arduino. La forma de emplear estos módulos es muy sencilla, cuando necesitemos saber la hora y la fecha le diremos a Arduino que “se lo pregunte” al módulo. Este estará siempre en hora, incluso aunque hayamos retirado la alimentación de Arduino en algún momento, ya que lleva una pila de botón de litio CR2032.

La conexión de este módulo con Arduino es muy sencilla, simplemente tenemos que conectar el SCL y el SDA a los pines analógicos 4 y 5 de Arduino, que son los que están preparados para la conectividad I2C:

Conexion con el modulo de reloj real

Pin del módulo Pin del Arduino
SCL A5
SDA A4
Vcc 5V
GND GND

 

 

 

Ahora podemos probar el módulo utilizando este código que hace uso de la librería RTClib.h

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include  
#include "RTClib.h" 
RTC_DS1307 RTC; 
 
void setup () { 
 
 Serial.begin(9600);//Iniciamos la comunicacion por serie 
 Wire.begin();//Inicializamos la librería wire 
 RTC.begin();//Inicializamos el módulo reloj 
 
 /*Descomentando esta linea, enviamos la hora y fecha 
 del ordenador al módulo para ponerlo en hora*/ 
 //RTC.adjust(DateTime(__DATE__, __TIME__)); 
} 
 
void loop () { 
 DateTime now = RTC.now();//Creamos un objeto que contiene la hora y fecha actual 
 
 Serial.print(now.day(), DEC);//Mostramos por consola el dia 
 Serial.print('/'); 
 
 Serial.print(now.month(), DEC);//Mostramos por consola el mes 
 Serial.print('/'); 
 
 Serial.print(now.year(), DEC);//Mostramos por consola el año. 
 Serial.print(' '); 
 
 Serial.print(now.hour(), DEC);//Mostramos por consola la hora 
 Serial.print(':'); 
 
 Serial.print(now.minute(), DEC);//Mostramos por consola los minutos 
 Serial.print(':'); 
 
 Serial.print(now.second(), DEC);//Mostramos por consola los segundos 
 Serial.println(); 
 
 delay(5000);//Esperamos 5 segundos y volvemos a empezar 
}

Si abrimos la consola de Arduino (utilizando este botónSerial ) veremos que se nos muestra la hora y la fecha:

Consola de Arduino


También te puede interesar...

No hay temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.