Pages: [1] 2   Go Down
Author Topic: ds1307 - Anschließen  (Read 9155 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich habe zwar ein Anschlussbild gefunden:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1235070596

Allerdings was muss da zw pin1 und pin2?
Logged

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2313
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Steht doch da: Das ist ein Uhrenquarz mit bestimmter Frequenz (32,768 kHz).
« Last Edit: January 19, 2011, 10:20:22 am by sth77 » Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Steht doch im Text: ein Quartz mit 32768kHz.

Edit: zu langsam  :-?
« Last Edit: January 19, 2011, 10:17:25 am by MaFu » Logged

_______
Manfred

0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

lasst mich raten... es geht nicht ohne...
Logged

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Auch ein ds1307 muss sich nach einem Takt richten.
Logged

_______
Manfred

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2313
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nur zur Information: ich habe mich nämlich auch gerade mit der Tausenderpotenz vertan. Im Amerikanischen setzt man kein Komma, sondern einen Punkt. Verwechselt man schnell mit 'nem Tausenderpunkt und liegt somit schnell mal um Größenordnungen daneben...

Der Hintergrund dieser scheinbar krummen Frequenz ist folgender: Ich muss diese Frequenz nur 15mal durch zwei teilen, um einen ziemlich exakten Sekundentakt herauszubekommen. 15 Flip-Flops hintereinander und du hast 'nen genauen Sekundenzähler.

Quote
lasst mich raten... es geht nicht ohne...
Zumindest nicht für eine sinnvolle Anwendung... smiley-grin
« Last Edit: January 19, 2011, 10:25:10 am by sth77 » Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Oldenburg
Offline Offline
Sr. Member
****
Karma: 16
Posts: 270
Arduino, imagine the possibilities!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

hier mal ein Schaltbild mit dem DS1307 an meinem Arduino.



Vorsicht bei der Quarzwahl. Es es muss ein Quarz mit 12,5 pF sein, andernfalls geht die Uhr deutlich falsch.


Gruß

Sebastian
Logged

Libraries:
  - multiCameraIrControl [V1.6]
  -

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 257
Posts: 21460
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die 32.678 Quarze gibt es mit der Kapazität 12,5 und 6 pF.
ein 12,5 müßte der Richtige sein ansonsten geht die Uhr falsch (ca 20 Sekunden am Tag zu schnell)
Grüße Uwe
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Kann mir jemad sagen, warum das Beispiel nicht läuft:

Code:
#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);

}

Als Zeit kommt immer 0:0:0 0/0/2000
« Last Edit: January 19, 2011, 01:09:16 pm by hanspeter99 » Logged

Oldenburg
Offline Offline
Sr. Member
****
Karma: 16
Posts: 270
Arduino, imagine the possibilities!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ich verwende folgende Library mit Erfolg: http://www.seeedstudio.com/depot/images/product/DS1307.rar
Logged

Libraries:
  - multiCameraIrControl [V1.6]
  -

0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

ich habe es nach

http://www.scratchpad.thisandthose.org/joomla/index.php?option=com_content&view=article&id=1&Itemid=3

gemacht und es rannte.
Logged


Oldenburg
Offline Offline
Sr. Member
****
Karma: 16
Posts: 270
Arduino, imagine the possibilities!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

Hast Du schon überprüft wie genau die RTC geht? Ich habe ca. 2Sec pro Tag. Viel genauer ist wohl auch nicht möglich. Aber wie könnte eine "Trimmung" oder korrektur aussehen?


Gruß

Sebatsian
Logged

Libraries:
  - multiCameraIrControl [V1.6]
  -

0
Offline Offline
Sr. Member
****
Karma: 5
Posts: 342
A SWL life as a coder... I'll try.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Sebastian,

habe ich nicht geprüft. Kann gut sein, dass die Zeit abweicht. Ich konnte sie aber nicht mal korrekt stellen, da ich das beim ersten Kompilieren gemacht habe und seit dem ist Datum und Uhrzeit im DS. Das Setzen beim Kompilieren ist grundsätzlich nicht sekundengenau, weil man ja nie weiß wann der Code im Atmega ist und die Zeit im DS setzt... Im mir aber auch nicht so wichtig. Wenn ich's genau möchte würde ich ein DCF77 Modul zur Zeitsetzung nehmen....
Logged


CH
Offline Offline
God Member
*****
Karma: 19
Posts: 703
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Aber wie könnte eine "Trimmung" oder korrektur aussehen?
Ein paar Ideen für die Abfrage der genauen Uhrzeit:
-Webservice im Internet via Ethernet abfragen
-Abfrage NTP-Server via Ethernet
-täglicher Update via serieller Schnittstelle (Aktuelle Uhrzeit liefert PC)
-DCF77-Quelle abfragen
-Uhrzeit via GPS-Modul ermitteln
Logged

Oldenburg
Offline Offline
Sr. Member
****
Karma: 16
Posts: 270
Arduino, imagine the possibilities!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Das(2sec/Tag) sind immerhin 12Minuten pro Jahr ;-)

- Ethernet zu aufwendig/mit Kanonen auf Tauben geschossen
- serieller Abgleich leider bei einer autarken Anwendung nicht möglich
- DCF finde ich gut, man müßte die Empfangsmöglichkeinten in massiven, geschlossenen Gebäuden klären
- GPS das gleiche wie mit der Ethernet Lösung


Gruß

Sebastian
Logged

Libraries:
  - multiCameraIrControl [V1.6]
  -

Pages: [1] 2   Go Up
Jump to: