Il est parfois utile que votre Arduino connaisse la date et l'heure. Par exemple, l'Arduino pourrait être à la base d'un système de mesures automatisé ("datalogging") qui consignera la date et l'heure de chaque mesure, ou encore d'une tâche devant être accomplie tous les jours à la même heure (sauf la fin de semaine), etc. Comme son nom l'indique, une horloge temps réel ("Real Time Clock" ou RTC) est un circuit intégré dont la principale fonction consiste à mesurer le temps. Par exemple, il existe sur eBay des modules ("breakout") basés sur le circuit intégré DS1307 de Dallas/Maxim qui peuvent facilement être branchés à un Arduino (protocole i2c): chaque fois que l'Arduino a besoin de connaître la date ou l'heure, il n'a qu'à interroger le module RTC. Mais pourquoi, dites-vous, ne pas simplement utiliser les fonctions de mesure de temps déjà incluses dans l'Arduino? Une instruction comme millis() retourne le temps écoulé depuis le dernier démarrage de l'Arduino, mais sera réinitialisée dès le prochain démarrage. De plus, millis() atteint sa limite maximale (et retourne à zéro) au bout d'une cinquantaine de jours. Un module RTC est muni d'une petite pile qui peut durer plusieurs années (sauf le modèle que j'ai reçu, qui était muni d'une pile rechargeable LIR2032 à la place d'une CR2032: ces piles perdent leur charge en 1 mois environ...). Et leur utilisation est d'une incroyable simplicité. 4 fils suffisent pour brancher le module RTC à l'Arduino: "Sda" : Arduino A4 (analog in) "Scl": Arduino A5 (analog in) "Gnd": Arduino GND "Vcc": Arduino 5V ou 3V3 La librairie RTClib simplifie énormément la conception des sketches. La version la plus récente sur trouve ici (utilisez le bouton "ZIP" pour télécharger la totalité du dossier, que vous installez ensuite dans le répertoire "Librairies" de l'IDE Arduino). Une fois la librairie installée, ouvrez simplement l'exemple "ds1307" (menu Fichier/Exemples/rtclib/ds1307) et installez-le dans l'Arduino; ouvrez le moniteur série et réglez sa fréquence à 57600 bauds: vous verrez alors défiler la date et l'heure (suivies de quelques informations moins utiles). Un coup d'oeil sur le sketch vous indiquera comment récupérer les informations voulues (jour, mois, année, etc.). Si vous constatez que la date et l'heure retournées par votre module RTC sont incorrecte, exécutez à nouveau l'exemple "ds1307" après avoir "décommenté" la ligne "RTC.adjust(DateTime(__DATE__, __TIME__));": le ds1307 se réinitialisera en utilisant l'heure de votre ordinateur. Voici finalement un sketch permettant de construire une horloge avec un Arduino, un module RTC et un afficheur LCD. Pour la façon de brancher l'afficheur LCD à l'Arduino, je vous réfère à cette précédente rubrique. À lire également: une autre horloge à base d'Arduino, sauf que celle-ci affiche l'heure au moyen de deux galvanomètre à cadre mobile. Il existe aussi un billet concernant le modèle DS3231. Yves Pelletier (Twitter: @ElectroAmateur)