Electronique > Réalisations > Affichage / Mesure > Décompteur / minuteur 002a

Dernière mise à jour : 03/08/2014

Présentation

La réalisation décrite ici concerne un décompteur / minuteur précis à la seconde, capable de décompter à partir de n'importe quelle valeur comprise entre 00h00'01" et 99h59'59". Il est basé sur l'emploi d'un microcontrôleur de type 16F628A et de quelques circuits logiques de type CD4511. L'idée qui a présidé à la réalisation de ce montage n'était pas de faire un circuit le plus simple possible d'un point de vue "mécanique", mais de faire un montage dont le fonctionnement matériel et logiciel était facile à comprendre. En somme un nouveau montage pour s'initier à l'éléctronique et à la programmation des PICs. Une autre réalisation du même genre, simplifiée d'un point de vue matériel (quatre digits au lieu de six et un seul circuit intégré), est présentée à la page Décompteur / minuteur 002b. Et une version plus précise (temporellement parlant) est présentée à la page Décompteur / minuteur 002c.

Schéma (002a)

Le circuit qui suit est complet. Promis.

decompteur_002a
Décompteur 002a

Fonctionnement général
Lors de la mise sous tension, le décompteur / minuteur affiche la dernière durée programmée par l'utilisateur. S'il s'agit de la première mise sous tension, la temporisation est réglée par défaut à 3 minutes (brossage dentaire ou oeuf à la coque). L'appui sur le bouton poussoir SW1 (Start / Stop) permet de démarrer la temporisation, et à partir de cet instant l'affichage se décrémente de une seconde toutes les secondes - ce qui est absolument formidable, il faut bien le reconnaître. Un nouvel appui sur le même bouton poussoir SW1 provoque l'arrêt du décompte. Un autre appui sur SW1 repositionne le compteur à sa valeur programmée, et un appui supplémentaire relance le décompte.

Réglage de la durée de temporisation
Il s'effectue grâce aux boutons poussoirs SW2 (Select), SW3 (Plus) et SW4 (Moins). SW2 permet de basculer entre le mode de programmation de la durée de la temporisation, et le mode normal d'utilisation, c'est à dire de décompte. SW3 et SW4 permettent respectivement d'augmenter ou de diminuer le chiffre en cours de sélection, qui est celui le plus à droite pour commencer (unité des secondes). Procédure de réglage :
1 - A partir du mode normal (led D2 / Prog éteinte), appuyer une fois sur SW2 (Select), la led D2 / Prog s'allume.
2 - Utiliser les boutons SW3 (Plus) et SW4 (Moins) pour incrémenter ou décrémenter les unités des secondes.
3 - Appuyer sur SW2 (Select) pour pouvoir modifier les dizaines de secondes avec les boutons SW3 (Plus) et SW4 (Moins).
4 - Appuyer sur SW2 (Select) pour pouvoir modifier les unités des minutes avec les boutons SW3 (Plus) et SW4 (Moins).
5 - Appuyer sur SW2 (Select) pour pouvoir modifier les dizaines de minutes avec les boutons SW3 (Plus) et SW4 (Moins).
6 - Appuyer sur SW2 (Select) pour pouvoir modifier les unités des heures avec les boutons SW3 (Plus) et SW4 (Moins).
7 - Appuyer sur SW2 (Select) pour pouvoir modifier les dizaines d'heures avec les boutons SW3 (Plus) et SW4 (Moins).
8 - Un septième appui sur SW2 (Select) permet de sélectionner le mode d'activation de la sortie (voir paragraphe suivant).
9 - Un huitième appui sur SW2 (Select) permet de sortir du mode de programmation (la led D2 / Prog s'éteint) et de retourner en mode normal.
Remarque : durant la programmation de la durée de temporisation, le décompte ne peut pas être ammorcé par appui sur SW1 (Start).

Mode d'activation de la sortie Out
Deux modes deux fonctionnement possibles, avec au repos (décompteur inactif), une sortie toujours désactivée (exemple d'utilisation de cette sortie, un peu plus loin).
Mode 0 : la sortie reste désactivée au démarrage de la temporisation, et n'est activée qu'à la fin du décompte (affichage 00h00'00").
Mode 1 : la sortie est activée au démarrage de la temporisation, et est désactivée à la fin du décompte (affichage 00h00'00").
Le choix du mode s'effectue grâce aux boutons poussoir SW2 (Select), SW3 (Plus) et SW4 (Moins), selon la procédure suivante :
1 - A partir du mode normal (led D2 / Prog éteinte), appuyer sept fois sur SW2 (au premier appui, la led D2 / Prog s'allume). Les cinq premiers chiffres de l'affichage passent à zéro et le sixième chiffre (unité des secondes en temps normal) indique le mode d'activation de la sortie en cours.
2 - Appuyer sur les boutons SW3 (Plus) et SW4 (Moins) pour passer dans le mode désiré.
3 - Un huitième appui sur SW2 (Select) permet de sortir du mode de programmation (la led D2 / Prog s'éteint) et de retourner en mode normal.
Remarque : durant la programmation du mode d'activation de la sortie, le décompte ne peut pas être ammorcé par appui sur SW1 (Start).

Base de temps
Afin de disposer d'une bonne précision sur les secondes, il est fait usage d'une interruption du timer 1 et non de la simplicime fonction Delay_ms(1000), pas suffisement précise pour une programmation sur longue durée. Comme il est impossible d'avoir une base de temps de précisement une seconde directement avec le compteur 16 bits du timer 1, la fréquence de répétition des interruptions est fixée à 10 Hz, c'est à dire que l'on a droit à une interruption toutes les 100 ms. Chacune de ces interruptions incrémente un compteur additionnel (une simple variable ajoutée dans le code) qui est remise à zéro toutes les dix interruptions, afin de constituer la base de temps de une seconde voulue. Cela complique un tout petit peu le code mais garantit une bonne précision sur long terme. A noter tout de même qu'il est ici fait usage de l'oscillateur interne 4 MHz du PIC et qu'aucun quartz externe ne vient stabiliser la base de temps. La précision ne sera donc pas forcement excellente tout le temps.

Utilisation de la sortie Out
La sortie Out se fait sur le port RA4 du PIC, cette sortie est de type collecteur ouvert et est capable d'absorber un courant maximal de 25 mA. Vous pouvez y raccorder un relais basse consommation (max 20 mA) avec une diode en parallèle sur la bobine, un opto-triac si l'appareil commandé s'alimente sur le secteur 230 V, ou mettre tout simplement un petit buzzer électromécanique - ou électronique avec oscillateur intégré - si un avertisseur sonore suffit.

Fichiers compilés et codes sources

Fichier compilé pour PIC (binaire *.hex) et codes sources complets (mikroPascal Pro V2.50)
Décompteur 002a - 16F628A (version à six afficheurs) - (29/07/2014)
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

03/08/2014
- Correction bug vitesse défilement. J'avais laissé dans la routine d'interruption, une portion de code qui accélérait le défilement et me permettait de gagner du temps durant les tests.
08/08/2009
- Première mise à disposition.