So baust du dir deine eigene Arduino Real Time Clock

Bei verschiedenen Maker-Projekten, aber auch bei diversen Haushaltsgeräten wie Mikrowellen und Heizungen kann es notwendig sein, einen Zeitmesser einzubeziehen. Vor allem wenn es sich um ein System mit zeitgesteuerter Elektronik handelt, ist eine solche Vorrichtung unabdingbar. Real Time Clocks (kurz: RTC) gelten als ideale Lösung für diesen Zweck. Mit RTCs kannst du dir ganz einfach die aktuelle Uhrzeit auslesen lassen, ohne dass du auf eine konstante Stromzufuhr angewiesen bist. Sobald die Stromversorgung unterbrochen wird, springt stattdessen eine kleine Bufferbatterie in die Bresche, die dafür sorgt, dass die Uhr immer weiterläuft. Und das Beste ist: Mit einem Arduino Uno und einem DS3231 Real Time Clock Modul lässt sich eine Echtzeituhr im Handumdrehen nachbauen. Wir zeigen dir, wie es geht und was es zu beachten gibt.

Das benötigst du für dein Arduino Real Time Clock-Projekt

WARENKORB

Alle für dieses Projekt notwendigen Artikel (außer Lötkolben) landen mit einem Klick auf den Button direkt in deinem Warenkorb, sofern sie in unserem Shop verfügbar sind. Kontrolliere daher deinen Warenkorb genau!

Schritt-für-Schritt-Anleitung

  1. Zuallererst gilt es, die Schaltung korrekt aufzubauen. Die folgende Abbildung soll dir dabei helfen, deinen Arduino ordnungsgemäß mit dem RTC-Modul und dem LED-Display zu verbinden.

Arduino Pins DS3231 Pins

A4 → SDA

A5 → (SCK)SCL

Arduino Pins TM1637 Display Pins

2 → CLK

3 → DIO

  1. Als nächstes installierst du die beiden Bibliotheken. Dazu navigierst du zu „Sketch“, wählst „Bibliothek einbinden“ und danach „Bibliotheken verwalten“. Gib anschließend rechts oben „RTClib“ ein und klicke zuletzt auf „Installieren“. Wiederhole den Vorgang mit dem Suchbegriff „TM1637“, um auch die zweite Bibliothek zu installieren.

  1. Im nächsten Schritt öffnest du mit deiner Arduino IDE den Code und gibst das aktuelle Datum und die aktuelle Uhrzeit an. Dabei gilt das Format Jahr/Monat/Tag bzw. Stunde/Minute/Sekunde.
  1. Lade nun den Code hoch, indem du zu „Werkzeuge“ navigierst und das Board mit der Bezeichnung „Arduino Uno“ sowie den dazugehörigen Port („COM4 Arduino Uno“) auswählst.
#include "RTClib.h"
#include <TM1637Display.h>

// Define the connections pins:
#define CLK 2
#define DIO 3

// Create rtc and display object:
RTC_DS3231 rtc;
TM1637Display display = TM1637Display(CLK, DIO);

void setup() {
  // Begin serial communication at a baud rate of 9600:
  Serial.begin(9600);
  // Wait for console opening:
  delay(3000);

  // Check if RTC is connected correctly:
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  // Check if the RTC lost power and if so, set the time:
  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // The following line sets the RTC to the date & time this sketch was compiled:
    //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    rtc.adjust(DateTime(2021,5,13,15,28,05));     //2021/5(Month)/16(Day) -- 15H:28H:05S
  }

  // Set the display brightness (0-7):
  display.setBrightness(5);
  // Clear the display:
  display.clear();
}

void loop() {
  // Get current date and time:
  DateTime now = rtc.now();

  // Create time format to display:
  int displaytime = (now.hour() * 100) + now.minute();

  // Print displaytime to the Serial Monitor:
  Serial.println(displaytime);

  // Display the current time in 24 hour format with leading zeros enabled and a center colon:
  display.showNumberDecEx(displaytime, 0b11100000, true);

  // Remove the following lines of code if you want a static instead of a blinking center colon:
  delay(1000);

  display.showNumberDec(displaytime, true); // Prints displaytime without center colon.

  delay(1000);
}

Falls dir das noch nicht genug DIY war, kannst du hier unsere weiteren Arduino Tutorials anschauen.

Die mobile Version verlassen