Angebot!

DS1302 Uhr- und Kalendermodul mit Speicher und Batterie RTC für Arduino

Ursprünglicher Preis war: 4,70 €Aktueller Preis ist: 2,24 €. USt.-frei

DS1302 Modul Uhr und Kalender mit Speicher und RTC-Batterie Real Time Clock Arduino kompatibel

56 vorrätig (kann nachbestellt werden)

Domande su questo prodotto? Scrivi a Lana su WhatsApp

🎬 Das Produkt im Video

Beschreibung

DS1302 RTC (Real Time Clock) Modul mit Speicher, Batterie und Kalender – Vollständige Beschreibung und Anleitung für die Verwendung mit Arduino


🕒 Beschreibung des DS1302 RTC Moduls

Das DS1302 ist ein Real Time Clock (RTC) Modul das es ermöglicht, die Uhrzeit und das Kalenderdatum genau zu verfolgen auch ohne Stromversorgung, dank einer auch ohne Stromversorgung, dank einer (typischerweise Typ CR2032). Es wird sehr häufig in Projekten mit Arduino, ESP8266, ESP32, Raspberry Pi und anderen Mikrocontrollern verwendet. Technische Spezifikationen


Spezifikation

Details RTC-Chip
DS1302 DS1302
Energieversorgung 3.3V – 5.5V (kompatibel mit Arduino)
Kommunikation Serial mit 3 Leitungen (SCLK, I/O, CE)
Tamponebatterie Unterstützung für CR2032 (nicht immer enthalten)
RAM 31 Byte statische RAM für allgemeinen Gebrauch
Genauigkeit ±1 Minute/Monat typisch (ohne Kalibrierung)
Datumsbereich 01/01/1900 – 31/12/2099
Funktionen Uhr, Kalender, RAM, Batterie-Backup

🔌 Verbindung DS1302 mit Arduino

DS1302-Pins Verbindung zu Arduino
VCC 5V (oder 3.3V)
GND GND
CLK (SCLK) D6
I/O D7
CE (RST) D8

📦 Empfohlene Bibliothek für Arduino

Um den DS1302-Modul mit Arduino zu verwenden, kannst du die Bibliothek installieren „DS1302RTC“ geschrieben von Paul Stoffregen, die das Lesen/Schreiben der Uhr vereinfacht.

🔧 Installation der Bibliothek

  1. Öffne den Arduino IDE
  2. Gehe zu Sketch > Bibliothek einbinden > Bibliotheken verwalten
  3. Suche DS1302RTC und installiere die Bibliothek von Paul Stoffregen

🧪 Beispielskod für die Einstellung und das Lesen von Datum/Uhrzeit

#include <DS1302RTC.h>
#include <TimeLib.h>
#include <Wire.h>
#include <Streaming.h>

// Pin collegati al modulo DS1302: CE, I/O, CLK
DS1302RTC rtc(8, 7, 6);

void setup() {
  Serial.begin(9600);

  // Imposta l’orario solo la prima volta
  // Imposta: Anno, Mese, Giorno, Ora, Minuti, Secondi
  tmElements_t tm;
  tm.Year = CalendarYrToTm(2025); // Anno - 1970
  tm.Month = 7;
  tm.Day = 28;
  tm.Hour = 15;
  tm.Minute = 45;
  tm.Second = 0;
  rtc.write(tm);

  Serial.println("Ora impostata!");
}

void loop() {
  tmElements_t tm;
  if (rtc.read(tm)) {
    Serial << "Data: " << tm.Day << "/" << tm.Month << "/" << tmYearToCalendar(tm.Year);
    Serial << " - Ora: " << tm.Hour << ":" << tm.Minute << ":" << tm.Second << endl;
  } else {
    Serial.println("Errore lettura RTC");
  }
  delay(1000);
}

📘 Nützliche Funktionen der Bibliothek

Funktion Beschreibung
rtc.read(tm) Liest das Datum und die Uhrzeit vom Modul
rtc.write(tm) Setzt das Datum und die Uhrzeit
tm.Year, tm.Month Zugriff auf einzelne Elemente des Datums und der Uhrzeit
tmHour, tmMinute Direkter Zugriff auf Uhrzeit/Minuten
CalendarYrToTm(anno) Konvertierung von Kalenderjahr in Basisjahr 1970
tmYearToCalendar(tm) Umgekehrte Konvertierung (nützlich für Druck)

⚠️ Praktische Tipps

  • Setze die Uhrzeit nicht bei jedem Start: der Code zum Setzen der Uhrzeit sollte nur einmal ausgeführt werden. Danach kommentiere ihn aus.
  • Überprüfe die Batterie: wenn die Uhrzeit auf Null gesetzt wird, ist die Batterie CR2032 entladen oder nicht vorhanden.
  • Verkehre nicht die Pins: falsche Verbindungen führen zu falschen Lesungen oder fehlgeschlagenen Kommunikationen.
  • Die Genauigkeit des DS1302 ist für allgemeinen Gebrauch gut, aber für kritische Anwendungen ist es besser, den zu verwenden DS3231 (mit einem temperaturkompensierten Oszillator).

🎯 Typische Anwendungen

  • Digitale Uhren mit Anzeige (LCD, OLED, 7-Segment)
  • Daten protokollieren mit Zeitstempel (z.B. auf SD-Karten)
  • Wecker und automatische Timer
  • Domotische Projekte mit geplanten Ereignissen
  • Timer für Bewässerungssysteme

🔄 Alternativen

RTC-Modul Genauigkeit Batterie Kommunikation Anmerkungen
DS1302 Durchschnitt CR2032 3 Leitungen (Serielles Interface) Wirtschaftlich, Basis
DS1307 Gut CR2032 I2C Am weitesten verbreitet
DS3231 Hoch Inklusive I2C Hochpräzise, temperaturkompensiert

📌 Fazit

Der RTC-Modul DS1302 ist eine ausgezeichnete Wahl für Arduino-Projekte, bei denen es erforderlich ist, die Zeit auch dann zu verfolgen, wenn der Mikrocontroller ausgeschaltet ist. Es ist wirtschaftlich, einfach zu bedienen und gut dokumentiert, obwohl es heute oft durch das präziseren DS3231.

Perfekt! Ich gebe dir zwei praktische Erweiterungen für das Modul RTC-Modul DS1302 mit Arduino:


🔹 1. Anzeigen von Datum/Uhrzeit auf Display OLED I2C (128×64)

🧰 notwendige Komponenten:

  • Arduino UNO / Nano
  • Modul RTC DS1302
  • Display OLED 128×64 (Treiber SSD1306, Interface I2C)
  • Steckbrückenkabel

🔧 Verbindungsplan

Komponente Pin Arduino
DS1302 VCC, GND 5V, GND
CLK D6
I/O D7
CE (RST) D8
OLED VCC, GND 5V, GND
SDA A4
SCL A5

📦 Bibliotheken zu installieren:

  • DS1302RTC – Paul Stoffregen
  • Adafruit GFX Library
  • Adafruit SSD1306

Öffne das Arduino IDE → Bibliothek-Manager → Suche und installiere alle drei.


💡 Beispielcode mit OLED:

#include <DS1302RTC.h>
#include <TimeLib.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
DS1302RTC rtc(8, 7, 6); // CE, IO, SCLK

void setup() {
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
}

void loop() {
  tmElements_t tm;
  if (rtc.read(tm)) {
    display.clearDisplay();
    display.setCursor(0, 0);
    
    display.printf("%02d:%02d:%02dn", tm.Hour, tm.Minute, tm.Second);
    display.setTextSize(1);
    display.setCursor(0, 40);
    display.printf("%02d/%02d/%04d", tm.Day, tm.Month, tmYearToCalendar(tm.Year));
    display.display();
  } else {
    display.clearDisplay();
    display.setCursor(0, 0);
    display.println("RTC ERROR");
    display.display();
  }
  delay(1000);
}

🔹 2. Logger auf SD-Karte mit Zeitstempel von DS1302

🧰 Komponenten:

  • Arduino UNO / Nano
  • RTC DS1302
  • SD-Kartenleser (mit Logikadapter falls notwendig)
  • MicroSD formatiert FAT32

🔧 SD-Karte Anschluss

SD-Kartenleser Arduino
CS D10
MOSI D11
MISO D12
SCK D13
VCC, GND 5V, GND

📦 Bibliotheken zu verwenden:

  • SD
  • DS1302RTC
  • TimeLib

💡 Beispielcode für Data Logging:

#include <SPI.h>
#include <SD.h>
#include <DS1302RTC.h>
#include <TimeLib.h>

const int chipSelect = 10;
DS1302RTC rtc(8, 7, 6); // CE, IO, SCLK

void setup() {
  Serial.begin(9600);
  SD.begin(chipSelect);
  if (!SD.begin(chipSelect)) {
    Serial.println("SD init failed!");
    return;
  }
  Serial.println("SD OK");
}

void loop() {
  tmElements_t tm;
  if (rtc.read(tm)) {
    File logFile = SD.open("log.txt", FILE_WRITE);
    if (logFile) {
      logFile.print(tmYearToCalendar(tm.Year));
      logFile.print("/");
      logFile.print(tm.Month);
      logFile.print("/");
      logFile.print(tm.Day);
      logFile.print(" ");
      logFile.print(tm.Hour);
      logFile.print(":");
      logFile.print(tm.Minute);
      logFile.print(":");
      logFile.println(tm.Second);
      logFile.close();
      Serial.println("Dati scritti su SD.");
    } else {
      Serial.println("Errore apertura log.txt");
    }
  }
  delay(5000); // Log ogni 5 secondi
}

✅ Zusätzliche Tipps:

  • Du kannst kombinieren OLED + SD + DS1302 im selben Projekt, wenn es keine Pin-Konflikte gibt.
  • Du kannst auch loggen Sensorwerte (z.B. Temperatur, Luftfeuchtigkeit) zu der Zeichenkette hinzufügen logFile.print().
  • Denk daran die SD-Karte in FAT32 zu formatieren und einfache Dateien zu verwenden .txt .

Tutorial: Wie man den DS1302 RTC Modul verwendet

Das DS1302 Modul ist ein Real-Time-Clock (RTC), das die Uhrzeit und das Kalenderdatum auch ohne Stromversorgung des Arduino-Betriebs behält. Ideal für Projekte, die eine hohe Zeitgenauigkeit erfordern.

Was du brauchst

  • Arduino Uno oder kompatibel
  • USB-Kabel
  • DS1302 RTC Modul

Schritte

  1. VCC an 5V auf dem Arduino anschließen
  2. GND an die Masse auf dem Arduino anschließen
  3. I/O an den digitalen Pin 7 des Arduino (oder an einen beliebigen anderen Pin) anschließen
  4. CE an den digitalen Pin 8 des Arduino (oder an einen beliebigen anderen Pin) anschließen
  5. RST an den digitalen Pin 9 des Arduino (oder an einen beliebigen anderen Pin) anschließen
  6. Die DS1302 RTC Bibliothek in der Arduino IDE installieren
  7. Den Beispiel-Sketch, der von der Bibliothek bereitgestellt wird, zu laden
  8. Stellen Sie sicher, dass Uhrzeit und Datum korrekt sind

Beispielcode

include <DS1302.h>

DS1302 rtc(7, 8, 9);

time_t now;

void setup() {
  Serial.begin(9600);
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Imposta l'ora e la data corrente
}

void loop() {
  DateTime now = rtc.now();
  Serial.print(now.year(), DEC);
  printDigits(now.month());
  printDigits(now.day());
  printDigits(now.hour());
  printDigits(now.minute());
  printDigits(now.second());
  Serial.println();
  delay(1000); // Aggiorna ogni secondo
}

void printDigits(int digits) {
  Serial.print(digits / 10);
  Serial.print(digits % 10);
}

Mini-Projekt

Erstellen Sie eine digitale Uhr, die die Uhrzeit und das Datum auf dem seriellen Monitor von Arduino anzeigt. Fügen Sie eine Funktion hinzu, um Uhrzeit und Datum manuell einzustellen.

Häufige Fehler

  • Stellen Sie keine Verbindungen vor dem Laden des Sketches überprüfen
  • Stellen Sie die Uhr ohne eine Batterie ein, was dazu führen kann, dass die zeitlichen Informationen verloren gehen, wenn Arduino ausgeschaltet wird
  • Verwenden Sie einen nicht kompatiblen Pin für I/O, CE oder RST
  • Ignorieren Sie die Konfiguration im Datenblatt des Moduls

Empfohlenes Zubehör

  • LCD-Anzeigemodul 16×2
  • Batterie CR1220 (für die Stromversorgung des RTC)
  • Elektronischer Reloggiator
  • LED-Matrix-Anzeige

Häufige Fragen

Wie kann ich die Uhrzeit manuell einstellen?
Verwenden Sie die Methode ‚adjust()‘ der DS1302-Bibliothek, um Uhrzeit und Datum manuell einzustellen.

Welche Pins von Arduino kann das DS1302-Modul verwenden?
Es kann jeden digitalen Pin von Arduino verwenden, stellen Sie aber sicher, dass die Verbindungen korrekt sind.

Rezensionen

Es gibt noch keine Rezensionen.

Schreiben Sie die erste Rezension für „DS1302 Uhr- und Kalendermodul mit Speicher und Batterie RTC für Arduino“

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert