DS1307 na nepájivém poli

Zápisník experimentátora

Hierarchy: DS1307 Hodiny reálneho času

DS1307 je integrovaný obvod s hodinami reálného času. Vyznačuje se jednoduchou konstrukcí a poměrně vysokou přesností. Dá se koupit i jako poskládaný modul, ale v tomto článku použijeme přímo integrovaný obvod, krystal a nepájivé pole.

Zapojení

Budeme potřebovat tyto součástky:

  • Arduino Uno
  • Nepájivé pole
  • DS1307
  • Krystal 32,768 kHz - Integrovaný obvod vyžaduje krystal s kapacitou 12,5 pF. Například​ tento.
  • 2x rezistor 4k7
  • Držák na baterii CR2032 i s baterií - Baterie je nutná tehdy, pokud si má obvod uchovávat čas i po vypnutí. Pokud se chcete pouze bavit s obvodem, můžete tuto část vynechat. Potom při každém zapnutí bude integrovaný obvod ukazovat stejný čas. Například​ tento.

Součástky zapojte podle následujícího schématu.

Programování

DS1307 komunikuje pomocí sběrnice​ I2C, proto jsou zapotřebí dva pull-up rezistory na pinech SCL a SDA. Komunikace s Arduino by sice fungovala i bez nich díky internímu pull-up rezistoru, ale je lepší je tam dát takto. Jejich hodnota není kritická 10k ale 4k7 budou fungovat stejně.

Na komunikaci je nejlépe využít dvě knihovny:

  • DS1307RTC - Komunikace s obvodem.
  • Time - Různé pomocné funkce pro práci s časem.

Obě knihovny se dají instalovat přímo přes Library Manager v případě, že používáte IDE 1.6.x. Komunikace s obvodem je velmi přímočará. Veškerý svůj kód můžete odvodit od dvou příkladů, které jsou přibaleny ke knihovně DS1307RTC.

  • SetTime - Příklad využijete k nastavení času v obvodu dle aktuálního času v počítači.
  • ReadTest - Příklad ukazuje pravidelné čtení času z obvodu.

Přesnost

Díky použití na nepájivém poli nebude přesnost obvodu úplně taková, jako by byla na normálním plošném poli. Plechové cestičky na nepájivém poli vykazují určitou parazitickou kapacitu, která mírně rozladit hodiny v obvodu. Ale na pokusy to stačí a víte, že přechodem na normální plošný spoj by měla přesnost stabilizovat.



Download

02.10.2017


Menu