Arduino-Projekt: Arduino-Uhr

Fortgeschritten
45 Min
87,35 €

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

Benötigte Produkte