#include <Wire.h>
//#include "TimeLib.h"
//#include "DS1307RTC.h"
#include "RTClib.h"
RTC_DS1307 rtc;
void setup() {
// NOTA: Estas sentencias se requieren para alimentar directamente el
// chip RTC desde los pines A3 Y A2 (colocar directamente el modulo sobre
// la tarjeta arduino, sin la necesidad de cablear en Arduino UNO).
// Si no se quiere hacer esto, se pueden eliminar o comentar sin problemas
pinMode(A5, OUTPUT);
digitalWrite(A5, HIGH);
pinMode(A4, OUTPUT);
digitalWrite(A4, LOW);
// Configurar la comunicacion a 9600 baudios
Serial.begin(9600);
// Mostrar la leyenda inicial
// Imprimir encabezado a la terminal
Serial.println(F("----------------------------------------------------"));
Serial.println(F("EJEMPLO LECTURA DE RTC DS1307 EN TINYRTC CON ARDUINO"));
Serial.println(F(" https://www.geekfactory.mx "));
Serial.println(F("----------------------------------------------------"));
}
void loop() {
// Declaramos una estructura "tm" llamada datetime para almacenar
// La fecha y la hora actual obtenida desde el chip RTC.
//tmElements_t datetime;
rtc.begin();
DateTime now = rtc.now();
// Obtener la fecha y hora desde el chip RTC
//if (now > 0) {
// Comenzamos a imprimir la informacion
Serial.print(F("OK, Time = "));
print2digits(now.hour());
Serial.write(':');
print2digits(now.minute());
Serial.write(':');
print2digits(now.second());
Serial.print(F(", Date (D/M/Y) = "));
Serial.print(now.day());
Serial.write('/');
Serial.print(now.month());
Serial.write('/');
Serial.print(now.year());
Serial.println();
delay(1000);
//}
/*else {
if (rtc.) {
// El reloj esta detenido, es necesario ponerlo a tiempo
Serial.println(F("EL DS1307 ESTA DETENIDO"));
Serial.println(F("CORRE EL PROGRAMA PARA PONERLO A TIEMPO"));
}
else {
// No se puede comunicar con el RTC en el bus I2C, revisar las conexiones.
Serial.println(F("NO SE DETECTO EL DS1307"));
Serial.println(F("REVISA TUS CONEXIONES E INTENTA DE NUEVO"));
}
// Esperamos indefinidamente
for (;;);
}*/
}
/**
Funcion auxiliar para imprimir siempre 2 digitos
*/
void print2digits(int number) {
if (number >= 0 && number < 10) {
Serial.write('0');
}
Serial.print(number);
}