De DS3231
Onze Arduino zelf kan geen tijd bijhouden. Wanneer het voor een project belangrijk is om de tijd te meten dan moeten we gebruik maken van een klok-module. Dit is een module met een klok en een batterij die de tijd doorstuurt naar onze Arduino. De klok-module geeft: jaar, maand, dag, uur, minuut, seconde.
We gebruiken in de klas twee types: de DS3231 en de MH-Real-Time Clock Module 2 (of DS1302).
De DS3231 clock-module wordt via I2C verbonden met onze Arduino.
De DS1302 gebruikt three-wire communicatie.
Om de klok-module te gebruiken zal je een library moeten installeren. Je kan best eerst Makuna RTC Library gebruiken (github.com/makuna/RTC). Als je die library hebt geïnstalleerd kan je bij de voorbeelden de code vinden voor de verschillende types klok-module.
Van die voorbeeldsketches kan je dan vertrekken voor je eigen projecten. Hieronder staat bij de twee klok-modules ook nog eens een sterk vereenvoudigde code die je makkelijker in je eigen projecten kan verwerken.
De batterij plaatsen: Bij beide types klok module gebruik je een platte 3V batterij (CR2032). Deze plaats je met de tekst naar boven. Je steek eerst de batterij onder het plastic boordje, daarna klik je de andere zijde vast met het metalen clipje.
De DS1302
De library installeren:
De RTC by Makuna library kan je ook installeren via het menu:
Schets > Bibliotheek gebruiken > Bibliotheek beheren
Je komt dan in het venster hiernaast. In het zoekvenster rechstboven kan je dan Makuna ingeven en daarna kan je scrollen naar 'Rtc by Makuna'. Daar klik je op 'installeren'.
De code voor de DS3231:
De DS3231 is de beste van de twee clock-modules. Over een langere periode blijft ze nauwkeuriger. In grotere projecten gaan we vooral met deze module werken.
Zoals gezegd is het een goed idee om eerst de makuna/RTC library te installeren en dan de voorbeeldsketch van jouw type klok-module te kiezen.
Je vindt die in het menu bij Bestand > Voorbeeld > RTC by Makuna
Ook de eenvoudige code 'Simple' is daar nog niet echt eenvoudig, maar het voordeel is wel dat je ze meteen kan gebruiken om je klok te testen. Bovendien moet de eerste keer dat je de clock-module gebruikt de tijd op de module nog goed gezet worden. Ook dat gaat erg vlot met deze voorbeeldcode.
De code blijft verder wel té ingewikkeld om vlot in eigen toepassingen te gaan verwerken. Daarvoor kan je de sterk vereenvoudigde code hiernaast gebruiken. Die spreekt voor zich en je kan er de data uithalen die je zelf wil gebruiken.
Hier vind je de voorbeeldcode van de Makuna Library:
De schakeling voor de DS3231:
Bij de communicatie tussen de Arduino en de DS3231 maak je gebruik van I2C. Meer info over I2C kan je vinden op de pagina over communicatie op deze site.
Het schema om de pins aan te sluiten vind je hierboven bij de afbeeldingen.
De vereenvoudigde code voor de DS3231
De DS1302
In jullie eigen Arduino-Uno box vinden jullie de DS-1302 Clock-module. Ook voor deze module kan je gebruik maken van de Makuna-library (zie link hierboven). Die library bevat voorbeeldcode voor verschillende klok-modules.
Gebruik best eerst de voorbeeldcode DS1302_Memory of DS1302_Simple, zodat de juiste datum en tijd op de klok-module worden opgeslagen. Deze voorbeeldcode vind je bij de voorbeelden van de Makuna-library.
Eens dat gebeurt is kan je gebruik maken van de vereenvoudigde voorbeeldcode hiernaast. Die is makkelijker in je eigen projecten te plaatsen.