Hola comunidad tengo un problema, con un codigo que es un reloj con sincronizacion interna (no puedo usar un rtc porque cuenta las horas, pero los dia llega a 999) para saber el tiempo de funcionamiento de un aparato. El problema es que no logro poder guardar la hora/minutos/dias y leerla en cada inicio en la eeprom y si se reinicia el arduino o ay un corte de energia vuelva a donde quedo, estoy un poco verde con el tema de la libreria eeprom.h.
Con otro ejemplo y haciendo una INT si puedo hacer funcionar la lectura y escritura pero con el codigo del reloj no, si alguien me da una mano me ayudaria mucho...
Desde ya muchas gracias
Aca el codigo:
#include <LiquidCrystal.h>// include the library code
#include <Time.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
setTime(23,59,00,103,01,00);
Serial.begin (9600);
lcd.begin(20, 4);
}
void loop(){
time_t t = now();
lcd.setCursor(0,0);
lcd.print("Hora");
printDigits(hour());
printDigits(minute());
lcd.print(" ");
lcd.print("Dia:");
lcd.print(day());
delay(1000);
}
void printDigits(int digits){
lcd.print(":");
if(digits < 10)
lcd.print('0');
lcd.print(digits);
}
PD: Esta pregunta es media obvia pero ya dije que estoy verde con las eeprom, se debe poner algun otro codigo para que no se llene la memoria interna, o siempre al poner eeprom.write(posicion,variable) se sobreescribe en la posicion 1 en este caso.
Osea al escribirlo asi,no importa la cantidad de escritura que tenga porque siempre la va a sobreescribir en la posicion "1"?
Pregunto por he visto ejemplo que hacen un bucle for para grabar en la posicion 1 y la proxima escritura la haga en la 2 y asi hasta al 512 y luego regresa a la posicion 1 (en caso que queramos por ejmplo ver variales de un sensor).