Electronique > Réalisations > Affichage / Mesure > Horloge 004

Dernière mise à jour : 11/02/2018

Présentation

Assez curieusement, les premières horloges publiées sur mon site étaient basées sur des PIC, ce que je n'aurais jamais pu envisager il y a quelques années (je n'y connaissais rien en programmation de PIC). Certes, un PIC (ou autre type de microcontrôleur) simplifie beaucoup les choses et réduit le nombre de composants par rapport à une version à base de logique dite câblée (vous allez vite vous en rendre compte).

horloge_004_proto_mt_001b

A leurs débuts, les fabricants de réveils électroniques utilisaient des circuits intégrés courants (portes logiques, compteurs et décodeurs), ce qui conduisait à des appareils volumineux et gourmand en énergie (appareils allumés 24h/24). Rapidement sont apparus des circuits intégrés spécifiques qui permettaient de construire une horloge (avec fonction réveil s'il vous plait) sur un circuit imprimé de surface fort réduite. De plusieurs circuits intégrés on est passé à un seul, qui en plus assurait la fonction de multiplexage pour l'affichage, réduisant la consommation et facilitant la fabrication de ces petites merveilles de technologie (rappelez-vous qu'à l'époque, une calculatrice qui assurait les quatre opérations de base était une belle machine). Le présent article répond à la demande d'un internaute, qui souhaitait savoir s'il était possible de réaliser une horloge sans composant programmable. La réponse est oui, mais... Les circuits intégrés spécialisés (non programmables mais déjà programmés par le fabricant) requis pour ce genre d'appareil ne sont pas très faciles à trouver. On pourrait par exemple utiliser un NTE2062 (dont le datasheet n'inclue aucun schéma de mise en application, il faut tout décrypter ! ) ou un LM8560 (exemple d'application). Il s'agit là de composants spécifiques (dédiés) qu'on peut voir disparaître au bout de quelques années. Ne serait-il pas plus exitant d'aligner quelques circuits standards qu'on trouve encore partout, sans fonction de multiplexage (on verra que ce problème n'en est pas vraiment un) mais avec l'avantage indiscutable de vous faire réfléchir un peu ? La description qui suit vous montrera qu'on peut faire des choses rigolotes, par exemple afficher 35h24.

Même pas peur...

Cette horloge n'utilise que des composants classiques en assez grand nombre, et peut faire peur aux débutants, ce que je comprend. Même si vous n'avez pas l'intention de fabriquer ce drôle d'accessoire, prenez donc un peu de temps pour lire les lignes qui suivent et en comprendre le sens. Ce genre de montage est vraiment un très bon exercice de logique et vous aidera à comprendre comment quelques fonctions séparées permettent d'obtenir une fonction globale. Je vous invite à imprimer le schéma et à dessiner des flèches sur les lignes de données, qui indiquent dans quel sens vont les informations logiques (il n'y a aucun piège).
Deux ans et demi après la publication de cet article, Mickaël T. (15 ans) m'a écrit pour me dire qu'il avait réalisée cette horloge, finalisée après 3 mois de cogitation (voir photos de son prototype en fin de page). Comme quoi je ne raconte pas toujours n'importe quoi.

Schéma

Le schéma qui suit représente la partie comptage et affichage, complète et fonctionnelle. La partie oscillateur sera vue plus loin, avec le bloc d'alimentation secteur.

horloge_004

Impressionnant, n'est-ce pas ? Mais ne vous laissez pas faire et résistez à la tentation de changer de page.

Principe général
Le fonctionnement général de cette horloge est fort simple puisqu'on utilise une horloge de base de 1 Hz (une impulsion par seconde) pour faire avancer trois paires de compteurs, une pour les secondes, une pour les minutes et la dernière pour les heures. Chaque compteur est suivi d'un décodeur BCD / 7 segments pour permettre la visualisation en clair de l'heure en cours. Rien n'est plus pénible en effet que de s'entendre dire qu'il est "00000010 heures" et "00101011 minutes". L'affichage se fait via des afficheurs à LED sept segments basse consommation, mais rien ne vous interdit d'utiliser des afficheurs géants pour faire croire à vos (peut-être futurs) enfants que la cuisine s'est transformée en hall de gare SNCF.

Descriptif un poil plus détaillé
On a affaire ici à six compteurs montés en cascade (en série, si vous préférez). Le premier compteur sert à l'affichage des unités de secondes, le second compteur sert pour l'affichage des dizaines de secondes, etc. Le premier compteur doit se remettre à zéro après le chiffre 9, alors que le second compteur doit se remettre à zéro après le chiffre 5 (max 59 secondes, après on ajoute une minute au unités des minutes). Même topo pour les deux compteurs qui s'occupent des minutes. Par contre il en va différement pour les heures car les unités horaires peuvent aller jusqu'au chiffre 9 si les dizaines d'heure valent 0 ou 1 (on peut avoir 07 heures ou 16 heures, mais pas 28 heures). Il faut donc remettre à zéro le compteur des unités d'heure dans les deux cas suivants :
- après affichage du chiffre 9 si les dizaines d'heure valent 0 ou 1
- après affichage du chiffre 3 si les dizaines d'heure valent 2
C'est pourquoi la circuiterie est un tout petit peu plus compliquée pour la section des heures. Mais si on y regarde bien, on a juste ajouté une fonction (porte logique) ET pour satisfaire à ces deux cas précis. Un monostable constitué d'une porte logique associée à deux résistances et un condensateur est associé à chaque compteur et permet de disposer d'une impulsion de remise à zéro bien nette. Chaque remise à zéro d'un compteur s'accompagne de l'incrément d'une unité du compteur suivant. L'incrément individuel de chaque compteur est possible, grâce aux boutons poussoirs SW1 à SW6. C'est par leur présence que vous pouvez mettre à l'heure l'horloge. Une autre façon de faire aurait consisté à attaquer le premier compteur (unité des secondes) avec un signal d'horloge plus rapide, genre 5 ou 10 Hz. Mais boujours les crispations pour la mise à l'heure le soir peu avant minuit... surtout si vous oubliez de relâcher le bouton assez vite. La méthode que j'ai adoptée vaut ce qu'elle vaut, il faut juste utiliser des boutons poussoir de bonne qualité pour éviter de s'arracher les cheveux à cause des rebonds mécaniques. Vous pouvez aussi ajouter un ou plusieurs composants pour absorber ces cochonneries de rebonds s'il y en a, mais là je vous laisse chercher un peu comment faire.

Alimentation secteur et horloge de base 1 Hz
Par horloge de base je fais allusion au signal périodique qui fait avancer les compteurs, à la cadence de une impulsion par seconde. Il existe deux façons de procéder pour obtenir cette horloge de base :
- soit on extrait la fréquence de 50 Hz (ou 100 Hz) du secteur et on la divise par 50 (ou par 100) pour obtenir notre signal rectangulaire de 1 Hz;
- soit on réalise un oscillateur délivrant de lui-même un signal rectangulaire de 1 Hz.
Je ne parle volontairement pas du système DCF77 qui consiste à extraire les infos horaire d'un signal codé émis sur une sous-porteuse d'un programme radio, c'est hors sujet dans le présent article. La première méthode est très pratique et la stabilité du 50 Hz du secteur sur le long terme n'est plus à démontrer (EDF n'a pas le devoir de fournir une tension alternative dont la fréquence est parfaitement stable d'un point de vue instantané, mais cette fréquence doit être très proche de 50 Hz en moyenne, sur une journée). L'inconvénient est qu'en cas de coupure secteur il n'y a plus de signal d'horloge et que même si on prévoit un accu pour alimenter le montage dans cette situation, les compteurs n'avancent plus et il faut remettre l'horloge à l'heure après retour du secteur (sauf bien sûr si la coupure a été très brève). La seconde méthode (avec oscillateur 1 Hz autonome) permet la continuité du comptage même en cas de coupure secteur, mais demande en contrepartie un petit surplus de composants. La solution que je propose ? Un combiné des deux méthodes, avec un circuit oscillateur autonome optionnel, ce qui vous permet de choisir votre solution. Le schéma qui suit représente l'alimentation secteur avec le bloc oscillateur 1 Hz, qui comme vous pouvez le voir sont étroitement liés. Normal, ils sont sur la même feuille.

horloge_004_alim_osc

La sauvegarde de l'heure en cas de coupure de courant implique deux choses :
- on doit disposer d'un oscillateur (base de temps) autonome, non issu du secteur 230 V et capable de travailler avec la pile de secours (ou condensateur, on y reviendra).
- le circuit de comptage doit rester alimenté, les afficheurs n'ont pas besoin de l'être.
Oui, ça fait encore de la circuiterie ;-)
La partie alimentation en elle-même ne présente pas de particularité spatiale, tout juste deux diodes en plus (D105 et D106) pour tenir compte de la présence d'une pile (ou jeu de piles) qu'on ne veut pas voir se décharger quand le secteur est présent. Quand le secteur 230 V est présent, la tension en sortie de D105 est supérieure à celle en sortie de D106 et cette seconde est bloquée, la pile ne débite aucun courant. Si au contraire la tension secteur disparaît, la pile prend la relève puisque c'est au tour de D105 de se bloquer et D106 de conduire. Comme on ne veut pas que les afficheurs s'éclairent lors de l'absence secteur (économie pile), le transistor Q101 a été ajouté pour ne donner leur référence de masse aux afficheurs à cathode commune que quand le secteur est présent. La grille de ce transistor (qui est un modèle MOSFET) est portée à un potentiel positif de 4,7 V environ quand le secteur est présent, grâce à la présence des composants D108, C105, R101 et D109. Quand le secteur disparaît, cette tension de 4,7 V chute brutalement et le transistor Q101 se bloque, les afficheurs s'éteignent.
Choix transformateur alimentation : 6 V ou 9 V ?
Le choix d'un transfo 6 V permet une dissipation de puissance plus faible dans le régulateur de tension.
Horloge 100 Hz : elle est obtenue en récupérant le signal alternatif directement en sortie du pont de diodes (D101 à D104) via R102 et en l'écrêtant à une tension max de 4,7 V avec la diode zener D107. Le signal ainsi créé, qui a une forme intermédiaire entre sinus et carré, est appliqué au premier compteur décimal U102/CD4017 utilisé ici en diviseur par 10. Le signal de 10 Hz résultant (100 Hz divisié par 10) est disponible en sortie Q9 de U102 et attaque l'entrée de U103/CD4017 qui redivise ce signal par 10. On dispose enfin sur la sortie Q9 de U103 d'un signal rectangulaire de 1 Hz (période 1 seconde). Voilà donc la source d'horloge principale de notre montage, quand le secteur est présent. L'oscillateur autonome est construit autour de U104, qui délivre un signal de 2 Hz dont la fréquence est stabilisée par le quartz X101 de 32768 Hz. Comme on veut un signal de 1 Hz, on divise ce signal de 2 Hz par deux avec la première bascule D contenue dans U105/CD4013. En présence de tension secteur, le compteur U104/CD4060 est bloqué car son entrée MR (broche 12) est portée au potentiel assez positif pour le permettre (PS_On).

Affichage des secondes optionnel
L'affichage des secondes est optionnel, les deux circuits intégrés U2 et U4 ainsi que leur afficheur associé AFF-S1 et AFF-S2 peuvent être omis. Mais il faut dans tous les cas laisser les deux circuits intégrés U1 et U3 en place car il assurent le comptage des secondes à partir de l'horloge 1 Hz.

Affichage non multiplexé
Pourquoi ai-je laissé entendre que l'absence de multiplexage n'était pas vraiment un problème ? Tout simplement parce que si à l'époque les LED demandaient un certain courant pour vraiment bien éclairer, il en faut bien moins maintenant. Exit les 10 mA ou 20 mA requis par segment, on peut maintenant se contenter de 1 mA (dix fois moins). Les afficheurs récents ont un bien meilleur rendement lumineux, à tel point que certains éclairent même trop la nuit. Choix est donc fait d'opter pour des afficheurs qui tous segments allumés demanderont en tout et pour tout une dizaine voire quinzaine de mA. Soit 60 mA voire 100 mA dans le pire des cas si vous décidez de visualiser les secondes. C'est une valeur similaire à celle qu'on aurait obtenue avec des segments alimentés en mode multiplexés mais sous 10 mA chacun. Je suggère donc ici l'emploi d'afficheurs capables de fonctionner sous un courant de 1 mA à 3 mA.

Prototype

Joli proto de Mickaël T., que je remercie chaleureusement pour ses retours.

Prototype de Laurent M.
Version géante pour cette horloge 004 de Laurent M, que je remercie pour ses retours.

horloge_004_proto_lm_001a  horloge_004_proto_lm_001b
Test du premier afficheur

Commentaire de Laurent :
Afficheur 200 X 100; 140 LED; Commande 5 V; Alimentation 12 V via optocoupleurs PC 817 et transistors IRFZ44N (comme indiqué sur votre page Afficheur 7 seg 002d) ; consommation max 0,46 A. Encore un grand merci pour les conseils. Cordialement Laurent
Avec plaisir, et bravo !

Prototype de Mickaël T.
Certaines horloges projètent l'heure au plafond, d'autre illuminent un vernis marron.

horloge_004_proto_mt_001a horloge_004_proto_mt_001b

Commentaire de Mikaël :
J'ai réalisé différents montages présents sur votre site. J'ai débuté doucement avec le dé 002, puis j'ai un peu corsé les choses en partant de votre compteur 001 auquel j'ai ajouté un switch qui balance la broche 10 U/D du CD4029 sur le +V ou la masse, avec un bouton-poussoir sur la broche 1 pour RESET du système sans l'éteindre. J'ai aussi ajouté des roues codeuses. J'ai mis ce petit montage dans un boîtier que j'ai étancheisé (pour compter des longueurs de piscine, par exemple...). Et enfin, je me suis lancé sur l'horloge 004... Autant vous dire que ça a été le parcours du combattant entre le circuit imprimé de la carte à puces et celui des afficheurs... Car je ne fais que des circuits imprimés simple face, et il a fallut caser la base de temps de 1 Hz pour faire fonctionner l'horloge. Et j'ai ajouté un fusible, au cas où... Sous 5 V, les afficheurs ne s'allumaient pas, j'ai dû monter à 9 V. Trois mois se sont écoulés entre le jour ou j'ai "compris" le schema et le jour de la mise sous tension finale.
Tout simplement bravo, toutes mes félicitations !

Circuit imprimé

Non réalisé.

Historique

11/02/2018
- Ajout photo proto de Laurent M. que je remercie pour ses retours.
04/01/2015
- Ajout photos prototype Mickaël T., que je remercie.
22/07/2012
- Première mise à disposition