Hallo,
Ich habe mir eine RTC (DS1307) besorgt. Ich habe vor damit eine Uhr zu
bauen.
Auf diser Seite (http://pc-rentner.de/index.php/rtc-mit-ds1307) habe ich
nach langen suchen eine Lösung gefunden und natürlich gleich
ausprobiert. Funktioniert aber doch nicht. Im Serial Monitor wird immer
nur "165/165/165 45:165:165" angezeigt. Habt ihr eine Idee was ich
falsch gemacht haben könnte?
Du solltest ein/e gültige/s Datum Zeit reinschreiben, im Code ist das
auskommentiert. Dann sieht man gleich ob was Vernünftiges zurückkommt,
auch wird das CH-Bit dabei gelöscht, was die RTC erst zum Gang
motiviert.
Photo vom Aufbau?
165 ist der Wert, der sich ergibt wenn man 0xFF der bcdToDec Umwandlung
unterzieht. d.h. am Eingangspin liest der 1-Wire Code lauter 1-er ein.
So VCC steckt wieder, ich hatte es wahrscheinlich vergessen weil ich es
zwischendurch neu auf gebaut habe. Zumindest funktioniert es immer noch
nicht :(
Ansonsten gibt es unter http://www.adafruit.com/products/264 ein
Breakout Board dafür. Mit Arduino Code.Damit gings bei mir in ein paar
Minuten (haben auch eagle-dateien irgendwo auf dem Server)
Gruß
Christoph
Max H. schrieb:> Sebastian Hennig schrieb:>> Hier ist der Aufbau:> Vcc (Pin 8) nicht angeschlossen, Vbat auf GND (ka. ob der IC das mag).
Laut Datenblatt ist das ok.
Da steht explizit drinnen, dass man VBat auf GND legen soll, wenn man
keine Batterie anschliest.
Das ist es also nicht.
Im Moment frage ich mich ob am Arduino A0 und A1 die richtigen
Anschlüsse für I2C sind.
Karl Heinz schrieb:> Im Moment frage ich mich ob am Arduino A0 und A1 die richtigen> Anschlüsse für I2C sind.
Hmm. Was ist das überhaupt für ein Arduino?
Laut
http://arduino.cc/de/Reference/Wire
gibt es keinen, bei dem die I2C Anschlüsse auf A0 bzw. A1 liegen würden.
Edit: Und auch auf dem im Eröffnungsposting abgebildeten Aufbau gehen
die beiden Leitungen ganz woanders hin.
So wie ich das sehen liegt da einiges im argen die DS 1307 wird ja
bekanntlich per I2C angesprochen und das heist du kannst dir die pins an
denen du SCL und SDA anschließt NICHT aussuchen, die müssen schon an SDA
und SCL was sie laut bild defenitiv nicht sind.
Board I2C / TWI pins
Uno, Ethernet A4 (SDA), A5 (SCL)
Mega2560 20 (SDA), 21 (SCL)
Leonardo 2 (SDA), 3 (SCL)
Due 20 (SDA), 21 (SCL), SDA1, SCL1
Gruß
Hoffe geholfen zu haben
@Sebastian,
1) man sollte auch irgendwo die Geschwindigkeit für die I2C
Schnittstelle einstellen
2) sicher das die Angabe der Deviceadresse des 1307 so richtig ist? In
der Bitposition wie dann die Ausgabe erfolgt lautet die 0xD0! Dein Wert
sind nur die oberen 7Bit.
Sascha
Falls an der Adresse Zweifel bestehen (und A0/A1 sind definitiv nicht
die richtigen Pins): Es gibt eine fertige Adress-Scanner Sketch, die
kann man mal drüber laufen lassen.
Sascha Weber schrieb:> 2) sicher das die Angabe der Deviceadresse des 1307 so richtig ist?
Ist laut Datenblatt und Arduino Doku richtig.
Die Arduino Klasse will die 7-Bit Adresse unverschoben haben.
Im Moment seh ich eigentlich nur die falschen SDA und SCL Verbindungen.
Da hat es wohl nicht ganz mit dem Umdenken bei der Übernahme von der
Vorlage aus dem geposteten Link geklappt, bei dem der Ardunio um 180°
gedreht da liegt.
Schleby na schrieb:> Leonardo 2 (SDA), 3 (SCL)
Ich habe jetzt SDA und SCL angeschlossen. Es ist aber immer noch falsch,
jetzt habe die Version mit adfruit genommen und es zeigt das hier an:
2165/165/165 165:165:85
since 1970 = 2094398289s = 24240d
now + 7d + 30s: 2036/5/21 17:18:39
Aber das verändert sich halt nicht.
10kohm ist zu viel grade das wirre zeug was bei dir da ankommt ist ein
inditz dafür das was mit der kommunikation nicht stimmt nimm 1 -max 5
kohm und dann geht das.
Ich habe jetzt entdeckt das es am Leonardo liegt und nicht am code bzw.
an der Hardware. Am Leonardo gibt es extra einen pin SCL und SDA auf der
Seite mit den digitalen Ein- und Ausgängen. ich habs natürlich gleich
ausprobiert und siehe da es funktioniert :)
Schleby na schrieb:> 10kohm ist zu viel
Ist das jetzt schädlich für die RTC oder den Arduino?
Anbei noch der code und ein "Aufbau-Bild" fals jemand später den Beitrag
noch findet und das gleiche Problem hat.
EDIT: Wenn es nicht funktioniert, könnte es an Vbat liegen da müssen 3V
drauf.
Schleby na schrieb:> und was ist mit vbat hast du dan nun eine 3v zelle drann
Ich möchte mich bei allen bedanken, die mir helfen wollten (außer bei
dem troll der mich nach machen wollte).
Der RTC muß erst mal gestartet und gestellt werden. Und ohne
Backupbatterie jedesmal, ehe du das Teil nutzen kannst.
Da ist bei den Beispielsketchen was dabei, was das kann.
Die Startsequenz hat den Sinn, das ein Gerät mit Batterie die Batterie
schont, wenn die RTC noch "schläft"
Tu dir einen Gefallen und besorge dir den DS3231. Der ist wesentlich
genauer, als das Schätzeisen DS1307 und kaum teurer. Der Code ist 1:1
verwendbar. Allerdings ist der DS3231 nicht im DIL-Gehäuse erhältlich.
Dafür gibt es preiswerte, kompakte Module vom freundlichen Chinesen :-)
Gruß Gerald
Sebastian Hennig schrieb:>> Schleby na schrieb:>> 10kohm ist zu viel>> Ist das jetzt schädlich für die RTC oder den Arduino?>
Nein schädlich ist das nicht,nur wenn deine Leitungen länger wird kann
das zu problemen führen.
Aber das die SCL und SDA Pins auf der anderen Seite liegen wurde dir
auch schon gesagt.
Schleby na schrieb:
> Leonardo 2 (SDA), 3 (SCL)
sonst hätte da ja
Schleby na schrieb:
> Leonardo A2 (SDA), A3 (SCL)
gestanden.
gruß