So erstellen Sie eine digitale Uhr mit dem RTC -Modul und Arduino Uno

So erstellen Sie eine digitale Uhr mit dem RTC -Modul und Arduino Uno
Arduino ist eine diversifizierte Plattform, die sowohl Anfängern als auch Experten für die Erstellung verschiedener Arten von Projekten bietet. Der Arduino bietet eine Vielzahl von Boards an, die sich voneinander unterscheiden, basierend auf der Spezifikation jedes Boards. Der Arduino Uno ist einer der am häufigsten verwendeten Boards der Arduino -Familie, da sie mit einer Reihe von Peripheriegeräten kompatibel ist. Wir haben eine Echtzeituhr erstellt, indem wir ein Echtzeit -Uhr -Modul mit Arduino uno anbinden.

Was ist RTC -Modul

Dies ist das Echtzeit -Taktmodul, das die Daten von Zeit und Datum speichert und es auch auf dem angeschlossenen Anzeigebildschirm anzeigt. Dieses Modul hält die Uhrzeit und das Datum aktualisiert und verfügt über einen Kristalloszillator, der ein Signal bei einer konstanten Frequenz erzeugt. Darüber hinaus hat das RTC -Modul dedizierte Stifte des Temperatursensors auf der Rückseite und es gibt einen speziellen Stift, der den Ausgang des Sensors liest.

Das Modul wird außerdem mit einer 3-V-Lithium-Ionen-Batterie geliefert, die das Modul für einige Zeit läuft, wenn die Hauptversorgung getrennt ist.

Insgesamt gibt es 7 Stifte des Moduls, aber auf der gegenüberliegenden Seite hat es die gleichen 5 Stifte, sodass Sie die Header auf einer der beiden Seiten löten können, wenn sich auf der Rückseite des Moduls eine Batterie befindet und Sie nicht. Ich möchte den SQ -Pin des RTC -Moduls verwenden. Die folgende Tabelle zeigt die Stifte des RTC -Moduls:

Stifte Beschreibung
1- (SQ) PIN zum Erzeugen der Quadratwelle
2- (DS) Stift mit dem Ausgang des Temperatursensors (DS18B20), wenn sie auf dem RTC installiert sind
2- (SCL) Uhrenstift für den Arduino
4- (SDA) Datenstift für den Arduino
5- (VCC) PIN zur Versorgung der Spannung an das Modul
6- (GND) Pin zum Erdungsmodul
7- (Fledermaus) PIN zum Anschließen der externen Batterie als Backup

Mit RTC mit Arduino uno eine digitale Uhr erstellen

Um Echtzeituhr zu entwerfen, benötigen Sie die folgenden Komponenten:

  • Arduino uno
  • Jumperdrähte
  • Echtzeit -Taktmodul (DS 1307)
  • LCD
  • Potentiometer
  • Brotbrett

Das Schema der Schaltung für die digitale Uhr unter Verwendung des RTC -Moduls ist unten angegeben . Hier im Schema haben wir den integrierten DS (1307) -Phip verwendet, der dem DS3231 -Modul nahezu ähnelt.

Hardware -Montage der digitalen Uhr mit RTC

Wir haben auch den digitalen Uhrenkreis in der Hardware so implementiert, dass wir zuerst alle Komponenten in das Breadboard platziert haben. Als nächstes haben wir die Verbindungsdrähte für die Schnittstelle der Komponenten mit dem Arduino verwendet. Wir haben ein Bild der Hardware -Montage der Schaltung gepostet, in der die blauen Drähte die an Arduino angeschlossenen Datenstifte des LCD sind. Der gelbe Draht ist mit einem Potentiometer für die Kontrasteinstellung verbunden. Darüber hinaus sind die grauen Drähte die Takt- und Datenstifte des mit Arduino verbundenen RTC -Moduls.

Installation der Bibliothek von RTC

Zum Schnittstellen des RTC -Moduls mit Arduino zuerst müssen wir die RTC -Modulbibliothek herunterladen. Zuerst müssen Sie den Bibliotheksmanager der Arduino -IDE öffnen und danach das Schlüsselwort schreiben RTCLIB In der Suchleiste des Bibliotheksmanagers. Als nächstes müssen Sie das finden RTCLIB von Adfruit und klicken Sie dann auf das Symbol Installation im Blau, um die Bibliothek zu installieren.

Wenn wir auf die Schaltfläche „Installieren“ klicken, wird ein neues Dialogfeld zur Bestätigung angezeigt.

Arduino -Code für die digitale Uhr mit RTC

Der Code für das Erstellen einer Echtzeituhr mit Arduino lautet:

#include "Rtclib.H "// Bibliothek für das RTC -Modul definieren
#include // Bibliothek für den LCD definieren
Liquidcrystal LCD (12, 11, 5, 4, 3, 2); // Zuweisen von Arduino -Stiften für die LCD
RTC_DS3231 RTC; // Das RTC -Modul deklarieren
void updatingrtc () // Funktion zum ersten Mal zum ersten Mal aktualisiert

LCD.setCursor (0, 0); // Festlegen der Stelle für die angezeigten Daten
LCD.print ("Aktualisieren ..."); // Anzeigen der Daten
// Bitten Sie den Benutzer, das neue Datum und die neue Uhrzeit einzugeben
const char txt [6] [15] = "Jahr", "Monat", "Tag",
"Stunde", "Minuten", "Sekunden";
String str = ""; // Erstellen einer Zeichenfolge
Langes RTC_Array [6]; // Definieren einer Variablen zum Speichern der Eingabedaten
while (seriell.verfügbar())
Serie.lesen(); // Lesen Sie die serielle Eingabe

für (int i = 0; i < 6; i++) // loop for taking 6 inputs form the user
Serie.print ("aktuell"); // Anzeigen der Daten auf der Serie
Serie.print (txt [i]);
Serie.drucken(": ");
während (!Serie.verfügbar())
// Überprüfen Sie, ob der Benutzer Eingaben vorliegt

STR = Serie.ReadString (); // Lesen Sie die Eingabezeichenfolge
Rtc_array [i] = str.toint (); // Konvertieren Sie die Benutzereingabe in die Nummer und speichern Sie sie in ein Array
Serie.println (rtc_array [i]); // Drucken Sie die Eingabe des Benutzers auf die Serie

// Aktualisierung des RTC durch die Eingabe des Benutzers
RTC.ordnen (datetime (rtc_array [0], rtc_array [1], rtc_array [2], rtc_array [3], rtc_array [4], rtc_array [5]));
Serie.println ("Zeit und Datum wird aktualisiert");

void displayUpdate () // Funktion zur Aktualisierung der Anzeige von LCD
// Erstellen und Array, um die Ziffer in Wörter zu konvertieren, beginnend von 0 bis 6
const char dayinwords [7] [4] = "sun", "mon", "tue", "mi", "th", "fri", "sa";
// Ziffernmonate in Wörtern konvertieren, beginnend von 1 bis 12
const char monatinwords [13] [4] = "", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec";
// Zeit und Datum lesen und sie in Variablen speichern
Datetime rtctime = rtc.Jetzt();
int sec = rtctime.zweiter (); // Sekunden
int mins = rtctime.Minute (); // Minuten
int hrs = rtctime.zwölfehour (); // Stunden
int tag = rtctime.Dayoftheweek (); // Tag im Wort
int dd = rtctime.Tag (); // Tag in der Zahl
int mth = rtctime.Monat (); // Monat
int yr = rtctime.Jahr (); // Jahr
LCD.setCursor (0, 0);/ *Festlegen der Stelle für die Anzeige des Datums und der Woche der Woche in Worten */
// das Datum im DD-MM-Yyyy-Format und in den Wochentagen anzeigen
if (dd < 10) lcd.print("0");
LCD.print (dd);
LCD.drucken("-");
LCD.print (monatinwords [mth]);
LCD.drucken("-");
LCD.print (yr);
LCD.drucken(" ");
LCD.print (taginwords [tag]);
LCD.setCursor (0, 1);/ *Festlegen der Stelle für die Anzeige der Zeit */
// Die Zeit auf LCD anzeigen
if (hrs < 10) lcd.print("0");
LCD.Print (HRS);
LCD.drucken(':');
if (mins < 10) lcd.print("0");
LCD.print (mins);
LCD.drucken(':');
if (Sec < 10) lcd.print("0");
LCD.Print (Sec);
if (rtctime.ISPM ()) LCD.print ("pm"); // AM/PM anzeigen
sonst LCD.print ("Am");

void setup ()

Serie.Beginnen Sie (9600); // serielle Kommunikation initialisieren
LCD.Beginnen Sie (16,2); // Initialisierung des LCD
RTC.Start(); // Initialisierung des RTC -Moduls

Hohlraumschleife ()

DisplayUpdate (); // Aufrufen der Funktion zum Aktualisieren des LCD
if (seriell.verfügbar
char input = serial.read (); // Lesen Sie die Eingabe vom Benutzer
if (input == 'r') updatingRtc (); // Wenn R der Eingangsaufruf ist, rufe die Aktualisierungsfunktion für RTC

Der Arduino -Code für die Erstellung einer Uhr wird so kompiliert, dass wir zuerst die Bibliothek für das RTC -Modul definiert haben. Danach haben wir die Bibliothek für den LCD definiert und die LCD -Stifte von Arduino zugewiesen und erklärt, dass wir die Funktionen des RTC verwenden werden, werden wir das Schlüsselwort RTC verwenden.

Wir haben zwei Funktionen erstellt, eine zum Aktualisieren des RTC -Modul.

Im Aktualisierung von Rupien Funktion zuerst haben wir ein Zeichen für das Datum und die Uhrzeit der Woche deklariert und eine leere Zeichenfolge erstellt, in der alle Eingaben des Benutzers gespeichert werden. Da vom Benutzer 6 Eingänge erforderlich sind, um die Uhrzeit und das Datum zu aktualisieren.

Als nächstes haben wir die benutzt RTC.anpassen() Funktion zum Speichern des aktuellen Datums und der aktuellen Uhrzeit im RTC -Modul.

Kommen zum DisplayUpdate () Funktion zu Beginn haben wir die Zahleneingabe für die Woche der Woche und den Monat des Jahres in die Zeicheneingabe umgewandelt und dann das Format für das Datum definiert, das DD-MM-Yyyy ist.

Als nächstes haben wir das Datum und die Uhrzeit auf der LCD mit der angezeigt LCD.drucken() Funktion.

In der Setup -Funktion nach der Initialisierung der seriellen Kommunikation werden sowohl die RTC- als auch die LCD.

In ähnlicher Weise kommen Sie zur ersten Schleife, die erste DisplayUpdate () Die Funktion wird aufgerufen, die das aktuelle gespeicherte Datum und die Uhrzeit im RTC -Modul anzeigen. Um das Datum und die Uhrzeit zu aktualisieren, die wir verwendet haben, und wenn die Bedingung, wenn die Charakter R wird als serielle Eingabe eingegeben Rufen Sie dann die Funktion aktualisiert und aktualisieren Sie das Datum und die Uhrzeit des Moduls.

Denken Sie daran, das RTC-Modul spart die Uhrzeit und das Datum beim ersten Mal und aktualisiert das Datum und die Uhrzeit, auch wenn das Angebot ausgeschaltet ist. Daher wird der Datum und die Uhrzeit nur zum ersten Mal angegeben und hält den Zeitpunkt der Zeit, bis er manuell geändert wird.

Hardware -Implementierung für die digitale Uhr mit RTC mit Arduino Uno

Um die Uhrzeit und das Datum zu aktualisieren, müssen wir das Zeichen „R“ in den seriellen Monitor eingeben, indem wir Strg+Eingabetaste drücken, und der Arduino -Code benötigt die Daten für das aktuelle Datum und die aktuelle Zeit. Wir haben das Bild unten gepostet, damit Sie ein klares Bild der erforderlichen Eingänge sein können:

Nachdem Sie alle Daten eingegeben haben, wird das Programm mitgeteilt, dass das RTC -Modul aktualisiert ist. Während der Aktualisierung der Uhrzeit und des Datums des LCD wird angezeigt, dass RTC aktualisiert wird:

Sobald Sie das Datum und die Uhrzeit aktualisiert haben, wird es auf LCD angezeigt:

Abschluss

Das Arduino Uno Board ist eine fortschrittliche Form eines Mikrocontrollers, der die Schnittstelle von Geräten mit Mikrocontrollern einfach gemacht hat. Mit Arduino Uno können wir verschiedene Projektarten erstellen. In diesem Artikel haben wir eine Echtzeituhr mit dem RTC.