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.
Wir werden nun die Hardware, die wir für das Projekt benötigen:
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.
#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);
}
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 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.