ds1302

hallo zusammen...
habe mir diesen: http://eckstein-shop.de/DS1302-Real-Time-Clock-Module-CP14001-C83
geholt...
nun folgendes Problem:
Zeit wird soweit angezeigt, allerdings wechselt er in etwa alle 20 sec von 08:..... auf 04:....
Die 08: Uhrzeit stimmt soweit...
und dann will ich eigentlich ein relay bei einer bestimmten Zeit schalten.
Relay ist noch nciht angeschlossen, habe es aber mit einer RGB versucht...
Geht aber iwie auch nicht...
wo ist der Fehler?

#include <OneWire.h>
#include <AFMotor.h>


#include <DallasTemperature.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h> 
#include <DS1302.h>


#define ONE_WIRE_BUS 52 


OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// DS1302:  CE pin    -> Arduino Digital 31
//          I/O pin   -> Arduino Digital 33
//          SCLK pin  -> Arduino Digital 35
DS1302 rtc(31, 33, 35);

Time t;

DeviceAddress Probe02 = { 0x28, 0xFF, 0x1B, 0x4B, 0x2E, 0x04, 0x00, 0x6B }; //1
DeviceAddress Probe01 = { 0x28, 0xFF, 0x1F, 0x76, 0x2B, 0x04, 0x00, 0x94 }; //2
//DeviceAddress Probe03 = { 0x28, 0x9A, 0x80, 0x40, 0x04, 0x00, 0x00, 0xD5 }; //3
//DeviceAddress Probe04 = { 0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9 };//4

int rgb1r=30; // Hier die richtigen Pins eintragen
int rgb1g=32;
int rgb1b=34;
int rgb2r=36;
int rgb2g=38;
int rgb2b=40;



int relay1=37;
int relay2=39;
int relay3=41;


float Temperatur = 24.0; 
long previousMillis = 2000;
long interval = 2000; 

AF_DCMotor Fan1(1, MOTOR12_64KHZ);
AF_DCMotor Fan2(2, MOTOR12_64KHZ);


void setup() 
{

  Fan1.setSpeed(255);
  Fan2.setSpeed(200);
  
  
sensors.begin();

sensors.setResolution(Probe01, 10);
sensors.setResolution(Probe02, 10);
// sensors.setResolution(Probe03, 10);
// sensors.setResolution(Probe04, 10);



rtc.halt(false);
  rtc.writeProtect(false);
  
  
 // The following lines can be commented out to use the values already stored in the DS1302
  rtc.setDOW(FRIDAY);        // Set Day-of-Week to FRIDAY
  rtc.setTime(07, 59, 50);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(25, 8, 2014);   // Set the date to August 6th, 2010


pinMode(rgb1r, OUTPUT); 
pinMode(rgb1g, OUTPUT); 
pinMode(rgb1b, OUTPUT); 
pinMode(rgb2r, OUTPUT);
pinMode(rgb2g, OUTPUT); 
pinMode(rgb2b, OUTPUT); 


pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);


lcd.begin (20,4); 
lcd.backlight();
}


void loop() 
{
sensors.requestTemperatures(); 
t = rtc.getTime();

if(sensors.getTempC(Probe01)>Temperatur+1){
Fan1.run(FORWARD);
digitalWrite(relay1,LOW);
digitalWrite(rgb1r,HIGH);
digitalWrite(rgb1g,LOW);
digitalWrite(rgb1b,LOW);
}else if(sensors.getTempC(Probe01)<Temperatur-4){
digitalWrite(relay1,HIGH);  
digitalWrite(rgb1b,HIGH);
digitalWrite(rgb1g,LOW);
digitalWrite(rgb1r,LOW);
}else if(sensors.getTempC(Probe01)==Temperatur){
Fan1.run(RELEASE);
digitalWrite(relay1,LOW);
digitalWrite(rgb1b,LOW);
digitalWrite(rgb1g,HIGH);
digitalWrite(rgb1r,LOW);

}else{
digitalWrite(relay1,LOW);
digitalWrite(rgb1g,HIGH);
digitalWrite(rgb1r,LOW);
digitalWrite(rgb1b,LOW);
}
if(sensors.getTempC(Probe02)>Temperatur+1){
Fan2.run(FORWARD);
digitalWrite(relay2,LOW);
digitalWrite(rgb2r,HIGH);
digitalWrite(rgb2g,LOW);
digitalWrite(rgb2b,LOW);
}else if(sensors.getTempC(Probe02)<Temperatur-4){
Fan2.run(RELEASE);
digitalWrite(relay2,HIGH);
digitalWrite(rgb2b,HIGH);
digitalWrite(rgb2g,LOW);
digitalWrite(rgb2r,LOW);
}else if(sensors.getTempC(Probe01)==Temperatur){
Fan1.run(RELEASE);
digitalWrite(relay2,LOW);
digitalWrite(rgb1b,LOW);
digitalWrite(rgb1g,HIGH);
digitalWrite(rgb1r,LOW);
}else{

digitalWrite(relay2,LOW);
digitalWrite(rgb2g,HIGH);
digitalWrite(rgb2r,LOW);
digitalWrite(rgb2b,LOW);
}

  if(t.hour, DEC==8){
    digitalWrite(relay3,HIGH);
    digitalWrite(rgb2r,HIGH);
  }else if(t.hour, DEC==13){
    digitalWrite(relay3,LOW);
  }else if(t.hour, DEC==15){
    digitalWrite(relay3,HIGH);
  }else if(t.hour, DEC==20){
    digitalWrite(relay3,LOW);
  }
  
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis; 
lcd.clear(); 
lcd.home();
lcd.backlight(); 

lcd.setCursor(0,0); 
lcd.print(F("Becken1: "));
displayTemperature(Probe01);

lcd.setCursor(0,1); 
lcd.print(F("Becken2: "));
displayTemperature(Probe02);

 lcd.setCursor(0,4);
  lcd.print(rtc.getTimeStr());
  

// lcd.setCursor(0,2); 
// lcd.print("3: ");
// displayTemperature(Probe03);

// lcd.setCursor(0,3); 
// lcd.print("4: ");
// displayTemperature(Probe04);

}

}


void displayTemperature(DeviceAddress deviceAddress)
{

float tempC = sensors.getTempC(deviceAddress);

if (tempC == -127.00) 
{
lcd.print("Temperature Error");
}
else
{
lcd.print("C=");
lcd.print(tempC);

}
}

Wasn das für ne kommische if-Anweisung?

  if(t.hour, DEC==8){
    digitalWrite(relay3,HIGH);
    digitalWrite(rgb2r,HIGH);
  }else if(t.hour, DEC==13){
    digitalWrite(relay3,LOW);
  }else if(t.hour, DEC==15){
    digitalWrite(relay3,HIGH);
  }else if(t.hour, DEC==20){
    digitalWrite(relay3,LOW);
  }

Sollte das nicht

if(t.hour == 8)

heißen?
,DEC wäre mir nur bei print Ausgaben bekannt. Zumal deine Zeiten sowieso im Dezimal gespeichert werden.

Ja das mit dem dec hab ich auch gerade gesehen :wink:
Wie müsste das dann heißen wenn er von 08:00 - 13:00 schalten soll?

Von 8:00 bis 12:59:59 ist das Relais dann geschaltet.

if(t.hour >= 8 && t.hour <13) 
{ 
   digitalWrite(relay3,HIGH);
    digitalWrite(rgb2r,HIGH);
}
else 
{
   digitalWrite(relay3,LOW);
    digitalWrite(rgb2r,LOW);
}

Ok also wie ich mir gedacht habe. Danke

Eine Erklärung warum der immer die Uhrzeit wechselt?

Wenn nur zur vollen Stunde gewechselt werden soll dann kannst Du das so machen ansonsten ist es bessere Stunden Minuten und Sekunden auf Sekunden umzurechnen und die Kontrollen mit den Sekunden zu machen.
Grüße Uwe

Deshalb hab ichs auch vereinfacht und auf die 1 Sekunde verzichtet :wink:

Wenn du Zeiten wie 8:54:12 - 13:12:49 nutzen willst, solltest du dir Uwes Vorschlag verinnerlichen!

timetotal = t.hour * 3600 + t.minute * 60 + t.second. Hier geht aber auch nicht tagesübergreifend. Da entweder mit einer zusätzlichen Variable für den Tag arbeiten oder direkt UNIX Timestamp nutzten.

Ne will nur zu vollen Stunden.
Und ob es nun 7:50 angeht oder 8:10 ist auch egal :wink:
Ist für mein Aquarium. So genau muss das nicht sein.
Allerdings verstehe ich eben die Sprünge der Uhrzeit nicht.
Wie gesagt, etwa alle 10 Sec springt er von 4 Uhr auf 8 Uhr und zurück.
Zählt dabei aber jede Uhrzeit weiter.
Also in etwa 08:00:00 - 04:00:00 - 08:00:20 - 04:00:40 - 08:01:00 - 04:01:20 usw.

Dazu mal parallel.
Die Anzeige ist ja so das sie alle 2 sec aktualisiert. Hierbei blinkt das Display auf. Also zahlen und Buchstaben. Licht ist immer an.
Ist aus optischen Gründen bisschen lästig.
Kann man was dagegen tuen?

lcd.clear(); 
lcd.home();
lcd.backlight();

Braucht keiner! Kannst dir abgewöhnen, das zu nutzen. Höchstens in der Setup. Überschreibe das Display einfach mit den aktuellen Werten.

Hier mal ein Video wie es jetzt aussieht...
Die RGB sollte eigentlich dauer rot leuchten. Das blau ist aus einer anderen Zeile und i.O.
Auch das hin und herspringen der Zeit ist nicht gewollt....
Jemand eine idee?

Video

Der aktuelle Code:

#include <OneWire.h>
#include <AFMotor.h>


#include <DallasTemperature.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h> 
#include <DS1302.h>


#define ONE_WIRE_BUS 52 


OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// DS1302:  CE pin    -> Arduino Digital 31
//          I/O pin   -> Arduino Digital 33
//          SCLK pin  -> Arduino Digital 35
DS1302 rtc(31, 33, 35);

Time t;

DeviceAddress Probe02 = { 0x28, 0xFF, 0x1B, 0x4B, 0x2E, 0x04, 0x00, 0x6B }; //1
DeviceAddress Probe01 = { 0x28, 0xFF, 0x1F, 0x76, 0x2B, 0x04, 0x00, 0x94 }; //2
//DeviceAddress Probe03 = { 0x28, 0x9A, 0x80, 0x40, 0x04, 0x00, 0x00, 0xD5 }; //3
//DeviceAddress Probe04 = { 0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9 };//4

int rgb1r=30; // Hier die richtigen Pins eintragen
int rgb1g=32;
int rgb1b=34;
int rgb2r=36;
int rgb2g=38;
int rgb2b=40;



int relay1=37;
int relay2=39;
int relay3=41;


float Temperatur = 24.0; 
long previousMillis = 800;
long interval = 800; 

AF_DCMotor Fan1(1, MOTOR12_64KHZ);
AF_DCMotor Fan2(2, MOTOR12_64KHZ);


void setup() 
{

  Fan1.setSpeed(255);
  Fan2.setSpeed(200);
  
  
sensors.begin();

sensors.setResolution(Probe01, 10);
sensors.setResolution(Probe02, 10);
// sensors.setResolution(Probe03, 10);
// sensors.setResolution(Probe04, 10);



rtc.halt(false);
  rtc.writeProtect(false);
  
  
 // The following lines can be commented out to use the values already stored in the DS1302
//  rtc.setDOW(FRIDAY);        // Set Day-of-Week to FRIDAY
//  rtc.setTime(07, 59, 50);     // Set the time to 12:00:00 (24hr format)
//  rtc.setDate(25, 8, 2014);   // Set the date to August 6th, 2010


pinMode(rgb1r, OUTPUT); 
pinMode(rgb1g, OUTPUT); 
pinMode(rgb1b, OUTPUT); 
pinMode(rgb2r, OUTPUT);
pinMode(rgb2g, OUTPUT); 
pinMode(rgb2b, OUTPUT); 


pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);


lcd.begin (20,4); 
lcd.backlight();
}


void loop() 
{
sensors.requestTemperatures(); 
t = rtc.getTime();

if(sensors.getTempC(Probe01)>Temperatur+1){
Fan1.run(FORWARD);
digitalWrite(relay1,LOW);
digitalWrite(rgb1r,HIGH);
digitalWrite(rgb1g,LOW);
digitalWrite(rgb1b,LOW);
}else if(sensors.getTempC(Probe01)<Temperatur-4){
digitalWrite(relay1,HIGH);  
digitalWrite(rgb1b,HIGH);
digitalWrite(rgb1g,LOW);
digitalWrite(rgb1r,LOW);
}else if(sensors.getTempC(Probe01)==Temperatur){
Fan1.run(RELEASE);
digitalWrite(relay1,LOW);
digitalWrite(rgb1b,LOW);
digitalWrite(rgb1g,HIGH);
digitalWrite(rgb1r,LOW);

}else{
digitalWrite(relay1,LOW);
digitalWrite(rgb1g,HIGH);
digitalWrite(rgb1r,LOW);
digitalWrite(rgb1b,LOW);
}
if(sensors.getTempC(Probe02)>Temperatur+1){
Fan2.run(FORWARD);
digitalWrite(relay2,LOW);
digitalWrite(rgb2r,HIGH);
digitalWrite(rgb2g,LOW);
digitalWrite(rgb2b,LOW);
}else if(sensors.getTempC(Probe02)<Temperatur-4){
Fan2.run(RELEASE);
digitalWrite(relay2,HIGH);
digitalWrite(rgb2b,HIGH);
digitalWrite(rgb2g,LOW);
digitalWrite(rgb2r,LOW);
}else if(sensors.getTempC(Probe01)==Temperatur){
Fan1.run(RELEASE);
digitalWrite(relay2,LOW);
digitalWrite(rgb1b,LOW);
digitalWrite(rgb1g,HIGH);
digitalWrite(rgb1r,LOW);
}else{

digitalWrite(relay2,LOW);
digitalWrite(rgb2g,HIGH);
digitalWrite(rgb2r,LOW);
digitalWrite(rgb2b,LOW);
}

  if(t.hour >=8 && t.hour <13){
    digitalWrite(relay3,HIGH);
    digitalWrite(rgb2r,HIGH);
  }else if(t.hour >=13 && t.hour <15){
    digitalWrite(relay3,LOW);
  }else if(t.hour >=15 && t.hour <20){
    digitalWrite(relay3,HIGH);
  }else if(t.hour >=20 && t.hour <8){
    digitalWrite(relay3,LOW);
  }
  
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis; 
//lcd.clear(); 
//lcd.home();
//lcd.backlight(); 

lcd.setCursor(0,0); 
lcd.print(F("Becken1: "));
displayTemperature(Probe01);

lcd.setCursor(0,1); 
lcd.print(F("Becken2: "));
displayTemperature(Probe02);

 lcd.setCursor(0,3);
  //lcd.print(t.hour, DEC);
  //lcd.print(":");
  //lcd.print(t.min, DEC);
  //lcd.print(":");
  //lcd.print(t.sec, DEC);
 lcd.print(rtc.getTimeStr());
  

// lcd.setCursor(0,2); 
// lcd.print("3: ");
// displayTemperature(Probe03);

// lcd.setCursor(0,3); 
// lcd.print("4: ");
// displayTemperature(Probe04);

}

}


void displayTemperature(DeviceAddress deviceAddress)
{

float tempC = sensors.getTempC(deviceAddress);

if (tempC == -127.00) 
{
lcd.print("Temperature Error");
}
else
{
lcd.print("C=");
lcd.print(tempC);

}
}

ich sehe:

lcd.setCursor(0,3);
  //lcd.print(t.hour, DEC);
  //lcd.print(":");
  //lcd.print(t.min, DEC);
  //lcd.print(":");
  //lcd.print(t.sec, DEC);
 lcd.print(rtc.getTimeStr());

Kriegst du die gleichen Sprünge bei beiden Varianten der Anzeige ?
Nur um 8 Uhr oder auch zu anderen Zeiten, mit der gleichen Differenz? ( Was wird z.B. aus 15:xx:xx )
Was passiert mit einem reinen DS1302 Testprogramm ?

Hallo,
"Was passiert mit einem reinen DS1302 Testprogramm"
Das würde ich wohl auch erst einmal probieren. Nehme mal nur einen neuen Sketch mit dem
allernötigsten für die Uhr.
Dann gibst Du nicht auf seriellen Monitor aus, sondern auf das Display.
Das könn-te ein Verdrahtungsfehler sein.
Gruß und Spaß
Andreas

also mit dem beispiel Programm sieht es genauso aus...
Hier mal die Daten vom Serial:

Tuesday 03.04.2008 -- 09:00:00
Friday 06.08.2010 -- 12:00:01
Monday 01.42.2004 -- 04:00:00
Friday 06.08.2010 -- 12:00:03
Tuesday 03.04.2008 -- 09:00:02
Friday 06.08.2010 -- 12:00:05
Monday 01.42.2004 -- 04:00:01
Friday 06.08.2010 -- 12:00:07
Tuesday 03.04.2008 -- 09:00:04
Friday 06.08.2010 -- 12:00:09
Tuesday 03.04.2008 -- 09:00:08
Friday 06.08.2010 -- 12:00:11
Monday 01.42.2004 -- 04:00:04
Friday 06.08.2010 -- 12:00:13
Tuesday 03.04.2008 -- 09:00:10
Friday 06.08.2010 -- 12:00:15
Monday 01.42.2004 -- 04:00:05
Friday 06.08.2010 -- 12:00:17
Tuesday 03.04.2008 -- 09:00:12
Friday 06.08.2010 -- 12:00:19
Tuesday 03.04.2008 -- 09:00:10
Friday 06.08.2010 -- 12:00:21
Monday 01.42.2004 -- 04:00:08
Friday 06.08.2010 -- 12:00:23
Tuesday 03.04.2008 -- 09:00:12
Friday 06.08.2010 -- 12:00:25
Monday 01.42.2004 -- 04:00:09
Friday 06.08.2010 -- 12:00:27
Tuesday 03.04.2008 -- 09:00:14
Friday 06.08.2010 -- 12:00:29
Tuesday 03.04.2008 -- 09:00:18
Friday 06.08.2010 -- 12:00:31
Monday 01.42.2004 -- 04:00:12
Friday 06.08.2010 -- 12:00:33
Tuesday 03.04.2008 -- 09:00:20
Friday 06.08.2010 -- 12:00:35
Monday 01.42.2004 -- 04:00:13
Friday 06.08.2010 -- 12:00:37
Tuesday 03.04.2008 -- 09:00:22
Friday 06.08.2010 -- 12:00:39
Tuesday 03.04.2008 -- 09:00:20
Friday 06.08.2010 -- 12:00:41
Monday 01.42.2004 -- 04:00:10
Friday 06.08.2010 -- 12:00:43
Tuesday 03.04.2008 -- 09:00:22
Friday 06.08.2010 -- 12:00:45
Monday 01.42.2004 -- 04:00:11
Friday 06.08.2010 -- 12:00:47
Tuesday 03.04.2008 -- 09:00:24
Friday 06.08.2010 -- 12:00:49
Tuesday 03.04.2008 -- 09:00:28
Friday 06.08.2010 -- 12:00:51
Monday 01.42.2004 -- 04:00:14
Friday 06.08.2010 -- 12:00:53
Tuesday 03.04.2008 -- 09:00:30
Friday 06.08.2010 -- 12:00:55
Monday 01.42.2004 -- 04:00:15
Friday 06.08.2010 -- 12:00:57
Tuesday 03.04.2008 -- 09:00:32
Friday 06.08.2010 -- 12:00:59
Tuesday 03.04.2008 -- 09:00:00
Friday 06.08.2010 -- 12:01:01
Monday 01.42.2004 -- 04:00:40
Friday 06.08.2010 -- 12:01:03
Tuesday 03.04.2008 -- 09:00:02
Friday 06.08.2010 -- 12:01:05
Monday 01.42.2004 -- 04:00:41
Friday 06.08.2010 -- 12:01:07
Tuesday 03.04.2008 -- 09:00:04
Friday 06.08.2010 -- 12:01:09
Tuesday 03.04.2008 -- 09:00:08
Friday 06.08.2010 -- 12:01:11
Monday 01.42.2004 -- 04:00:44
Friday 06.08.2010 -- 12:01:13
Tuesday 03.04.2008 -- 09:00:10
Friday 06.08.2010 -- 12:01:15
Monday 01.42.2004 -- 04:00:45
Friday 06.08.2010 -- 12:01:17
Tuesday 03.04.2008 -- 09:00:12
Friday 06.08.2010 -- 12:01:19
Tuesday 03.04.2008 -- 09:00:10
Friday 06.08.2010 -- 12:01:21

und hier der Code:

// DS1302_Serial_Easy (C)2010 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// A quick demo of how to use my DS1302-library to 
// quickly send time and date information over a serial link
//
// I assume you know how to connect the DS1302.
// DS1302:  CE pin    -> Arduino Digital 2
//          I/O pin   -> Arduino Digital 3
//          SCLK pin  -> Arduino Digital 4

#include <DS1302.h>

// Init the DS1302
DS1302 rtc(31, 33, 35);

void setup()
{
  // Set the clock to run-mode, and disable the write protection
  rtc.halt(false);
  rtc.writeProtect(false);
  
  // Setup Serial connection
  Serial.begin(9600);

  // The following lines can be commented out to use the values already stored in the DS1302
  rtc.setDOW(FRIDAY);        // Set Day-of-Week to FRIDAY
  rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(6, 8, 2010);   // Set the date to August 6th, 2010
}

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating :)
  delay (1000);
}

Hallo,
probiere das einmal:
http://playground.arduino.cc/Main/DS1302

Der Sketch läuft, benutzt aber, glaube ich andere Pin´s
// Set your own pins with these defines !
#define DS1302_SCLK_PIN 6 // Arduino pin for the Serial Clock
#define DS1302_IO_PIN 7 // Arduino pin for the Data I/O
#define DS1302_CE_PIN 8 // Arduino pin for the Chip Enable
Gruß und Glück
Andreas

ok der scheint zu funktionieren....
Ohhh wehhh den bei mir einbinden :wink:
blick den ja nicht mal so...

Dann vielleicht erst mit einfachen Basics anfangen und nach einem Buch etwas abarbeiten. Einfacher als der Sketch von Andreas geht es schon eigentlich nicht.

einfacher geht es nicht?
der code ist so lang das ich ihn nichtmal posten kann...

http://playground.arduino.cc/Main/DS1302?action=sourceblock&num=1

Hallo,
also Deine "Uhr" funktioniert?
Dieser Sketch ist "zu Fuss programmiert" alles drin, alles dran.
Vorteil, keine Lib- über diesen Vorteil kann man streiten.

Diese Lib:
http://playground.arduino.cc/Code/Time
finde ich ziemlich gut. Ich weiß aber nicht, ob die mit Deiner Uhr läuft.

Lösche aus Deinem Arduino-Ordner mal alles, was mit der Uhr zu tun hat-
Sketche, lib´s u.a.
Dann installiere die einfach mal und probiere die Beispiele,
wenn Du Glück hast…
Achte auf die Pin´s!
Sonst mußt Du Dir ne´andere Lib suchen
Gruß und Spaß
Andreas

SkobyMobil:
Diese Lib:
Arduino Playground - HomePage
finde ich ziemlich gut. Ich weiß aber nicht, ob die mit Deiner Uhr läuft.

Das ist keine RTC Lib an sich!

Die Time Library zählt lokal die Zeit und synchronisiert sich ab und an mit einem Zeitgeber. Dazu braucht man noch eine extra RTC Lib. Und zwar eine die die Zeit als Unix-Zeit liefert. Das löst also das Problem nicht.

Hallo,
vielleicht das:
http://playground.arduino.cc/Main/DS1302RTC
Jetzt ist aber Schluss hier.
Gruß und Spaß
Andreas