Le DS1307 est un circuit intégré d'horloge temps réel (RTC) qui, en tant que module, permet aux microcontrôleurs comme l'Arduino de garder une trace précise du temps. Contrairement à l'horloge interne d'un microcontrôleur, le DS1307 ne perd pas l'heure si l'alimentation est coupée, car il dispose d'une batterie de secours.
Caractéristiques du DS1307
Le DS1307 communique avec un microcontrôleur via une interface I2C bidirectionnelle, nécessitant seulement deux broches (SDA et SCL).
Fonctions d'horloge/calendrier : Il gère les secondes, minutes, heures, jour, date, mois et année.
Années bissextiles : Le calendrier s'ajuste automatiquement en fin de mois, et il intègre la correction pour les années bissextiles jusqu'en 2100.
Faible consommation : Sa faible consommation, environ 500 nA en mode de secours, permet à la batterie de fonctionner pendant plusieurs années.
Mémoire non volatile : Il contient également 56 octets de SRAM non volatile, accessibles par l'utilisateur pour stocker des données.
Sortie d'onde carrée : Il peut générer une sortie d'onde carrée programmable à 1 Hz, 4 kHz, 8 kHz ou 32 kHz.
Précision limitée : Un inconvénient du DS1307 est sa précision limitée. En raison des variations de température, il peut dériver jusqu'à deux secondes par jour, ce qui peut représenter une erreur d'environ un quart d'heure par an. Pour une meilleure précision, il est préférable d'utiliser le DS3231.
Différences avec d'autres modules RTC
Bien que couramment utilisé, le DS1307 a des alternatives qui peuvent être mieux adaptées à certains projets.