DS1307 Anfängerprobleme

Hallo,

Ich möchte den DS1307 in einer Uhr verbauen.

1.Frage dazu:
ist der DS1307 überhaupt genau, wie viel Abweichung hat er pro Jahr bei Raumtemperatur (18-23°C)?

  1. Welche Library soll ich dafür verwenden? ich versuchte es mit folgenden Code aber mir fehlt WProgram.h, Wo bekomme ich alle Librarys fürs Auslesen her?
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h> // written by  mattt on the Arduino forum and modified by D. Sjunnesson

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

  RTC.stop();
  RTC.set(DS1307_SEC,1);        //set the seconds
  RTC.set(DS1307_MIN,23);     //set the minutes
  RTC.set(DS1307_HR,12);       //set the hours
  RTC.set(DS1307_DOW,4);       //set the day of the week
  RTC.set(DS1307_DATE,5);       //set the date
  RTC.set(DS1307_MTH,3);        //set the month
  RTC.set(DS1307_YR,9);         //set the year
  RTC.start();

}

void loop()
{

  Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
  Serial.print(":");
  Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
  Serial.print(":");
  Serial.print(RTC.get(DS1307_SEC,false));//read seconds
  Serial.print("      ");                 // some space for a more happy life
  Serial.print(RTC.get(DS1307_DATE,false));//read date
  Serial.print("/");
  Serial.print(RTC.get(DS1307_MTH,false));//read month
  Serial.print("/");
  Serial.print(RTC.get(DS1307_YR,false)); //read year 
  Serial.println();

  delay(1000);

}

Danke!

Mit freundlichen Grüßen
Bernhard

Hallo Bernhard, ich bin auch noch ein neu Einsteiger in Sachen Arduino, versuchte aber sofort von Anfang an eine genaue Uhrzeit im Arduino zu bekommen. Ich habe mittlerweile 3 Ds1307 verbraucht , alle sehr ungenau, gingen in sehr kurzer Zeit mehrere Sekunden vor bzw, nach. Jetzt habe ich seit 2 Monate eine Ds 3231 im Dauerbetrieb läuft immer noch auf die Sekunde genau. Eine zweite Ds3231 benutze für Testzwecke, auch die geht immer noch genau. Als Lib, benutze ich die DS1307new bzw. die RTClib von Github. Gruß Heinz

WProgram.h gab's bis IDE 0023. Ab IDE 1.0.0 heißt die Bibliothek Arduino.h einfach austauschen im Sketch. Zu entschuldigung des DS1307 ist zu sagen daß die 32kHz Quarze mit 2 Kapazitäten gefertigt werden und wenn man den falschn Quarz nimmt der DS1307 sehr viel ungenauer ist. Der Hersteller der Platine könnte den falschen Quarz verwendet haben Grüße Uwe

Meine DS1307 geht anscheinend viel genauer als alle anderen. Geht jetzt in vielleicht 1 1/2 Monaten 30 Sekunden nach. Bei meiner Anwendung ist das ok.

Wenn du was genaues willst, ist die DS3231 aber wirklich deutlich besser.

Ich habe mehrere DS1307 Module und fürchte, ich China gibt es irgendwo eine große Kiste mit 32768kHz Quarzen, die zwar schwingen, aber die üblichen 20 ppm nicht erfüllen. Wer also billigste DS1307 Module baut, bedient sich dort und spart 2 ct in den Herstellungskosten...

Für Anwendungen, die alle halbe Jahre (Sommer/Winter) die Zeit neu einstellen und wo es bis dahin auf ein paar Minuten nicht so ankommt (z.B. AquariumsBeleuchtung mit Sonnenuntergangsprogramm) , passt ein ordentlicher DS1307 hervorragend. (20 ppm = 2 sec/Tag). Einer meiner Module ist deutlich besser, andere schlechter.

Die DS3231 verspricht immerhin +- 2 ppm ( ~ 5 sec/Monat ) bei moderaten Umweltbedingungen.

Wenn du in sec/Jahr rechnest, solltest du evtl. eine DS1307 nur als Backup eines DCF77 Funkuhr-Moduls oder einer anderen externen Quelle in Betracht ziehen. Eine RTC liefert immerhin die aktuelle Zeit innerhalb der ersten Sekunde nach dem Einschalten (DCF77 braucht im optimalen Fall 2 Minuten).

Die 5s/Monat bei der 3231 kommen hin, so in der Gegend bewegt sich meine. Allerdings: mitunter verliert sie ihre Zeit komplett, wenn man ihr den Saft abzieht (Dino stromlos machen, die Batterie bleibt natürlich drin dabei). Zum Teil bleibt sie dann auch einfach stehen und läuft beim wieder Einbauen einfach weiter- hatte ich beides schon mehrmals.

Ist deine Batterie den noch funktionstüchtig? Habe mit meinem DS3231 noch keine Probleme gehabt. Habe hier die Variante mit der 3V Lithiumbatterie. Habe mir aber Bauform bedingt nun 2 mit den Supercap Kondensatoren bestellt. Der DS1307 ging bei mir "garnicht". Er funktionierte zwar, aber für eine Anzeige auf einem Display viel zu ungenau, vorallem wenn man Sekunden mit ausgibt. Wie Serenfly aber sagte, für eine Aquariensteuerung und als Zeitschaltuhr (zum Weihnachtsbeleuchtung) vollkommen ausreichend. Bin gerade dabei, mir das Material für eigenes Shield zusammenzubestellen. Fotopositivbeschichtete Platinen etc sind schon da. Muss mir nur um den Schaltplan noch gedanken machen. Das Shield soll später alle Pins mit Arduino Pro Mini führen, sprich es wird auf oder unter dem Arduino angebracht. Lediglich A4/A5 werden anders herausgeführt, da ich diese dann sowieso nur noch als I2C Bus nutzen kann. Gibt ja leider keinerlei nützliche Shields für den Pro Mini. Verbunden wird das Shield dann mit Swiss Machine Pins, da diese doch relativ geringe Bauhöhen aufweisen. Puffern übernimmt ebenfalls dann nur noch die SuperCap. In den meisten Anwendungen ist die Verwendung von den 3V Batterien übertrieben. 1-2 Tage würden mir als Puffer voll ausreichen.

Sollte es mit dem Shield erfolgreich klappen, werde ich mir auch ein paar Exemplare bei Fritzing davon ordern lassen. Selber verzinnen, Lötstopplack und Doppelseitig ist auf dauer aufwendig, und eine Möglichkeit, einen "Druck" aufzutragen ist mir auch nicht bekannt. Platztechnisch geht es nicht, einfach Kupfer in Form von Buchstaben stehen zu lassen.

Hallo, DIE- habe ich mich geleistet. Abweichung im 8 Tagen = 0 (null) Sekunden

technisch allerbestens verarbeitet http://docs.macetech.com/doku.php/chronodot

hier gibt es sie zu kaufen: http://www.exp-tech.de/Shields/ChronoDot-Ultra-precise-Real-Time-Clock-v2-1.html

hier gibt es sehr gute Info: http://www.pjrc.com/teensy/td_libs_DS1307RTC.html

da müßt Ihr euch einmal durchklicken: Dann läuft das ohne Probleme… Gruß und Spaß dabei Andreas

Gibt es auch billiger und muss auch nicht gleich China sein:

http://www.ebay.de/itm/DS3231-AT24C32-IIC-Real-Time-Clock-Memory-Modul-RTC-fur-Arduino-AVR-UNO-ARM-PIC-/281140941523?pt=Bauteile&hash=item41754e52d3

Für unter 5 Euro aus Großbritannien

In GB ist das auch nur nen Zwischenhändler. Wenn die Preise, wie es meist ist, passen, dann bestellt ich da, denn die sie dann meist in 4-5 Tagen da.

Danke für die ganzen Antworten.

Ich möchte eine LED Wanduhr bauen, wahrscheinlich ist dafür der DS1307 eh zu ungenau.

Hat jemand schon Erfahrung mit einem DCF77 Modul (Links befinden unten) gemacht? Denn dort müsste man nicht einmal Sommer-Winterzeit ändern und dieses ist auch genau.

oder was könnt ihr mir empfehlen?

Mit freundlichen Grüßen
Bernhard

Jurs hatte sich mit den teilen schon näher auseinander gesetzt, glaub ich. Problem ist, dass es im Haus relativ problematisch ist.

https://www.dropbox.com/s/swu0bqhj3n1ucfo/2013-10-09%2022.23.05.mp4 Ist schon ein etwas überholtest Model, aber hier habe ich auf eine DS3231 eingebaut, vollkommen ausreichend. Sommer und Winterzeit könntest du im Sketch festlegen für die nächsten Jahre.