Arduino-Projekt: Arduino-Uhr
In diesem Projekt zeige ich Ihnen, wie Sie selbst eine Arduino-Uhr herstellen können
Mit dieser Arduino-Uhr können Sie Datum und Uhrzeit ablesen.
In diesem Projekt verwenden wir ein 16×2-LCD-Display, ein Echtzeituhrmodul und ein Potentiometer. Die Echtzeituhr (im Folgenden RTC) ist eigentlich eine Uhr, allerdings in elektronischer Form. Wenn die Stromversorgung des Arduino ausfällt, läuft die RTC weiter, da sie mit einer kleinen Batterie betrieben wird. Auf diese Weise kann er 7 Jahre lang die Zeit im Auge behalten. Dies ist besonders nützlich, wenn Sie die Arduino-Uhr mit einer Batterie betreiben möchten. Ist die Batterie leer, entfällt das ständige Einstellen der Uhrzeit. Mit dem Potentiometer verändern wir die Helligkeit des LCD-Bildschirms.
Bau und Verkabelung
Jetzt werden wir das Projekt bauen
Wir beginnen mit dem Anlöten der Stiftleisten an die RTC. Gehen Sie dabei gemäß den Abbildungen unten vor. Wenn Sie genau hinsehen, werden Sie feststellen, dass ich die RTC verkehrt herum auf das Steckbrett gelegt habe. Ich habe das gemacht, damit es besser auf das Steckbrett passt, da meine Stiftleisten nicht lang genug waren. Sie müssen selbst schauen, was Ihnen am leichtesten fällt. Bitte achten Sie darauf, dass Sie die richtigen Anschlüsse an der RTC verwenden.
Nach dem Verlöten der Stiftleisten können Sie die Bauteile entsprechend der Zeichnung platzieren. Anschließend können Sie mit der Verdrahtung der Komponenten und des Arduino beginnen.
Es ist wichtig, dass Sie die richtigen Komponenten mit den richtigen Arduino-Pins verbinden, sonst funktioniert der Code nicht!
RTC -> Arduino Uno
SCL -> Pin A5
SDA -> Pin A4
VCC -> 5V
GND -> GND
LCD -> Arduino Uno
VSS -> GND
VDD -> 5V
VO -> Potentiometersignal
RS -> Pin 12
RW -> GND
E -> Pin 11
D4 -> Pin 5
D5 -> Pin 4
D6 -> Pin 3
D7 -> Pin 2
A -> 5V
K -> GND

Programmierung
Nachdem Sie die Verkabelung und den Bau Ihres Arduino-Alarms abgeschlossen haben, können Sie mit der Programmierung des Arduino Uno beginnen.
Für diesen Code müssen wir auch eine Bibliothek hinzufügen.
Eine Bibliotheks- oder Include-Datei enthält häufig Code, der in anderen Skizzen wiederverwendet werden kann. Oft handelt es sich bei Bibliotheken um eine Sammlung verwandter Funktionen, die auf eine bestimmte Anwendung ausgerichtet sind. Beispielsweise zur Steuerung eines LED-Streifens, spezieller mathematischer Funktionen oder zur Steuerung eines LCD-Bildschirms.
Wir verwenden die Bibliothek für die RTC, sonst wüsste sie nicht, was sie tun soll.
Laden Sie die Bibliothek herunter Hier
Um die Bibliothek zur IDE hinzuzufügen, müssen wir den RTC-Ordner in den Bibliotheksordner kopieren oder verschieben.
Dieser Ordner befindet sich normalerweise unter C:\Benutzer\(Name)\Dokumente\Arduino\Bibliotheken
Sie können den folgenden Code dann vollständig kopieren und in die Arduino IDE einfügen.
Laden Sie den Code auf den Arduino Uno hoch und prüfen Sie, ob er funktioniert.
Wenn alles gut geht, leuchtet der LCD-Bildschirm auf und zeigt das richtige Datum und die richtige Uhrzeit an.
Mit dem Potentiometer können Sie die Helligkeit des LCD-Bildschirms ändern.
Wenn der LCD-Bildschirm eingeschaltet ist, aber nichts angezeigt wird, drehen Sie das Potentiometer nach links oder rechts.
Kopieren Sie nun den unten stehenden Code in Ihr Arduino-Programm. Wir empfehlen Ihnen, ihn selbst zu kopieren, da Sie dadurch mehr lernen.
#include <Wire.h>
#include <RTClib.h> // zorg ervoor dat je de map RTC in de goede libraries map zet
#include <LiquidCrystal.h>
RTC_DS1307 RTC;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup () {
Serial.begin(9600);
Wire.begin();
RTC.begin();
lcd.begin(16, 2);
// de volgende zin verzet de tijd van de RTC naar de tijd wanneer deze code geupload is naar de Arduino
RTC.adjust(DateTime(_DATE, __TIME_));
}
void loop () {
DateTime now = RTC.now();
lcd.setCursor(4,0);
lcd.print(now.day(), DEC);
lcd.print(‘/’);
lcd.print(now.month(), DEC);
lcd.print(‘/’);
lcd.print(now.year(), DEC);
lcd.print(‘ ‘);
lcd.setCursor (4,1);
lcd.print(now.hour(), DEC);
lcd.print(‘:’);
lcd.print(now.minute(), DEC);
lcd.print(‘:’);
lcd.print(now.second(), DEC);
lcd.print(‘ ‘);
delay(1000);
}

