En este proyecto veremos cómo mostrar la hora y la fecha en una pantalla LCD. Este proyecto podría ser muy útil para hacer un despertador o simplemente un reloj. Todo lo que necesitas hacer es añadir baterías a la placa Arduino e imprimir una caja usando una impresora 3d para tener un verdadero reloj autónomo.
A continuación veremos el hardware necesario para el proyecto:
El potenciómetro se utiliza para ajustar el brillo de la pantalla. Se puede prescindir de él conectando 5V directamente al cable marrón y el GND que va del potenciómetro a la pantalla se puede conectar directamente a la placa Arduino.
#include <LiquidCrystal.h> // Library for LCD Screen
int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second minute hour day month year
int limits[6] = {60, 60, 24, 31, 12, 3000}; // increment limits
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Initialize the library with the connected pins
void setup() {
lcd.begin(16, 2); // Initialize the LCD with its dimensions
}
void loop() {
time_date[0]++; // time increment
for (int i = 0; i < 6 ; i++){
if (time_date[i] == limits[i]) { // check limit overflow
if (i<5) {time_date[i+1]++;}
time_date[i] = 0;
}
}
lcd.setCursor(0,0); // Position cursor on first line
for (int j = 3; j < 5; j++) { // display date
if (time_date[j]<10){
lcd.print("0");
lcd.print(time_date[j]);
}
else {lcd.print(time_date[j]);}
lcd.print("/");
}
lcd.print(time_date[5]);
lcd.setCursor(0,1); // Position cursor on second line
for (int j = 2; j >= 0; j--) { // display time
if (time_date[j]<10)
{
lcd.print("0");
lcd.print(time_date[j]);
}else {lcd.print(time_date[j]);}
if (j != 0){
lcd.print(":");
}
}
delay(250);
}
Como puede ver en la imagen, la fecha y hora de inicio son fijas y no coinciden necesariamente con el día correcto. Por lo tanto, puede cambiar esta fecha usted mismo en el programa.
Aquí tiene la línea que debe cambiar:
int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second, minute, hour, day, month, year
Como puedes ver, el reloj y la fecha no siguen actualizándose una vez que la placa Arduino se ha apagado. Esto puede ser molesto si estás haciendo un reloj, por ejemplo. Para solucionar este problema, puedes añadir al proyecto un módulo de reloj rtc (como el DS3231), que calculará la hora incluso cuando la placa Arduino esté apagada gracias a una batería independiente de la alimentación de la placa Arduino.
He aquí la simulación del proyecto: