Horloge RTC du Nextion |
Maj : 24/06/19 Abstract : Résumé : |
Quand j’ai testé l’horloge (dans versions enhanced seulement) pour la première fois, je ne disposais que de la très maigre documentation indiquant les registres utilisés :
De rtc0 à rtc6 : year, month, day, hour, min, second, week.
Cela m’a paru nécessaire et suffisant et j’ai écrit très vite les panneaux très simples pour afficher heure, calendrier et réglages.
Pour l’affichage, pas de problème, mais lors des réglages les registres se montaient les uns sur les autres et les résultats étaient aberrants.
J’ai bien vérifié, je n’avais aucune erreur d’après la documentation disponible et je ne comprenais pas.
J’ai fait une petite recherche et je suis tombé sur une vidéo YouTube montrant une application du même type.
J’ai suivi le lien < InterlinkKnight > découvert l’esprit très ouvert de son auteur, comme je les aime, et testé son programme .HMI.
Miracle ! Tout fonctionnait parfaitement et quand je me suis plongé dans son application, j’ai vu que la partie réglage était beaucoup compliquée que la mienne et qu’il utilisait d’autres variables non documentées que je ne connaissais pas.
Version InterlinkKnight
Je n’ai pas pour habitude de pomper les logiciels des autres, mais dans ce cas particulier, il fallait bien reconnaître que ma version ne valait rien, et j’ai basculé sur la sienne.
Regardez dans le logiciel, vous verrez que la partie réglages et assez tordue, et qu’il fallait des informations que je n’avais pas pour en arriver à ce résultat.
Voici ce qui m’avait manqué dans mes maigres documentations :
// The following is going to execute before we load this current page: // // Read the EEPROM to know if we are in 24 hour mode: repo bt24.val,20 // reads from EEPROM address 20 into the dual state button // // I am going to read the EEPROM to know in what setting the brightness is: repo h0.val,10 // reads from EEPROM address 10 into the slider repo n0.val,10 // reads from EEPROM address 10 into the n0.val // // Read the EEPROM to know if the DST is enable: repo btdst.val,30 // reads from EEPROM address 30 into the dual state button // |
J’ai laissé sa page originale et la mienne de présentation différente mais sur la même base.
Vous trouverez ces pages dans mes logiciels.
La précision de l’horloge RTC (enhanced) n’est pas fameuse comparée à l’excellente <DS3231> très stable, et à l’usage elle ne sert pas à grand-chose, c’est l’Arduino connecté qui fournira une heure stable de référence.
C’était amusant de la gérer, mais comme son quartz n’a aucune régulation thermique, elle dérive trop, il faut l’oublier…
La surabondance d’horloges
Nous avons une surabondance d’informations horaires, en plus des pendules, montres et téléphones, tous nos automates comportent des RTC.
Heureusement, les serveurs de temps par Internet (Ethernet et Wi-Fi), les platines GPS, les modules radio DCF77 et autres permettent de synchroniser toutes les platines à microcontrôleur avec une précision extrême.
Une bonne <DS3231> est déjà à bien mieux qu’une seconde tous les mois, il suffit de temps en temps de la recaler automatiquement avec un top de référence pour que toutes les horloges soient dans le même centième de seconde.
Quand on est entouré de d’affichages et de multiples cartes qui toutes envoient un petit bip aux heures entières, le moindre décalage d’un dixième de seconde est perturbant pour l’oreille, tous les bips doivent être rigoureusement synchronisés sur le top de France Inter en hertzien et surtout pas depuis la box qui retarde.
Platine avec leds et poussoirs