Altijd bij de tijd met de DS1307 en DS3231 real-time clock modules

Geplaatst op
De DS1307 en DS3231 real-time clock modules zijn de ideale oplossing om altijd bij de tijd te zijn met een microcontroller. Een microcontroller zoals de Arduino kan zelf moeilijk bijhouden wat de tijd is, aangezien delays, interrupts, resets en externe factoren invloed hebben op de snelheid van de code. Om bijvoorbeeld een data-logger toch betrouwbaar te maken is een externe 'klok' noodzakelijk.
Real time clock modules Real time clock modules

Real time clock versies

De real time clock serie bevat veel verschillende typenummers met allen vergelijkbare functionaliteit. In deze serie zijn maar 2 versies 'mainstream', namelijk de DS1307 en de DS3231. Deze chips hebben beiden de mogelijkheid om een batterij aan te sluiten en hebben een sqw output pin, waarmee de controller een clockpuls van (1Hz, 1.024kHz, 4.096kHz, 8.192kHz) kan ontvangen. Ook hebben beide ic's een One-Wire interface, waardoor het mogelijk is deze over I2C aan te spreken.
Real time clock module DS1307 Real time clock module met als controller chip de DS1307. Deze module zorgt ervoor dat de arduino op ieder moment het exacte tijdstip weet. Door de arduino op de ´sqw´ pin aan te sluiten, is het mogelijk om iedere seconde een interrupt te genereren. € 3,00 Add to cart
Real time clock module DS3231 Real time clock module met de DS3231 chip. Deze module zorgt ervoor dat de arduino op ieder moment het exacte tijdstip weet. Door de arduino op de ´sqw´ pin aan te sluiten, is het mogelijk om iedere seconde een interrupt te genereren waarmee sensorwaardes of een display kan worden aangesproken. € 3,95 Add to cart

De DS1307

- Afwijking van 2 seconden per dag
- Beïnvloed door temperatuur
- Externe oscillator
- Geen alarm functie

De DS3231

- Afwijking 1 minuut per jaar
- Niet beïnvloed door temperatuur
- Interne oscillator
- 2 alarm registers

De RTC module aansluiten op de Arduino UNO

De RTC modules komen in verschillende vormen en maten, de verbinding met de Arduino is echter voor alle modules gelijk. De module moet in ieder geval gevoed worden met 5V, verder zal de I2C interface verbonden moeten worden met de SDA (Serial data) SCL (Serial clock) pinnen van de Arduino (dit zijn pinnen A4 en A5 bij de Arduino UNO). Verder kan de SQW output worden aangesloten op een willekeurige pin van de Arduino om een klokpuls van de RTC te ontvangen.

DS1307 aansluiting Arduino UNO DS1307 aansluiting Arduino UNO

BCD Code

De numerieke waardes in de RTC chips zijn in BCD formaat opgeslagen. BCD code is op hardware niveau makkelijker in gebruik dan decimale getallen, echter zijn deze codes in de software niet erg handig. De getallen van en naar de chip moeten dus gecodeerd en gedecodeerd worden zodat de controller en RTC elkaar begrijpen. 


De huidige tijd naar de RTC schrijven

De tijd hoeft maar 1 keer naar de RTC worden geschreven wanneer deze aan de batterij is verbonden. De RTC houd zelf de tijd bij en telt verder, zelfs wanneer deze niet is aangesloten aan de controller.
Hard drive clock Hard drive clock

De tijd van de RTC lezen


De tijd weergeven

Met deze functies samen kan de tijd worden bepaald door de Arduino. Met onderstaande functie word deze data naar de serial monitor geschreven, maar de mogelijkheden voor het weergeven van de tijd zijn eindeloos.

SQW frequentie instellen

Met deze code kan een complete klok worden gebouwd, welke de tijd kan weergeven. Dit kan op een 7-segment display, als analoge klok, met rooksignalen of deze kan zelfs worden uitgesproken wanneer hierom wordt gevraagd. Daarnaast kan de tijd ook worden gebruikt in de domotica / huis automatisering, koffiezetter gaat 's ochtends om 8 uur aan, de magnetron 's avonds om 17.15 en de gordijnen gaan dicht om 19.01:05. Werkelijk alles is mogelijk.
Geschreven door - OpencircuitIk ben geïnteresseerd in elektronica, programmeren en vooral de combinatie hiertussen. Voor Opencircuit schrijf ik onder andere blogs waarin ik de werking van elektronica en modules uitleg.Website


Reacties

-
Delightfully finally something I can read and understandTranslated from Dutch - view original
-
Is there a list / link with published articles?Translated from Dutch - view original
-
-
Good how-to, thank you!Translated from Dutch - view original

We would appreciate hearing your thoughts

Altijd bij de tijd met de DS1307 en DS3231 real-time clock modules
Altijd bij de tijd met de DS1307 en DS3231 real-time clock modulesClick on a star to review the product