Hallo liebe Arduino-Gemeinde,
ich versuche einen RTC zum laufen zu bekommen.
Erster Schritt war mit einem pcf 8583 da ich diesen kurzzeitig von einem bekannten bekommen konnte. Leider hat dieser sporadisch unterschiedliche Daten(Datum) ausgegeben und ich bin nicht hinter das prob gestiegen. Bei meiner nächsten Bestellung habe ich mir also einen DS1307 geholt und angeschlossen.
Leider gibt der RTC gibt nichts aus...Ich habe nun schon mit mehreren Libs aus dem Netz versucht diesen zum Laufen zu bekommen - vergebens. Entweder zeigt der RTC die Zeit 00:00:00 dauerhaft an oder ich habe das prob, wenn ich die Time.lib von Arduino benutze, dass ich dann das Datum setzten kann, doch jedes mal wenn ich den Serial Monitor wieder öffne wird das Datum zurück gesetzt(Siehe Anhang).
Hier mein Code:
/*
- TimeRTC.pde
- example code illustrating Time library with Real Time Clock.
- date inputformat YYMMDDHHMMSSenter
*/
#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h> // a basic DS1307 library that returns time as a time_t
char time[25];
int uiyr,uimt,uidy,uihr,uimin,uisec;
int i;
void setup() {
Serial.begin(9600);
setSyncProvider(RTC.get); // the function to get the time from the RTC
if(timeStatus()!= timeSet)
Serial.println("Unable to sync with the RTC");
else
Serial.println("RTC has set the system time");
}
void loop()
{
digitalClockDisplay();
delay(1000);
if(Serial.available() > 0)
{
uiyr = (byte) ((Serial.read() - 48) *10 + (Serial.read() - 48) + 2000);
uimt = (byte) ((Serial.read() - 48) *10 + (Serial.read() - 48));
uidy = (byte) ((Serial.read() - 48) *10 + (Serial.read() - 48));
uihr = (byte) ((Serial.read() - 48) *10 + (Serial.read() - 48));
uimin = (byte) ((Serial.read() - 48) *10 + (Serial.read() - 48));
uisec = (byte) ((Serial.read() - 48) *10 + (Serial.read() - 48));
if(Serial.read() == 13)
{
setTime(uihr,uimin,uisec,uidy,uimt,uiyr);
RTC.set(now());
}
}
}
void digitalClockDisplay()
{
// digital clock display of the time
sprintf(time, "%02d/%02d/%02d %02d:%02d:%02d",
year(), month(), day(), hour(), minute(), second());
Serial.println(time);
}
Hat jemand eine Idee woran das liegen könnte?
Viele Grüße und Danke im Voraus!