Dernière mise à jour :
05/11/2023
Présentation
Ce circuit est une sorte d'amusement, je l'ai réalisé sans en avoir une
quelconque utilité. Il repose sur l'emploi d'un PIC 16F628A et de
quelques
afficheurs LED sept segments fonctionnant en
mode multiplexé.
C'est en quelque sorte un petit montage d'initiation, qui ne fait pas
spécialement mieux que les horloges numériques du commerce. L'affichage
se fait au format "24h", je n'ai pas prévu le mode "12h" (13h30 est
donc affiché 13h30 et non 1h30). La base de
temps est stabilisée par un quartz de 8 MHz (et non de 32,768 kHz comme dans l'horloge 001b), la
précision dépend donc
majoritairement de sa
stabilité. Si le mode d'affichage multiplexé vous file des boutons, ou plus
sérieusement s'il ne peut convenir pour une application bien précise,
merci de vous téléporter vers la page
Horloge 001b.
Schéma
J'ai déjà vu un schéma similaire sur ce site, mais où... Peut-être le
compteur 005 ?
Principe général
Une partie du code logiciel du PIC est
cadencé à une vitesse de 1 Hz et donc une seconde, ce qui est bien
pratique pour une horloge. Pour obtenir cette base de temps de 1 Hz, on
utilise un quartz de 8 MHz et on met en oeuvre une
interruption
du timer T1 à la fréquence de 1 kHz (période 1 ms), et avec cette
interruption on incrémente un compteur jusqu'à 1000. Tous les 1000
coups, on dispose de l'info "une seconde écoulée" et cela provoque
l'incrémentation de compteurs chargés de
stocker la valeur en cours des heures, minutes et secondes. On pourrait
aussi utiliser un quartz "horloger" de 32,768 kHz et diviser plusieurs
fois par deux cette fréquence pour aboutir au rythme de la seconde (1
Hz). Cela est fait ailleurs sur mon site...
Affichage
La
valeur des compteurs heures et minutes est affichée de façon alternée et à une vitesse
suffisement grande pour que l'oeil ne se rende pas compte qu'un seul
afficheur est allumé à un instant donné. Principe de la persistance rétinienne et de l'
affichage multiplexé.
Parce que le PIC utilisé dispose d'un nombre limité de broches d'entrée
/ sortie et parce que je tenais à conserver mes quatre boutons
poussoirs de réglage (voir paragraphe suivant), j'ai du utiliser quatre
broches pour la commande des sept segments des afficheurs, imposant
l'ajout d'un décodeur BCD (4 fils) vers 7 segments (7 fils). Le
décodeur utilisé est de type TTL SN7447 et possède une capacité en
courant de sortie suffisante pour attaquer directement les segments des
afficheurs. Mais en contrepartie, il n'affiche pas la queue des
chiffres 6 et 9, ce qui à mon goût fait un peu moins joli. Simple
question d'esthétique.
Remarque
: la version précédente du logiciel, datée de mars 2011, présentait un
scintillement trop visible au niveau de l'affichage, car je n'arrivais
pas à avoir une vitesse de balayage suffisante avec le quartz qui était
alors de 32,768 kHz. On voyait très bien l'heure, mais ce n'était pas
très agréable.
Réglage de l'heure
A moins
d'allumer cette horloge pile à 12h00 (valeur par défaut à la mise sous tension), il faut la mettre à l'heure. Ce
qui explique la présence des boutons poussoirs reliés aux broches RB4 à
RB7 et qui permettent d'incrémenter ou de décrémenter les heures et les
minutes de façon individuelle. J'aurais très bien pu n'utiliser qu'une
seule broche du PIC pour le réglage de l'heure et des minutes, mais cette façon de
faire qu'on retrouve sur certains radio-réveils m'énerve trop. Donc
non, je laisse comme ça, mais rien ne vous empêche de modifier ce mode de
fonctionnement.
Suppression du zéro non significatif ?
Jean-Jacques
me demande s'il est possible de modifier le logiciel du PIC
pour effacer (ne pas afficher) le zéro des dizaines d'heures, afin
de voir "9h07" au lieu de "09h07". Cela n'est pas possible côté
logiciel car la valeur "0" est décodée par le SN7447 comme les
autres chiffres. En revanche cela est possible côté matériel en
ajoutant des circuits logiques externes qui décodent l'allumage du
premier digit et activent le 7447 seulement si la valeur de ses lignes
d'entrées [ABCD] est différent de [0000]. Une autre solution, bien plus
élégante, pourrait consister à utiliser la ligne RA4 actuellement
utilisée pour délivrer un signal d'horloge (clignotement secondes).
Malheureusement on ne dispose là d'aucune autre ligne de libre sur le
PIC qui permettrait d'ajouter cette fonction de suppression de zéro non
significatif, sans en supprimer une autre.
Sauvegarde de l'heure lors d'une coupure d'alimentation
Si
l'ensemble est alimenté par une source provenant du secteur EDF - ce
qui est conseillé pour un usage permanent, la valeur de l'heure en
cours est perdue dès que se produit une coupure d'alimentation secteur.
C'est le cas de toute horloge alimentée par le secteur. Pour éviter
cela, il convient de prévoir une sauvegarde par pile qui prend la
relève uniquement en cas d'absence secteur. Pour une autonomie maximale
de la pile de sauvegarde, on ne doit alimenter que le PIC et laisser
les afficheurs éteints quand le secteur est absent. Cela est très
facile à faire avec des diodes, comme le montre le schéma suivant.
Dans
bien des réalisations commerciales, il n'y a qu'un seul régulateur de
tension (parfois une simple diode zener avec une résistance de
limitation de courant), les afficheurs étant alimenté par une source de
tension filtrée mais non régulée. C'est une façon de faire. Pour
plus de détails concernant le fonctionnement de ce type d'alim
secourue, merci de vous reporter à la page
Alimentation secourue par batterie 002.
Prototypes
A ce jour au moins trois prototypes réalisés
pour cette horloge, une en version "afficheurs standards", une
avec quelques LED par segments, et une avec des afficheurs géants.
Mon prototype
Réalisé avec ma platine de développement EasyPic,
une plaque sans soudure pour poser le SN7447 et les quatre transistors,
et le petit module de quatre afficheurs à LED sept segments décrit
à la page
Affisssseur 7 segments 003 (scusez-moi, zai un seuveu sur la langue).
La
fréquence de raffraichissement de cette nouvelle version de février
2013 permet un rendu nettement meilleur que celui qu'on devait subir
avec la version de mars 2011. Que voulez-vous, j'étais tellement
fier avec mon petit quartz d'horloger 32,768 kHz. Il a fallu que je
prenne sur moi, vous n'imaginez pas comme c'est dur de mettre son égo
de côté. Tiens, allez, une petite vidéo (YouTube) pour montrer que je ne rigole
pas avec les blagues.
Le montage à continué de fonctionner même après la brêve surtension qui m'a chatouillé les doigts. L'appareil photo, lui...
Prototype de Julien
Qui vaut un paragraphe à lui seul...
Alors, quoi de beau à raconter sur ce proto ? De beaux et longs échanges par mail...
Julien
m'a demandé conseil pour son prototype qui ne voulait pas
fonctionner correctement. Affichage erratique, parfois fonctionnement
semi-correct pendand quelques secondes... Recherche des causes
possibles, essai des afficheurs un à un, etc... Lors des derniers
essais, l'ajout d'un condensateur de très forte valeur (100 uF) sur les
broches d'alim du PIC montrait que l'horloge fonctionnait bien pendant
une trentaine de secondes, et après, pouf, plus rien. Certains chiffres
ne voulaient jamais s'afficher (chiffres 0, 1, 2 et 3 OK, mais rien à
faire pour les suivants). Le fait que l'horloge fonctionne correctement
pendant un certain temps avec un gros condensateur de découplage m'a
fait penser à un problème au niveau de la source d'alimentation. Et
c'était bien là le problème. La source de tension, une pile 9 V suivie
d'un régulateur de tension 5 V, n'était pas assez "costaud" (résistance
interne trop forte) pour assurer un fonctionnement normal du PIC. Le
gros condensateur de découplage ajouté après coup (il y avait déjà le
100 nF sur le PIC), qui abaissait la résistance interne de la source de
tension permettait un petit mieux, mais ce n'était pas suffisant. Avec
une alim secteur adéquate (9 V / 1 A), tout allait bien mieux ! Je
voulais parler de cette petite aventure car durant tous nos échanges,
nous n'avions pas mentionné que la source de tension était une petite
pile. Si j'avais pensé à le demander dès le départ, le diagnostic
aurait été plus rapide. D'autant que là ma responsabilité était
fortement engagée, je n'avais pas mentionné la consommation maxi du
montage dans mon article (elle est de l'ordre de 140 mA, ce qui
correspond à 7 segments allumés en même temps - pour le chiffre "8"
bien sûr).
Prototype de Edouard C.
Merci à Edouard pour les retours et photos de sa réalisation maison, c'est très impressionnant !
Cette
version a fait l'objet d'une adaptation sur commande du schéma
d'origine et du logiciel du PIC. Elle appartient donc à Edouard et
ne peut être librement diffusée ici (
me contacter pour détails, si besoin).
Prototype des élèves de 5ème aidés de Thierry A.
Encore une horloge géante absolument géniale, réalisée par des élèves motivés et qui peuvent être fiers de leur travail !
Prototype de Jean-Jacques
Jean-Jacques
a lui aussi été séduit par cette horloge, en remplacement de celle
de sa salle de bain qui a rendu l'âme en chutant.
Prototype de Jean-Pierre C.
Autre version de l'horloge, mise en coffret par Jean-Pierre C.
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 V5.60.
Horloge 001 - 16F628A (03/02/2013)
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é.
Historique
05/11/2023
- Ajout photo prototype de Jean-Pierre C., que je remercie.
14/06/2015
- Ajout commentaire suppression zéro non significatif.
- Ajout photos prototype de Jean-Jacques.
- Ajout photos prototype réalisé par des élèves de cinquième.
09/03/2014
- Ajout photos du prototype d'Edouard (version avec afficheur géant).
24/02/2013
- Ajout photos du prototype de Julien, avec commentaire associé.
03/02/2013
-
Amélioration de l'affichage (scintillement moindre) et meilleur
comportement lors de l'appui sur les boutons de réglage (mise à jour en
temps réel). Pour cela, remplacement du quartz 32,768 kHz par un
de 8 MHz (il est certain que pour le multiplexage, l'augmentation de la vitesse de cadencement générale facilite bien des
choses).
- Ajout photos et vidéo de mon prototype.
27/03/2011
- Première mise à disposition.