Compteur annuel avec module RTC DS1307

Bonjour à tous, je cherche une librairie ou un script qui me permettrai de réaliser l'allumage d'un voyant un an après l'appui sur un BP (même en cas de coupure de courant ou d'initialisation de la carte) Merci d'avance pour vos réponses Bien cordialement, Progfury

Le 1307 ne saura pas être précis à la seconde près au bout d'un an. Quelle précision devez vous avoir - la seconde, minute, heure, journée ?

Que voulez vous dire par * coupure de courant ==> plus de jus du tout - dans ce cas comment le voyant sera-t-il alimenté - ou juste momentané et reboot de l'arduino ?

  • initialisation ==> chargement d'un autre programme ou reboot ?

La DS1307 n'a pas de fonction alarme du tout donc faudrait que votre arduino surveille "de temps en temps". Le code devra faire un truc du genre

Configurer l'eeprom avec un premier logiciel adéquat pour stocker le moment de déclenchement

Setup: Lire en eeprom le moment de déclenchement (stocké en format unixtime par exemple)

Loop: - demander la date et l'heure la RTC en unix time - comparer avec l'heure cible (celle sauvée en EEPROM et lue dans le setup() ) - allumer le voyant si l'heure actuelle est après l'heure courante - éventuellement dormir 1 seconde ou 1 minute suivant la précision souhaitée

le DS3231 que vous trouverez pour 1 euro environ en Asie ou 3/4 euros en Europe et la librairie de J Christensen permet de régler 2 alarmes (pas à l'année) et sera plus précis. il pourrait être utilisé pour endormir l'arduino plus longtemps et le réveiller par interruption et ce composant a beaucoup moins de dérive dans le temps que la 1307

Dans les 2 cas les RTC du marché comportent une pile individuelle qui peut durer plus d'un an donc à moins d'une panne d'éléctricité toute la journée fatidique, votre voyant devrait s'allumer

Bonjour,

merci d'avoir pris le temps de vous pencher sur ma question. Je me suis en fait assez mal expliqué. J'utilise une carte Arduino UNO pour gérer des commandes dans une armoire de gestion. Celle-ci est donc alimentée en permanence mais il est possible qu'elle subisse des coupures de courant de temps à autre. Je souhaite ajouter une fonction supplémentaire afin d'avoir un voyant qui signale que le dernier entretien a eu lieu il y a plus d'un an (un peu comme pour la révision d'un véhicule). Ainsi, une fois l'entretien réalisé, un appui sur un bouton poussoir mémorisera la date actuelle. Ensuite, le programme vérifiera régulièrement si la date stockée est inférieure ou égale à un an. une fois une année écoulée, le voyant de maintenance s'allumera. Au niveau précision, il n'y a pas une précision énorme à atteindre et à vrai dire, une journée de plus ou de moins ne sera pas bien grave. Voilà, j'espère que mes explications sont plus claires. Cordialement, Progfury

A prix égal (1 €, ruineux) il est vraiment dommage de se priver la précision d'une DS3231 qui cerise sur le gâteau possède une fonction alarme La DS1307 qui dérive vraiment trop.

Ok - c'est faisable sans soucis sur un uno, avec un code comme expliqué plus haut (cependant pour ne pas trop dériver ce serait bien de prévoir une DS323 et une fonction de remise à l'heure)

Si j'étais vous je rajouterai un petit lcd pour simplifier les réglages - il y a des shields pour uno qui comportent en plus 5 boutons tout intégrés comme par exemple

Conseil : En plus de choisir une DS3231 utilise l'eeprom qui accompagne tous ces modules. Utilises la pour enregistrer les dates de mises à l'heure afin de gérer les dérives plus facilement.