Qlocktwo
Horloge à texte
Présentation:
Cette page fait suite à
cette discussion sur Futura Science. thjazi39 souhaitant fabriquer une
horloge à texte de ce type . Non, c'est pas donné....
Pour info, thjazi39 a réalisé son projet magistralement à base de leds adressables et d'arduino nano.
Voici le lien sur son site. voici
une photo Un des participants à ce forum propose une très belle solution, à base de µC STC32 avec RTC interne, charlieplexing avec une led par lettre, tout sur la même carte... magnifique.
Ily a aussi
cette très belle réalisation, toute en cmos, pour les amateurs de logique câblée
Il y a aussi ceux qui n'ont pas les moyens d'utiliser cette bête de course. Je propose donc une alternative à base de picaxe et de modules trouvables sur internet:
RTC3231 ,
expandeurs PCF8574, et des amplis de courant
uln2803. Les liens ne sont que des exemples.
Le but de cette page est que chacun puisse se fabriquer une Qlocktwo avec des modules abordables et des circuits en version "veroboard" ou PCB.
Il y aura (bientôt) un lien fournissant le total des infos: circuits, codes,etc
Cahier des charges:
Le système affiche l'heure sous forme de textes: "Il est huit heures moins le quart".
La Qlocktwo originale change d'heure à l'heure toutes les cinq minutes et dispose de quatre leds pour suivre la progression des minutes intermédiaires.
Dans cette version, la résolution est de cinq minutes avec une précision de -2mn30 à +2mn30 (le changement n'est pas au passage des cinq minutes réelles pour éviter une erreur allant de 0 à 5 mn).
Ajout 14/04/20: En plus des indication "AM" et "PM" pour matin et soir (soit dit en passant, AM signifie: "Ante Meridiem, et PM: Post Meridiem, c'est donc du latin et pas de l'anglais), il y a maintenant deux signes, - et + en bas à gauche. Les cinq minutes de résolution sont divisées en trois: entre -2mn30s et -1mn, le signe - est allumé; entre -1mn et +1mn,rien n'est allumé et entre +1 et +2mn30s, le signe + est allumé.
Il y a une sortie alimentation par groupe de lettres. Le choix est d'éclairer chaque lettre par une diode cms en série avec sa résistance de limitation.
L'indication de l'heure se fait de H-25mn à H+30mn (ex: de 8heures-25 à 8h et demie).
Présence d'une procédure de mise à l'heure de la RTC (DS3231) à partir du texte de l'horloge.
Re-synchronisation automatique de l'horloge en cas de perte d'alimentation.
L'éclairage est fonction de la lumière ambiante, autour d'une luminosité choisie
Principe de fonctionnement:
Il y a en fait deux horloges dans ce système :
L’horloge RTC DS3231 (ou DS1307), est mise à l’heure sur demande par une procédure spécifique.
Cette RTC est la mémoire du système, protégée par sa batterie. Elle fournit également les pulses 1 Hz de précision horlogère faisant tourner une seconde horloge dite "horloge programme".
Il suffit de compter 300 pulses pour avancer cette seconde horloge de 5 mn. Sauf pour le premier comptage qui est de 150 pulses. Cette "horloge programme" est donc en avance de 2mn30s par rapport à l’heure exacte.
Ah!, et pourquoi ?
Parce que dans la vie courante, quand on regarde une pendule, on ne regarde pas à la minute près, On regarde où se trouve la grande aiguille par rapport au chiffre le plus proche, et on lit " huit heures un quart ","huit heures vingt ", ou "huit heures vingt-cinq", et ça suffit la plupart du temps.
Cette horloge fait donc directement ce que l'on fait régulièrement, et ce qui pouvait paraitre un défaut devient une qualité.
La RTC DS3231 a été utilisée dans
cette page. Quant à l'expanseur PCF8574,
c'est ici. On est pas en terrain inconnu.
Architecture générale:
Organisation des textes:
Voici le début de la
grille liant les textes à l'heure horloge, en fait, il y a 28 groupes de mots
Il y a deux parties, celle des minutes occupant les octets minutes 1 et 2 se répétant toutes les heures
et celle des octets heures 3 et 4 (avec midi et minuit) , ici les états allant de minuit -moins 25 à minuit et demi
Cette grille est organisée pour optimiser les liaisons entre sorties ampli ULN et groupes de texte.
Mise à l'heure de la RTC: Il a fallu tenir compte du fait que le cycle des minutes par rapport aux heures n'est pas de 0 à 59, mais de -25 à +30.
La mise à l'heure se fait à partir des textes en tenant compte de cette particularité.
Voir aussi une
procédure à partir d'une hologe standard. Mise à l'heure de l'horloge interne RTC DS323 Le choix de l'heure doit correspondre au prochain multiple de cinq. Ex si l'heure actuelle est 8h32, préparer l'horloge pour 8h35
Elle se fait avec un unique poussoir, en trois étapes. On entre dans le sous-programme en appuyant sur le poussoir pendant la mise sous tension.
On sélectionne par un appui court (<2s) et on enregistre par un appui long (>2s). Les enregistrements sont accompagnés d'un beep.
Réglage "AM"/"PM": En relâchant le poussoir après la mise sous tension, chaque appui bref (<2 s) sur le poussoir fait basculer entre les phases matin/soir. Les lettres "AM" et "PM" s'allument alternativement, AM et PM . Lorsque le texte correct est allumé, un appui long (>3 s) enregistre le choix et fait passer à la phase réglage de l'heure.
Réglage de l'heure: Chaque appui bref incrémente le cycle de l'affichage de l'heure, de 1 à 11, puis "midi" ou "minuit" en fonction de l'option AM/PM précédente. Lorsque l'affichage est correct, un appui long enregistre le choix et fait passer au réglage des minutes.
Réglage des minutes: Chaque appui bref incrémente le cycle des minutes, de "cinq" à "moins cinq", un appui long enregistre le choix,
Lorsque l'heure est pré affichée en totalité, le programme attend un nouvel cycle appui- relâchement pour effectuer la mise à l'heure.
Prendre une heure de référence (un smartphone par ex.), quelques secondes avant l'heure exacte, appuyer sur le poussoir et relâcher au passage à 00. on entend deux beep: L'horloge interne DS3132 est à l'heure.
Mais l'heure ne s'affiche pas immédiatement. La mise à l'heure est immédiatement suivie d'une resynchronisation, comme en cas de perte d'alimentation.
Le programme attend de lire des minutes multiples de 5 sur la RTC suivant la mise à l'heure.
Lorsque c'est le cas, le programme compte 150 secondes, heures et minutes sont chargées dans le programme et affichées...enfin.
On pourra alors vérifier que l'affichage de l'heure en texte est exacte à +/- 2mn 30s avec l'éclairage de "-" ou "+"
La resynchronisation Une mise à l'heure ou une coupure de courant est immédiatement suivie d'une resynchronisation. Cette procédure attend le passage d'un multiple de 5mm sur l'horloge RTC et initialise le premier comptage de pulse à 150.
La boucle principale Chaque pulse 1Hz reçu est comptabilisé par un programme d'interruption. Au bout d'un nombre max (300 pour 5 mn), le programme d'interruption incrémente de 5 le compteur des minutes et déclenche la mise à jour de l'horloge programme sur un cycle de 12 heures, avec la spécification "AM" ou "PM".
Après passage dans les tables "select case" jours et minutes, on dispose de quatre octets correspondants aux lignes de la grille Excel, ces octets sont transmis aux expanseurs PCF8574 pour afficher le texte.
Premiers essais... La diode du "s" de "est" a claqué suite à un C/C de sa 75 ohms (d'où l'utilité d'isoler chaque led).
Impression de la feuille Excel sur papier calque, il n'y a pas encore le + et -
SUITE PAGE 2 : LA REALISATION