De DS1307 Real-Time Clock DS1307 RTC-module met de Arduino om de tijd weer te geven en bij te werken.
Wat u nodig hebt
- Arduino-board
- DS1307 RTC-module
- Breadboard en jumperdraden
- Een computer waarop de Arduino IDE is geïnstalleerd
- Bibliotheken: RTClib
DS1307 RTC-module
De DS1307 RTC
Verbindingen
| RTC-pin | Arduino Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Opmerking: Als je een Arduino-board gebruikt met speciale SDA- en SCL-pinnen (bijv. de Mega), sluit dan de SDA/SCL-pinnen van de RTC daarop aan.
Step 2: Installing the Required Library
Om te werken met de DS1307 RTC RTClib bibliotheek.
Stappen om RTClib te installeren
- Open de Arduino IDE.
- Ga naar Sketch > Bibliotheek opnemen > Bibliotheken beheren.
- Zoek naar "RTClib" in de Bibliotheekbeheerder.
- Klik Installeren.
Stap 3: Voorbeeldcode uploaden
Hier is een voorbeeldsketch om de huidige datum en tijd weer te geven van de DS1307-module:
Voorbeeldcode
cpp
#include
#include
RTC_DS1307 rtc;
void setup() {
Serial.begin(9600);
// Initialiseer de RTC
if (!rtc.begin()) {
Serial.println("Kon RTC niet vinden");
while (1);
}
// Controleer of de RTC loopt
if (!rtc.isrunning()) {
Serial.println("RTC loopt NIET! Tijd instellen...");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now();
// Toon de tijd
Serial.print(now.hour());
Serial.print(":");
if (now.minute() < 10) {
Serial.print("0");
}
Serial.print(now.minute());
Serial.print(":");
if (now.second() < 10) {
Serial.print("0");
}
Serial.println(now.second());
// Toon de datum
Serial.print(now.day());
Serial.print("/");
Serial.print(now.month());
Serial.print("/");
Serial.println(now.year());
delay(1000); // Elke seconde bijwerken
}
Stap 4: De tijd aanpassen
Als de RTC niet loopt of de tijd moet worden bijgewerkt, kun je de volgende regel gebruiken in de javascript
setup() javascript
functie:
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
-
F(__DATE__)enF(__TIME__)zijn macro's die de datum en tijd van je computer instellen wanneer je de sketch uploadt.
Om handmatig een specifieke tijd in te stellen, gebruikt u:
rtc.adjust(DateTime(2025, 1, 1, 12, 0, 0)); // JJJJ, MM, DD, UU, MM, SS
Step 5: Using the RTC Data in Your Projects
De DS1307 kan tijdgegevens leveren voor diverse toepassingen, zoals:
- Gegevensregistratie: Tijdstempel voor sensoraflezingen of gebeurtenissen.
- Alarmen en timers: Activeer acties op basis van specifieke tijden.
- Klokken: Maak digitale of analoge klokken met displays.
Example: Triggering an Action at a Specific Time
void loop() {
DateTime now = rtc.now();
// Controleer of het 8:00 uur is
if (now.hour() == 8 && now.minute() == 0 && now.second() == 0) {
Serial.println("Het is 8:00 uur!");
}
delay(1000);
}
Probleemoplossing
-
RTC niet gevonden:
- Controleer de SDA- en SCL-verbindingen.
- Zorg ervoor dat de batterij correct is geplaatst.
-
Onjuiste tijd:
-
javascript rtc.adjust()om de tijd te resetten. - Controleer op een lege of ontbrekende RTC-batterij.
-
-
Inconsistente gegevens:
- Zorg voor een stabiele stroomvoorziening van de Arduino en de RTC-module.
Toepassingen van de DS1307 RTC
- Realtime klokken en alarmen
- Time-based automation systems
- Gegevensregistratie met tijdstempels
- Reminder systems
Conclusie
De DS1307 RTC-module DS1307 met displays of sensoren om nog dynamischere projecten te bouwen!






1 reactie
Beim Verwenden des Befehls rtc.adjust(DateTime(F(DATE), F(TIME))); wird der sketch zwar fehlerlos kompiliert und hochgeladen, beim Ausführen des Programms stürzt das Programm aber ab, was auch zur Folge hat, dass die USB-Verbindung zum PC crasht und ein Hochladen von sketchs nicht mehr möglich ist. Abhilfe schafft dann nur ein Trick?. Nach einem Doppelclick auf die Reset-Taste des Boards funktioniert die USB-Verbindung wieder.