Hola a todos y a ver si alguien me puede echar una mano o al menos darme alguna información de como poder hacerlo o donde encontrar información, pues por mucho que busqué por internet no he podido encontrar solucion a mi problema. Tengo un reloj construido con un LCD 1602 I2c y un modulo mini DS3231.
La cuestión es la siguiente:
El reloj como dije solamente consta de el LCD y el módulo mini DS3231, por tanto cada vez que por algún motivo necesito cambiar la hora, tengo que conectarlo al ordenador y hacerlo mediante rectificación en el sketch, poniendo la nueva hora al DS3231.
Necesito o bien poner botones para cambiar la hora manualmente (que no tengo ni idea si realmente se puede hacer esto teniendo un DS3231 para que mantenga la hora) o que se cambie automáticamente el horario "Verano/ Invierno".
Agradeciendo cualquier ayuda, como en veces anteriores ya recibí, y poco a poco voy aprendiendo (aún me queda mucho camino, lo sé, pero poquito a poco voy avanzando y entendiendo).
Muchas gracias a todos.
#include <DS3231.h> // Libreria RELOJ i2c
#include <Time.h> // Libreria Time
#include <Wire.h> // Necesario Modulo i2c
#include <LiquidCrystal_I2C.h> // Libreria LCD i2c
LiquidCrystal_I2C lcd (0x3f, 16, 2); // Direccion comunicacion i2c LCD y tamaño
DS3231 rtc(SDA, SCL);
//Símbolo Termómetro (Temperatura)
byte termometro[8] = {
B00100,
B01010,
B01010,
B01110,
B01110,
B11111,
B11111,
B01110
};
void setup()
{
rtc.begin();
Wire.begin();
lcd.begin(16,2); // Tamaño de la pantalla LCD
lcd.backlight (); // Encender la luz LCD
lcd.clear (); // Limpiar la pantalla LCD
lcd.createChar(1, termometro); //Simbolo de Termometro, para temperatura
}
void loop()
{
lcd.setCursor(0,0);
lcd.print(rtc.getDOWStr()); //dia semanal
lcd.setCursor (11, 0); // Posicion cursor para (abajo)
lcd.write (1); // Simbolo termometro
lcd.print (""); // Sin espacios
lcd.print(rtc.getTemp()); //Temperatura
lcd.setCursor(0,1);
lcd.print(rtc.getDateStr()); //Fecha
lcd.setCursor(11,1);
lcd.print(rtc.getTimeStr()); //Hora
delay(1000);
}