
Real Time Clock DS1302

Funktion
Die DS1302 Echtzeituhr von Maxim erlaubt die Bestimmung von Zeit und Datum. Die aktuellen Werte müssen einmal übergeben werden, danach erhält der Speicher die die Information. Eine CR2032 Batterie sorgt dafür, dass die Information auch im ausgeschalteten Zustand erhalten bleibt.
Achtung: im Gegensatz zu vielen anderen RTC Chips ist DS1302 nicht I2C basiert! Es ist ein serielles Datenprotokoll. Ich habe eine lange Nacht damit zugebracht, den Fehler zu finden, als ich den DS 1302 in einen I2C Bus mit anderen Sensoren eingebunden hatte!
Verdrahtung
VCC an 3,3 oder 5V, GND and GND, CLK, DAT und RST an drei GPIO Pins anschließen, die serielle Kommunikation beherrschen. Das können auch SLC SLA des I2C Busses sein, dort dürfen dann aber keine anderen I2C Sensoren angeschlossen werden.
Getestet:
myRTC(16,27,14) ESP32 (CLK,DAT,RST)
myRTC(5,4,7); Uno (CLK,DAT,RST)
Programmierung
Es wird die ArduinoRTClibrary-master eigsetzt, hier zu finden:
https://drive.google.com/file/d/1GDuLWUANun5toL-XsEaFfaw2tv0mvhjB/view
#include "virtuabotixRTC.h"
virtuabotixRTC myRTC(16,27,14); //Uhr: Ein Objekt initialisieren ESP32 (CLK,DAT,RST)
//virtuabotixRTC myRTC(5,4,7); //Uno
void setup() {
//Nur ausführen, um die Uhrzeit zu stellen!!!!
//seconds, minutes, hours, day of the week, day of the month, month, year
//myRTC.setDS1302Time(00, 40, 23, 4, 26, 11, 2020);
}
void loop() {
myRTC.updateTime(); // Zeit updaten
dtostrf(myRTC.dayofmonth,2,0,day);
dtostrf(myRTC.month,2,0,month);
dtostrf(myRTC.hours,2,0,hours);
dtostrf(myRTC.minutes,2,0,minutes);
}
Quellen und hilfreiche Links
Quelle | Thema |
AZ-Delivery Datenblatt https://www.az-delivery.de/en/products/rtc-modul-ds1302-kostenfreies-e-book | DS1203 |