Electronique > Réalisations > Affichage / Mesure > Horloge 001b

Dernière mise à jour : 03/04/2011

Présentation

Cette horloge est du même tonneau que celle présentée en page Horloge 001 et repose elle aussi sur l'emploi d'un PIC 16F628A et de quatre afficheurs LED sept segments. Sauf qu'ici elle est plus compliquée. Mais avant de frapper, laisse-moi vous expliquer. Quelqu'un m'a demandé si on pouvait utiliser l'horloge 001 pour piloter des tubes lumineux ou de grosses branches de LED pour faire une horloge géante. Avec des gros barreaux de LED oui, il suffit d'ajouter une interface de sortie pour disposer des tension et courant requis (un simple ULN2803 peut suffire). Mais avec des tubes, pas évident à cause de la fréquence de balayage du multiplexage d'affichage. J'ai donc apporté une petite modification à l'horloge 001 pour qu'elle mette à disposition des valeurs "numériques" stables et modifiées une seule fois par seconde, sans aucun multiplexage. Bien entendu, le nombre de fils de liaison entre circuit horloge et circuit affichage augmente en conséquence, de 11 fils de liaison (4 communs afficheur + 7 segments) on passe à 28 fils de liaison (4 x 7 segments). La base de temps est toujours stabilisée par un quartz "horloger" de 32,768 kHz, pas de raison d'en changer.

Schéma

La petite a doublé de volume, mais pour la bonne cause.

horloge_001b

Principe général
Par rapport à l'horloge 001, aucun changement dans le fonctionnement de base qui consiste toujours à cadencer les routines d'affichage à la vitesse de 1 Hz, soit une seconde. Le quartz 32,768 kHz permet de cadencer le PIC à une vitesse quatre fois moindre soit 8,192 kHz, fréquence qui divisée plusieurs fois de suite par 2, donne la valeur recherchée de 1 Hz. C'est ainsi qu'à chaque seconde une interruption est déclanchée et provoque l'incrémentation de compteurs chargés de stocker la valeur en cours des heures, minutes et secondes.

Affichage
La différence par raport à l'horloge 001 se situe à cet étage. Au lieu d'alimenter les quatre afficheurs un par un de façon séquentielle, on les alimente tous tout le temps. La consommation moyenne est donc en toute logique multipliée par quatre. Les quatre transistors et le décodeur BCD / 7 segments utilisés précédement (SN7447) ont été supprimés et remplacé par un quator de CD4094 qui sont des registres à décalage et servent ici de convertisseurs série / parallèle. Les chiffres à afficher sont mis à jour et stockés dans le PIC sous forme numérique 8 bits (1 octet), c'est à dire que pour "13h47" on dispose des quatres chiffres "1", "3", "4" et "7". Chacun de ces chiffres doit allumer les segments correspondant de l'afficheur sept segments qui lui correspond, ce qui veut dire qu'entre le PIC et les quatre afficheurs on a 28 informations binaires élémentaires à transmettre (7 bits utiles pour chaque afficheur). Comme les CD4094 recoivent les données sous forme série (bits transmis à la queue-leu-leu) il faut transmettre les bits correspondants à chaque chiffre les uns après les autres, c'est ce qui est fait sur la ligne notée Data sur le schéma. Notez que les chiffres tenant sur un octet et donc 8 bits, on transmet en fait 32 bits au total et non 28. Mais 4 bits ne sont pas exploités. Les 8 bits du premier chiffre à transmettre sont envoyés au premier circuit CD4094, mais ce dernier ne les garde pas et ils continuent leur chemin sur la ligne Data2 pour aboutir au second CD4094 lorsque les 8 bits du second chiffre à afficher sont transmis. Un peu comme dans un bus bondé dans lequel vous êtes entré en premier. Au début vous êtes proche du conducteur et petit à petit vous vous retrouvez au fond du bus, poussé par les gens qui montent derrière vous. Au final, c'est le quatrième afficheur qui reçoit les bits du premier chiffre transmis, qui doit donc correspondre aux unités des minutes. Les 8 bits du dernier chiffre transmis (le quatrième) s'arrêtent au premier CD4094 et correspondent au chiffre des dizaines de l'heure en cours. Pour résumer, les 8 bits de chaque chiffre se trouvent sous forme parallèle (un octet au format binaire) dans le PIC, sont transmis sous forme série sur la ligne Data (RA0 comme point de départ) après avoir subit une conversion de format (format binaire vers format sept segments) et retrouvent leur forme parallèle sur les sorties des CD4094.

Signe de vie
La broche RA4 du PIC se voit confier la douce tâche de changer d'état logique toutes les secondes, ce qui explique la présence de la petite flèche de sortie appelée Out_1Hz. Cette sortie n'a pas besoin d'être raccordée pour que l'horloge fonctionne. Mais si vous y branchez une LED avec sa petite résistance série de 330 ohms, alors vous saurez que l'horloge tourne si ladite LED clignote de façon régulière. Sans la LED, il vous faut attendre une minute pour voir le chiffre le plus à droite changer de valeur. Comment brancher la LED ? Comme indiqué ci-après (pour rappel, la sortie RA4 du PIC 16F628A est de type collecteur ouvert).

pic_tuto_base_activation_sortie_001d
Bases programmation PIC - Activation d'une sortie

Réglage heures / minutes
Les quatre boutons poussoir SW1 à SW4 sont toujours présents et servent à incrémenter ou décrémenter la valeur des heures et/ou des minutes après une première mise sous tension ou après une coupure secteur. L'appui sur une de ces quatre touches remet à zéro les secondes, ce qui permet de synchroniser facilement l'horloge sur une source sûre (horloge pilotée par signaux radio DCF77 par exemple).

Alimentation
Du fait que les segments des afficheurs sont allumés en même temps, la consommation globale est plus élevée qu'avec un affichage de type multiplexé. Le pire des cas serait celui où tous les afficheurs affichent la valeur 8, ce qui est rarement le cas sur une horloge. La consommation maximale est notées pour un affichage de type "08h08" où l'on a 26 segments sur les 28 allumés simultanément. Si on limite le courant à 3 mA par segment, cela nous mène à un courant global voisin de 90 mA. Si vous comptiez utiliser un régulateur de tension de type 78L05 en boitier plastique TO92 pour la totalité du montage, il faudra revoir votre copie et vous tourner vers un 7805 en boitier TO220. Mais au fait... l'intention de départ n'est-elle pas de piloter des afficheurs un peu spéciaux et non des afficheurs LED standards ? Dans ce cas l'interface qui va faire suite (après les CD4094) n'a sans doute pas besoin d'un fort courant de commande. Si j'ai mis des afficheurs sur mon schéma, c'est juste pour montrer que l'on a bien les valeurs sous forme "sept segments" en sorties des CD4094. Tout s'arrange, finalement !
Sauvegarde alim : pour sauvegarder l'heure sur absence secteur, voir méthode décrite à la page Horloge 001.

Logiciel du PIC

Fichier *.hex compilé prêt à l'usage disponible dans l'archive dont le lien suit, avec code source au format MikroPascal Pro V3.80.
Horloge 001b - 16F628A (28/03/2011)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Non réalisé.