Dernière mise à jour :
05/11/2023
Présentation
Le présent chronomètre permet un comptage entre 00h00'00'' et 23h59'59'', en utilisant six
afficheurs
à LED sept segments câblés pour fonctionner en
mode multiplexé.
Il est possible de ne conserver que quatre afficheurs sur les six si
l'affichage souhaité ne nécessite pas la présence des secondes ou des
heures : suppression des deux afficheurs des secondes pour un affichage
compris entre 00h00' et 23h59', ou suppression des deux afficheurs des
heures pour un affichage compris entre 00'00'' et 23'59''. Version avec
PIC 16F628A associé à un décodeur TTL sept segments de
type SN7447.
Caractéristiques principales
- Entrée START, pour démarrage depuis zéro ou pour reprise sur pause.
- Entrée PAUSE pour arrêt avec mémorisation valeur en cours.
-
Entrée MR (Memory Reset) pour remise à zéro générale.
- Entrée LT (Light Test) pour test affichage
Avertissement
Cette
version est intéressante pour se faire la main avec un montage qui
fonctionne bien dans le principe mais qui n'est pas vraiment utilisable
en pratique, pour cause de précision temporelle insuffisante. Pour une
version plus sérieuse et plus précise, merci de vous reporter à la page
Chronomètre 001b pour une résolution de 1 seconde ou à la page
Chronomètre 001c pour une résolution au centième de seconde.
Schéma
Usage de deux circuits intégrés fonctionnant tous deux
sous 5 V, de six afficheurs sept segments et de six transistors courants qui n'attendaient que ça.
-
Fonctionnement général
Il est vraiment très simple ! Le PIC est programmé pour
délivrer une
interruption toutes les secondes (en fait une interruption toutes les
50 ms, qui sont ensuite comptées par paquets de 20). Si le chronomètre
est
démarré (appui
sur la touche SW1 / START ou commande via un transistor à
collecteur ouvert par exemple), les interruptions incrémentent
un compteur et l'affichage est mis à jour. Si le
chronomètre est en mode pause (appui sur le poussoir SW2 /
PAUSE), le compteur ne reçoit plus rien mais
conserve sa valeur en cours, qui reste affichée. Un nouvel appui
sur SW1 / START redémarre le comptage là où il
était arrêté. L'appui sur le bouton
SW3 / MR (RAZ) remet le compteur à zéro. Un appui sur le
poussoir SW4 / LT (Light Test) permet de vérifier le bon
fonctionnement de l'ensemble des segments de tous les afficheurs, en
les allumant tous à la fois. Si le mode "Test Lampes" est
activé durant un comptage, ce dernier n'est pas affecté
et tourne toujours "au fond".
Multiplexage
L'affichage
est de type multipléxé, les afficheurs sont allumés les uns après les
autres, ce qui permet d'économiser de l'énergie et de limiter le nombre
de fils de câblage. Pour plus de détails, merci de vous reporter à la
page
Affichage
et multiplexage.
La fréquence de raffraichissement est de l'ordre de 30 Hz
pour chaque afficheur (environ 200 Hz pour les six), ce qui
permet de ne pas voir les segments scintiller trop.
Choix dy type d'horloge
Vous
noterez rapidement, je pense, l'absence de quartz pour la section
horloge. La raison en est simple, c'est l'horloge interne du PIC (4
MHz) qui est utilisée. La précision de l'horloge interne est moindre
(un peu plus sensible aux variations de température ambiante) que celle
que l'on pourrait obtenir avec un quartz externe de 4 MHz, auquel on
pourrait en plus ajouter un petit condensateur ajustable pour peaufiner
le tout aux petits oignons. Cela est bien sûr possible, mais pour cela
il faut libérer les deux broches OSC1 et OSC2, et donc déporter les
deux fils de commande des deux derniers afficheurs sur d'autres broches
du PIC. La borne RA5 n'est utilisable qu'en entrée, donc pas possible.
Déporter une des entrées du port B vers cette entrée RA5 ? Oui, c'est
possible. Ne plus utiliser la sortie Dépassement / OVL et libérer ainsi
une ligne supplémentaire ? C'est aussi possible. Bref, la solution
existe et elle n'est pas difficile à mettre en oeuvre. Une version
Chronomètre 001b avec quartz externe peut donc voir le jour, si
toutefois il y a de la demande. Tiens, il y a justement demande, je
vous donne donc rendez-vous à la page
Chronomètre 001b dès maintenant.
Logiciel du PIC
Code source (format MikroPascal V8.3) et fichier binaire compilé *.hex
disponible dans l'archive suivante.
Chronomètre
001 - 16F628A (16/09/2009)
Si
vous souhaitez recevoir par la poste un PIC préprogrammé
et prêt à utiliser, merci de consulter la page
PIC - Sources.
Prototypes
-
Mon prototype
Réalisé sur plaque sans soudure, avec ma carte
Afficheur leds 7 segment 003, le tout en liaison avec ma carte EasyPic4.
Lors de la première mise en route, le proto ne fonctionnait pas
correctement : d'un point de vue
comptage - Start, Stop et Reset - tout était OK, mais les
chiffres ne
s'allumaient pas tous avec la même intensité, alors qu'ils
étaient sensés se partager des tranches de temps
égales. Le premier chiffre s'allumait toujours plein pot et les
autres, presque pas.
J'ai tout d'abord pensé à une erreur dans le code
logiciel du PIC, bien que le simulateur Proteus m'indiquait que de ce
côté là tout était OK (aucun afficheur
n'avait à priori un temps d'affichage plus long que celui
attribué aux autres). J'ai passé au moins deux heures
à chercher le problème dans le logiciel, tellement
jétais sûr qu'il venait de là. Et puis tout d'un
coup, je me suis dit qu'il ne serait pas bête de changer les
transistors pilotant les afficheurs... juste pour voir. Bingo ! Un des
quatre transistors (celui qui pilotait l'afficheur N° 1 sur la
photo) était en court-circuit entre émetteur et
collecteur, ce qui faisait que l'afficheur était toujours
alimenté. Je l'ai changé, et là tout allait
nettement mieux !
Etre têtu comme je le suis, c'est tout de même quelque chose !
Prototype de Jean-Pierre C.
Jolie mise en boîte du chronomètre, qui est utilisé dans une voiture (alimentation par prise allume-cigare).
Circuit imprimé
Non réalisé.
Historique
05/11/2023
- Ajout photo prototype de Jean-Pierre C., que je remercie.
16/09/2009
-
Correction logiciel PIC. Avec le code publié le 13/09/2009, les heures
n'étaient pas incrémentées et les minutes étaient incrémentées de deux
points toutes les heures. C'est bête, mais je m'étais contenté de faire
les tests sur une périodes de quelques minutes, ce que j'avais jugé
suffisant. Comme quoi...