buenos dias compañeros de circuitos y soft, monte un ejemplo de rtc arduino y lcd
pero al comprobarlo no sale bien la fecha marca 1/1/2000 segui todo bien pero no veo el fallo , os pongo el .ino y una foto del montaje funcionando
//Añadimos la librería.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DS3231.h>
//Constructor que recibe como parámetros los pines
//para comunicación I2C.
DS3231 rtc(SDA, SCL);
Time tiempo; //Declaramos una clase llamada tiempo.
LiquidCrystal_I2C lcd(0x3F,20,4);
//Declaramos las variables donde se almacenarán
//los datos de la fecha y la hora.
int dia, mes, anio, hora, minuto, segundo;
void setup()
{
rtc.begin(); //Inicializamos el rtc.
//setearDatosAlRtc(); //Actualizamos la hora del rtc.
lcd.init();
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
}
void loop()
{
cargarDatos(); //Llamamos a la función encargada de cargar los datos de la fecha y la hora.
imprimirDatos(); //Llamamos a la función encargada de imprimir en pantalla los datos de la fecha y la hora.
delay(1000); //Producimos una espera de 1 segundo.
}
void setearDatosAlRtc()
{
rtc.setDOW(TUESDAY); //Seteamos el día de la semana.
rtc.setTime(8,34,0); //Seteamos la Hora:Minuto:Segundo (La Hora debe estar en el formato de 24Hs).
rtc.setDate(21,6,2022); //Seteamos el Día/Mes/Año.
delay(1000); //Producimos una espera de 1 segundo.
}
void cargarDatos()
{
tiempo = rtc.getTime(); //Cargamos los datos de la fecha y hora actual del reloj en la clase tiempo.
dia = tiempo.date; //Cargamos el día.
mes = tiempo.mon; //Cargamos el mes.
anio = tiempo.year; //Cargamos el año.
hora = tiempo.hour; //Cargamos la hora.
minuto = tiempo.min; //Cargamos el minuto.
segundo = tiempo.sec; //Cargamos el segundo.
}
void imprimirDatos() //Imprimimos los datos en pantalla.
{
lcd.setCursor(4,0);
lcd.print("TheFabro1000");
lcd.setCursor(3,1);
lcd.print("Hoy es: ");
switch(tiempo.dow){ //La variable dow contiene el número del día de la semana.
case 1: lcd.print("Lunes"); break;
case 2: lcd.print("Martes"); break;
case 3: lcd.print("Miercoles"); break;
case 4: lcd.print("Jueves"); break;
case 5: lcd.print("Viernes"); break;
case 6: lcd.print("Sabado"); break;
case 7: lcd.print("Domingo"); break;
}
lcd.setCursor(1,2);
lcd.print("Fecha: ");
if(dia < 10){lcd.print("0"); lcd.print(dia);}
else lcd.print(dia);
lcd.print("/");
if(mes < 10){lcd.print("0"); lcd.print(mes);}
else lcd.print(mes);
lcd.print("/"); lcd.print(anio);
lcd.setCursor(3,3);
lcd.print("Hora: ");
if(hora < 10){lcd.print("0"); lcd.print(hora);}
else lcd.print(hora);
lcd.print(":");
if(minuto < 10){lcd.print("0"); lcd.print(minuto);}
else lcd.print(minuto);
lcd.print(":");
if(segundo < 10){lcd.print("0"); lcd.print(segundo);}
else lcd.print(segundo);
}
la pila que le puse es la lir2032 3.6v 40mah