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.

Dificultad :

Material necesario

A continuación veremos el hardware necesario para el proyecto:

  • Placa Arduino Uno
  • Una pantalla LCD de cristal líquido de 16×2
  • Un potenciómetroUna resistencia de 220
  • ohmios
  • Cables de conexión (¡unos quince!)

Diagrama del reloj Arduino

Schéma horloge Arduino

¿Para qué sirve el potenciómetro?

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.

Programa de reloj 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);
}

Cambia la hora y la fecha en el programa

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

¿Cómo puedo mantener la hora actual cuando el Arduino está apagado?

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.

Simulación de reloj Arduino

He aquí la simulación del proyecto: