FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

Hoe de DS1307 RTC te gebruiken met de Arduino

How to Use the DS1307 RTC with the Arduino

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

  1. Arduino-board
  2. DS1307 RTC-module
  3. Breadboard en jumperdraden
  4. Een computer waarop de Arduino IDE is geïnstalleerd
  5. 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

  1. Open de Arduino IDE.
  2. Ga naar Sketch > Bibliotheek opnemen > Bibliotheken beheren.
  3. Zoek naar "RTClib" in de Bibliotheekbeheerder.
  4. 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__) en F(__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:

  1. Gegevensregistratie: Tijdstempel voor sensoraflezingen of gebeurtenissen.
  2. Alarmen en timers: Activeer acties op basis van specifieke tijden.
  3. 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

  1. RTC niet gevonden:

    • Controleer de SDA- en SCL-verbindingen.
    • Zorg ervoor dat de batterij correct is geplaatst.
  2. Onjuiste tijd:

    • javascript rtc.adjust() om de tijd te resetten.
    • Controleer op een lege of ontbrekende RTC-batterij.
  3. Inconsistente gegevens:

    • Zorg voor een stabiele stroomvoorziening van de Arduino en de RTC-module.

Toepassingen van de DS1307 RTC

  1. Realtime klokken en alarmen
  2. Time-based automation systems
  3. Gegevensregistratie met tijdstempels
  4. Reminder systems

Conclusie

De DS1307 RTC-module DS1307 met displays of sensoren om nog dynamischere projecten te bouwen!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

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.

Ulf Jacob,

Laat een reactie achter