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