Electronique > Réalisations > Affichage / Mesure > Chronomètre 001c

Dernière mise à jour : 19/12/2010

Présentation

Ce chronomètre est une petite variation du chronomètre 001b. Il permet un comptage au centième de seconde près et non plus à la seconde près.

chronometre_001c_proto_001c

En revanche, il n'affiche plus les heures et s'arrête de compter à 99 minutes 59 secondes 99 centièmes de secondes. Tout comme son ancètre 001b, la précision est celle permise par son oscillateur à quartz, donc suffisante pour grand nombre d'applications. Là encore il est fait usage de six afficheurs à leds sept segments à anode commune 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 minutes. 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.

Avertissements

J'ai testé pratiquement ce montage après l'avoir simulé avec succès, mais seulement avec quatre afficheurs sur les six (secondes et centièmes). Je ne pense pas que l'affichage des minutes pose problème mais je préfère signaler que le test n'a pas été complet.

Schéma

Usage de deux circuits intégrés fonctionnant tous deux sous 5 V, couplés à six afficheurs sept segments et six transistors courants.

electronique_chronometre_001c

Vous ne serez sans doute pas surpris de retrouver un schéma quasiment identique à celui du chronomètre 001b. Les différences principales résident dans le logiciel du PIC et dans la base de temps portée à 8 MHz (quartz externe 8 MHz contre précédement 4 MHz interne). Deux condensateurs ont en outre été ajoutés sur les poussoirs START et PAUSE, nous en reparlerons plus loin.

Fonctionnement général
Le PIC est programmé pour délivrer une interruption toutes les 10 ms, c'est ce qui permet la précision au centième de seconde. 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. Du fait que l'on souhaite une précision au centième de seconde, il est hors de question d'utiliser des routines logicielles d'anti-rebond sur les poussoirs START et PAUSE qui durent plusieurs dizaines de ms. J'ai donc opté pour un debouncing (anti-rebond logiciel) de seulement 10 ms, avec des condensateurs de 100 nF en parallèle sur les poussoirs en question. De cette façon, on conserve une précision de 1 centième de seconde sur la mise en route et sur l'arrêt du comptage. Ce qui signifie que la précision de l'affichage entre START et PAUSE sera de 2 centièmes de seconde. Pour la remise à zéro, point besoin de cette précision temporelle.

Start et Pause par barrière lumineuse
Ce montage a été conçu pour chronométrer un parcours d'obstacles (agility et éducation canine). Les tops de départ et d'arrivé peuvent être donnés par appui sur des boutons poussoir mais je conseille l'utilisation d'une barrière lumineuse au départ et à l'arrivée pour "uniformiser" les temps de réaction du circuit pour chaque "participant". Une simple impulsion commandant un transistor monté en émetteur commun fera parfaitement l'affaire : commande arrivant sur la base d'un transistor NPN (2N2222 ou BC108 par exemple), émetteur du transistor à la masse et collecteur sur l'entrée START ou STOP du PIC. En somme, émetteur et collecteur du transistor se retrouvent en parallèle sur le bouton poussoir et font office d'interrupteur.

chronometre_001c_cde_elec_001a

Une solution assez "classe" consiste à utiliser le faisceau laser d'un pointeur laser 1 mW premier prix pour constituer la ou les barrières lumineuses. Voir page Barrière lumineuse 001 pour un exemple pratique.

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 100 Hz pour chaque afficheur (environ 600 Hz pour les six), ce qui permet de ne pas voir les segments scintiller.

Logiciel du PIC

Code source (format MikroPascal Pro V3.80) et fichier binaire compilé *.hex disponible dans l'archive suivante.
Chronomètre 001c - 16F628A (19/12/2010)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Prototype

Réalisé sur plaque sans soudure, avec les liaisons qui vont bien vers la platine EasyPic4.

chronometre_001c_proto_001a chronometre_001c_proto_001b chronometre_001c_proto_001c

Comme dit en avertissement, tests effectués avec quatre afficheurs seulement sur les six normalement requis, secondes et centièmes de secondes.

Circuit imprimé

Non réalisé.

Corrections et remarques

19/12/2010
- Mise à jour du code logiciel d'une part pour éviter que les afficheurs éclairent moins quand on appuie sur les boutons Start ou Pause, mais surtout pour que le comptage ne soit pas ralenti quand l'impulsion de démarrage perdure. A l'origine il fallait une impulsion de durée comprise entre 10 et 15  ms, désormais l'impulsion peut durer tant qu'on veut, du moment qu'elle s'arrête avant l'arrivée de l'impulsion de STOP.