Arduino y Los Relojes RTC - Tutoriales Arduino
Arduino y Los Relojes RTC - Tutoriales Arduino
Arduino y Los Relojes RTC - Tutoriales Arduino
OBJETIVOS
MATERIAL REQUERIDO.
http://www.prometec.net/relojes-rtc/ 1/9
18/1/2017 Arduino y los relojes RTC | Tutoriales Arduino
Pero dijimos que tena varios problemas evidentes, como eran el hecho de que
el reloj interno se reinicia cada 50 das aproximadamente, y adems si
cortamos la corriente a nuestro Arduino, pone el reloj a 00 y vuelve a empezar
desde el 1 de enero de 1970, lo que no mucho.
Uno muy extendido para reloj digital es elDS1307de Maxim. Por muy poco
dinero realiza todas las funciones para llevar un reloj con calendario y solo hay
que aadirle una batera externa para que no pierda la hora al perder la
corriente. Sus caractersticas son:
http://www.prometec.net/relojes-rtc/ 2/9
18/1/2017 Arduino y los relojes RTC | Tutoriales Arduino
RTC: Real Time Clock, o reloj de tiempo real. Que lleva la cuenta de
segundos minutos y horas adems de da mes y ao automticamente,
vlido hasta el ao 2100.
56 byte de memoria RAM respaldada por una batera exterior, que mantiene
la fecha y hora cuando no hay corriente.
Deteccin automtica de corte de corriente y cambio a modo batera.
Muy bajo consumo, lo que ayuda a que la batera dure entre 5 y 10 aos.
I2C integrado en el mismo chip.
DIAGRAMA DE CONEXIN De
http://www.prometec.net/relojes-rtc/ 3/9
18/1/2017 Arduino y los relojes RTC | Tutoriales Arduino
Y para la protoboard:
El pin SQW, es una salida digital del chip DS1307, que nos permite generar
una seal cuadrada de frecuencia programable( De1Hz, 4kHz, 8kHz,32kHz)
que podemos emplear como base de tiempos para el reloj de cualquier circuito
sin necesidad de un cristal adicional de cuarzo y circuito oscilador (Que ya lleva
el propio Tiny RTC)..
Por eso, en este caso, como no vamos a usarlo, lo dejamos sin conectar
tranquilamente, despus de comprobar en la hoja de normas que podemos
hacerlo sin problemas.
EL PROGRAMA DE CONTROL En
la
#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h> // La libreria que gestiona el DS1307 RTC para Time
void setup()
{ Serial.begin(9600);
while (!Serial) ; // Solo si usas un Arduino Leonardo
setSyncProvider(RTC.get); // Sincronizar con el RTC
if(timeStatus()!= timeSet)
Serial.println("Unable to sync with the RTC");
else
Serial.println("RTC has set the system time");
}
Las tres primeras lneas cargan las libreras necesarias. Las dos primeras ya
las usamos en la sesin anterior y la correspondiente al DS1307 se debe al
RTC que vamos a usar. Fjate en la lnea:
#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h> // a basic DS1307 library that returns time as a time_t
http://www.prometec.net/relojes-rtc/ 5/9
18/1/2017 Arduino y los relojes RTC | Tutoriales Arduino
void setup()
{Serial.begin(115200);
while (!Serial) ; // Solo para el Leonardo
setSyncProvider(RTC.get); // Vamos a usar el RTC
if (timeStatus() != timeSet)
Serial.println("Unable to sync with the RTC");
else
Serial.println("RTC has set the system time");
}
void loop()
{ digitalClockDisplay();
delay(1000);
}
void digitalClockDisplay()
{ Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.print(" ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println();
}
void printDigits(int digits)
{ Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}
http://www.prometec.net/relojes-rtc/ 6/9
18/1/2017 Arduino y los relojes RTC | Tutoriales Arduino
ests haciendo pruebas con la librera a deshoras, es frecuente que tengas que
recompilar una y otra vez tu cdigo, y si cada vez tienes que poner en hora a
mano el reloj, lo normal es que acabes dando alaridos de frustracin con el
asunto (Si fueras alguien tranquilo es poco probable que estuvierasleyendo
esto, tendras un ocio sensato como contable, o abogado de un
ayuntamiento).
Basta con que corris este programa y la magia se encargara del resto. Los
que no creis en la magia podeis echar una ojeada al programa, porque
aunque contiene algunas instrucciones de C++ que no hemos visto no tendris
mucho problema en seguirlo.
LIBRERA TIMEALARMS
FUNCIN DESCRIPCIN
RESUMEN DE LA SESIN
Hemos visto cmo usar un RTC con la librera Time. No hay diferencias con
usar el reloj interno de Arduino ms all de denir el setSyncProvider ().
http://www.prometec.net/relojes-rtc/ 8/9
18/1/2017 Arduino y los relojes RTC | Tutoriales Arduino
Vimos algn ejemplo de cmo poner el reloj en hora con setTime y usando
los argumentos del compilador __TIME__ y __DATE__.
Presentamos adems la librera de TimeAlrms para disparar funciones en
alarmas programadas.
http://www.prometec.net/relojes-rtc/ 9/9