Un module RTC (Real Time Clock ou horloge temps réel) permet de fournir à l'Arduino une date / heure, sauvegardée via une pile bouton.
Ayant acheté diverses petites choses avec mon premier Arduino, je possède un module de type DS1302, mais celui pour lequel on trouve le plus d'informations est le DS1307 et je me suis donc aperçu qu'il en existait... une belle variété !
Voici donc un rapide tour d'horizon avec quelques explications pour s'y retrouver !
Le plus courant = le DS1307 :
Omniprésent sur le net, on le trouve pour 1€ sur eBay et plein d'informations pour l'utiliser.
La bibliothèque la plus courante pour l'utiliser avec Arduino et la DS1307RTC, directement accessible via le gestionnaire de bibliothèque d'Arduino (Menu "Croquis > Inclure une bilbliothèque > Gérer les bibliothèques")
Il utilise une interface à 2 fils dite i2C.
NB : là encore, rien d'indiqué sur les bornes de l'Arduino Nano, mais il sagit des pins suivants :
SCL = A5
SDA = A4
Bien que très courant, ce module est considéré comme peu précis, avec une dérive non négligeable de son horloge dans le temps.
Enfin, il fonctionne en 5V, et ne conviendra pas pour une carte ne fournissant que du 3,3V.
Le plus... vieux ? = le DS1302 :
Et oui, je me retrouve apparemment avec un vieux tromblon ! Bon, pas "si" vieux, puisqu'il remplace lui-même le DS1202 ! ;o)
Il se trouve encore facilement sur le net, pour quelques €.
La principale bibliothèque Arduino pour s'en servir est celle de Henning Karlsen, nommée DS1302, que l'on trouve sur le site Rinky-Dink Electronics.
Mais on en trouve une version dérivée, nommée DS1302RTC et qui utilise alors la même syntaxe que la DS1307RTC, sur le site Arduino.
Il utilise une interface... bâtarde apparemment, sur 3 fils, parfois appelée à tort SPI.
NB : les pins à utiliser seront définies par programmation, puisqu'on n'utilise pas un bus de transmission standard.
Là encore, ce module est jugé comme peu précis, avec une dérive de son horloge dans le temps.
Il fonctionne par contre aussi bien en 3,3V qu'en 5V.
Et enfin, il permet de recharger la pile intégrée, sans pour autant l'abimer s'il s'agit d'une pile non rechargeable (Lithium typiquement).
Celui du moment = le DS3231 :
On le trouve, là encore, pour quelques € sur le net, et il semble vouloir détrôner le DS1307.
Il existe un foule de librairies Arduino, directement accessibles via le gestionnaire de bibliothèques.
Il utilise une interface i2C.
Il est très précis.
Il dispose aussi de 2 alarmes quotidiennes et d'un capteur de température (à priori peu précis pour servir de thermomètre à part entière : il sert normalement juste à gérer la bonne santé de la puce !)
Et tous les autres ! :
Et oui, il en existe encore bien d'autres :
-> le DS3232 = le DS3231 + de la SRAM,
-> le DS1338 = comme le DS1307, mais en 3,3V
-> le DS3234 = avec 2 alarmes et de la SRAM
Et je ne suis sans doute pas exhaustif !!!