Les modules RTC permettent d'ajouter une notion de temps à vos réalisations.Leurs mises en oeuvre est simple.
Nous allons aborder 2 modules , le DS1302 et DS1307. Naïvement j'avais commander ces 2 modules pensant pouvoir les interchanger entre mes différents montages.C'était sans savoir que le DS1302 fonctionne avec un bus SPI(Serial Peripheral Interface) et le DS1307 avec un bus I2C(Inter-Integrated Circuit).La est toute la difference et la mise en oeuvre ainsi que le cablage diffère.
Module DS | 1307(Bus I2C) |
Module DS 1302(Bus SPI) |
- Module DS3231
Je rajoute un module qui est le DS3231(fonctionne en BUS I2C).L'avantage de ce module est de pouvoir gérer 2 alarmes programmable.
Lien pour la librairie : Lien Officiel - Téléchargement local
L'installation de la librairie est classique pour arduino
- Code pour mettre à l'heure le module :
#include <Wire.h> RTClib RTC; void setup () { void loop () {
|
- Configuration de l'alarme 1
Ce programme permet de de programmer le RTC DS3231 pour générer l'alarme1 toutes les minutes lorsque les secondes affiche 5.La sortie SQW du RTC passe à l'état bas lors de l'alarme.Cela eteinds la led 13 de l'arduino.
#include <Wire.h> RTClib RTC; void setup () { void loop () { } |
- Explication setA1Time
setA1Time(byte A1Day, byte A1Hour, byte A1Minute, byte A1Second, byte AlarmBits, bool A1Dy, bool A1h12, bool A1PM);
byte AlarmBits sets the behavior of the alarms: | |||||
Dy | A1M4 | A1M3 | A1M2 | A1M1 | Rate |
X | 1 | 1 | 1 | 1 | Once per second |
X | 1 | 1 | 1 | 0 | Alarm when seconds match |
X | 1 | 1 | 0 | 0 | Alarm when min, sec match |
X | 1 | 0 | 0 | 0 | Alarm when hour, min, sec match |
0 | 0 | 0 | 0 | 0 | Alarm when date, h, m, s match |
1 | 0 | 0 | 0 | 0 | Alarm when DoW, h, m, s match |
bool A1Dy :A1Dy true signifie l'alarm sera on A1Day = Day of Week (jours de la semaine 1 à 7)
A1Dy false signifie l'alarm sera on A1Day = Date of month(date du mois)
bool A1h12 : 12/24h mode. True est 12h, false est 24h.
bool A1PM : Affiche le flag AM/PM (true)/N'affiche pas le flag AM/PM(false)