Bonjour à tous,
ceci est mon premier post sur le forum, donc soyez indulgent
Quelques, bref, compléments :
- en simplifiant, la gestion du temps sur Arduino utilise une interruption pour incrémenter un compteur, ce qui veut dire que si le programme en utilise également et que le traitement de ces dernières est long cela fait dériver l'horloge, et donc accessoirement les primitives du type millis, pour info delayMicroseconds désactive les interruptions et donc peuvent faire dériver l'horloge
Il y a de nombreux threads là-dessus, si nécessaire je peux donner quelques pointeurs.
Comme début, 3 points d'entrée :
https://arduino.stackexchange.com/questions/242/arduino-time-clock-accuracy
https://arduino.stackexchange.com/q...eping-using-millis-is-not-accurate-or-correct
https://arduino.stackexchange.com/questions/27/how-do-i-get-an-accurate-time?rq=1
Il y en a de nombreux autres, sur les forums arduino entre autres, si ma mémoire est bonne il y a plusieurs vidéos la-dessus sur youtube.
- Si on n'est pas pressé, un module RTC pour Arduino coute moins un € sur ebay, aliexpress, etc...
Ces modules sont basés sur des chips DS1002, DS1307 ou DS3231
http://datasheets.maximintegrated.com/en/ds/DS1302.pdf
http://datasheets.maximintegrated.com/en/ds/DS1307.pdf
https://datasheets.maximintegrated.com/en/ds/DS3231.pdf
- Autre possibilité, utiliser une carte Arduino avec une connexion Wifi et synchroniser périodiquement l'horloge par un appel NTP.
Un shield Wifi ESP8266, coute moins de 2 €
Il existe également de cartes au format Arduino Uno, pour un prix du même ordre de grandeur qu'une carte Arduino classique qui embarque le chip ESP8266, en plus ou à la place du chip Atmega.
Celle qui ne comporte que le chip ESP8266 dans un format compatible Uno on a beaucoup moins de port d'E/S en autre seul A0 est disponible,
mais offre un accès réseau plus intégré. Celles qui ont les 2 sont plus chères, je n'en connais qu'une.
Idéalement, la combinaison des 2, RTC plus NTP.
Voilà, en espérant que cela sera de quelque utilité.
JFP