In diesem Projekt werden wir uns ansehen, wie man die Uhrzeit und das Datum auf einem LCD-Bildschirm anzeigt. Dieses Projekt kann sehr nützlich sein, wenn Sie einen Wecker oder einfach nur eine Uhr bauen wollen. Sie müssen nur Batterien in das Arduino-Board einlegen und ein Gehäuse mit dem 3D-Drucker ausdrucken, um eine echte, eigenständige Uhr zu erhalten.

Schwierigkeitsgrad :

Benötigtes Material

Wir werden nun die Hardware, die wir für das Projekt benötigen:

  • Ein Arduino Uno-Board
  • Ein 16×2 LCD
  • Bildschirm mit
  • Flüssigkristall.
  • Ein Potentiometer
  • Ein 220 Ohm
  • Widerstand
  • Verbindungsdrähte (etwa fünfzehn!)

Schema der Arduino-Uhr

Schéma horloge Arduino

Wozu dient das Potentiometer?

Mit dem Potentiometer können Sie die Helligkeit des Bildschirms einstellen. Sie können darauf verzichten, indem Sie direkt 5V an den braunen Draht anschließen. Den GND, der vom Potentiometer zum Bildschirm führt, können Sie direkt an das Arduino-Board anschließen.

Programm

#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);
}

Ändern Sie die Uhrzeit und das Datum im Programm!

Wie Sie auf dem Bild sehen konnten, ist die Uhrzeit und das Startdatum festgelegt und liegt nicht unbedingt am richtigen Tag. Sie können dieses Datum also selbst im Programm ändern.

Hier ist die Zeile, die Sie ändern müssen:

int time_date[6] = {10, 34, 18, 18, 10, 2022}; //second, minute, hour, day, month, year

Wie kann ich die aktuelle Uhrzeit beibehalten, wenn der Arduino ausgeschaltet ist?

Wie Sie vielleicht gesehen haben, werden die Uhr und das Datum nicht weiter aktualisiert, wenn das Arduino-Board ausgeschaltet wird. Dies kann ärgerlich sein, wenn Sie zum Beispiel eine Uhr bauen. Um dieses Problem zu lösen, können Sie dem Projekt ein rtc-Uhr-Modul (wie das DS3231) hinzufügen, das die Zeit auch dann berechnet, wenn das Arduino-Board ausgeschaltet ist, da es über eine Batterie verfügt, die unabhängig von der Stromversorgung des Arduino-Boards ist.

Simulation