Mientras aprendía de nuevo a utilizar el RTC he programado este pequeño código gracias al cual he comprendido como se utiliza el RTC y ahora tengo todo lo que necesito para implementarlo al programa con el que estoy trabajando.
#include <Wire.h> // Comunicacion I2C #include "RTClib.h" // libreria ADAFRUIT para DS3231 RTC_DS1307 RTC; int input; //Para ller el numero pasado por serial void setup() { Wire.begin(); // Inicia el puerto I2C RTC.begin(); // Inicia la comunicación con el RTC Serial.begin(9600); // Establece la velocidad de datos del puerto serie Datos(); //Imprimimos el menu de comandos }// Fin de Setup void loop() { if (Serial.available()>0){ input=Serial.read(); //Leemos el serial if (input=='1') { PrintFecha(); //Si el caracter leido es 1 imprime la fecha } else if (input=='2'){ PrintHora(); //Si el caracter leido es 1 imprime la fecha } else if (input=='5'){ PonerNuevaFecha(); //Si el caracter leido es 5 Cambia la fecha y la hora } else if (input=='9'){ Sincronizar(); //Si el caracter leido es 1 imprime la fecha } }//Fin if serial } void PrintFecha() { DateTime ahora = RTC.now(); // captura valores del tiempo Serial.print("Fecha: "); Serial.print(ahora.day(), DEC); Serial.print('/'); Serial.print(ahora.month(), DEC); Serial.print('/'); Serial.print(ahora.year(), DEC); Serial.println(); }//Fin PrinFecha void PrintHora() { DateTime ahora = RTC.now(); // captura valores del tiempo Serial.print("Hora: "); Serial.print(ahora.hour(), DEC); Serial.print(':'); Serial.print(ahora.minute(), DEC); Serial.print(':'); Serial.print(ahora.second(), DEC); Serial.println(); }//Fin PrintHora void Sincronizar (){ Serial.println(); Serial.println (" Nueva Fecha Sincronizada: "); Serial.println ("-----------------------------"); RTC.adjust(DateTime(__DATE__, __TIME__)); // Establece la fecha y hora del sistema PrintFecha(); PrintHora(); Serial.println ("-----------------------------"); }//Fin Sincronizar void PonerNuevaFecha (){ RTC.adjust(DateTime(2010, 07, 10, 12, 05, 00));//DateTime(ano, mes, dia, hora, min, seg) Serial.println(); Serial.println (" Nueva Fecha actualizada: "); Serial.println ("----------------------------"); PrintFecha(); PrintHora(); Serial.println("---------------------------"); Serial.println(); }//Fin Sincronizar void Datos(){ Serial.println(); Serial.println(); Serial.println (" Introduce un comando: "); Serial.println ("----------------------------"); Serial.println (" 1 : Imrime la Fecha del RTC "); Serial.println (" 2 : Imrime la Hora del RTC "); Serial.println (" 5 : Modifica e imprime la Fecha yla Hora del RTC "); Serial.println (" 9 : Sincroniza e imprime la Hora y la Fecha del RTC "); Serial.println(); Serial.println(); }//Fin Datos
No hay comentarios:
Publicar un comentario