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.

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).

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é.