Vous êtes sur la page 1sur 1

Projet à microcontrôleur PIC 16F84A / 16F628A

Minuteur longue durée


1. Version 5 digits
1.1. Présentation
1.2. Règle d'utilisation
1.3. Schémas électriques
1.4. Principe de fonctionnement
1.5. Liste du matériel
1.6. Le circuit imprimé
1.7. Codes sources des microcontrôleurs
2. Version 6 digits (d'après une idée originale de Olivier Flayols)

Vidéo réalisée par Marc Paradis (version buzzer) :


http://www.youtube.com/watch?v=qwi5j2yNDpQ&feature=youtu.be

Version relais :
http://youtu.be/J9Jga2H1Y3E

1. Minuteur longue durée, version à 5 digits


1.1. Présentation
Il s'agit d'un minuteur que l'on peut régler de 0:00:01 (1 seconde) à 9:59:59 (9 h 59 min et 59 s) avec un pas de 1 seconde.

Ce minuteur pourra aussi bien servir pour la phase d'insolation par UV d'un circuit imprimé (1 min 45 s) que pour la cuisson lente de meringues (4 heures) !

Photo -> Le minuteur longue durée avec son buzzer (schéma version A) :

1.2. Règle d'utilisation


-> A la mise sous tension, les afficheurs indiquent 0:00:00.

-> Le bouton poussoir SELECTION DIGIT sélectionne successivement un des 5 digits : le digit actif clignote.

Le bouton poussoir SELECTION VALEUR permet de choisir la valeur désirée, pour le digit actif.

-> Une fois le réglage fait, il faut appuyer sur le bouton poussoir START/STOP pour lancer le compte à rebours. La durée restante est affichée et actualisée toutes les secondes.

N.B. Si on appuie sur le bouton poussoir SELECTION DIGIT ou SELECTION VALEUR, on revient dans le mode réglage.

-> A la fin du compte à rebours (0:00:00) :

dans la version A : le buzzer sonne avec un cycle de 2 secondes


dans la version B : le relais est activé (sortie RB6 = 1),

et ce tant que l'on a pas appuyé sur le bouton poussoir START/STOP.

Le circuit retourne alors dans l'état initial (comme après la mise sous tension).

1.3. Schémas électriques


Schéma version A : commande d'un buzzer :

Schéma version B : commande d'un relais :

La différence avec le schéma de la version A est :

1.4. Principe de fonctionnement

Le microcontrôleur utilise une seule source d'interruption (module TMR0 en mode timer).

Cette interruption fournit une base de temps nominale de 1/514 seconde (avec un quartz de précision 100 ppm, cela donne un écart inférieur à 4 secondes pour une durée de 10 heures).

La routine d'interruption assume la gestion de l'affichage, des trois boutons poussoirs et la commande du buzzer.

L'affichage se fait avec 5 afficheurs (7 segments à LED, anodes communes), à commande multiplexée.

Le multiplexage permet de commander les 5 digits avec seulement 7 + 5 = 12 fils.

Le décodeur BCD / 7 segments (74LS47) libère 3 broches au niveau du microcontrôleur.

En définitive, 13 entrées/sorties (sur 13, ce qui justifie la présence du 74LS47) du PIC 16F84A sont utilisées :

9 sorties pour la commande des 5 afficheurs


3 entrées pour les boutons poussoirs
1 sortie pour la commande du buzzer

1.5. Liste du matériel


Commun aux deux versions :

1 programmateur pour flasher le programme du microcontrôleur PIC

1 microcontrôleur PIC 16F84A ou 16F628A


Remarque : Vous pouvez demander des échantillons gratuits chez Microchip :-)
1 74LS47 (décodeur BCD / 7 segments)
1 quartz de 20 MHz (ou 10 MHz : dans le code source, modifier le prescaler en conséquence)
5 transistors 2N2907 (PNP)
5 résistances 4,7 k 1/4 W
8 résistances de 220 ohms (en réseau)
3 boutons poussoirs (ouverts au repos)
1 cavalier (marche / arrêt)
1 module d'affichage Agilent HDSP-B08G ou équivalent (anode commune)
1 afficheur 7 segments à anode commune (SA56-11 ou équivalent)
1 condensateur électrochimique de 10 µF
1 condensateur électrochimique de 100 µF
4 condensateurs de 100 nF
2 condensateurs de 22 pF
1 régulateur de tension 7805
1 source de tension continue 9 V ou 12 V

Version A : commande d'un buzzer

1 buzzer
1 transistor 2N2222 (NPN)
1 résistance 4,7 k 1/4 W

Version B : commande d'un relais

un relais électromécanique 12 V / 230 V :


normalement ouvert si l'on veut mettre sous tension la charge en fin de temporisation
normalement fermé si l'on veut mettre hors tension la charge en fin de temporisation
1 résistance 1 k 1/4 W (à calculer en fonction de la résistance de la bobine du relais)
1 transistor 2N1711 (NPN)
1 diode de roue libre 1N4007

1.6. Le circuit imprimé (version A seulement)


Dimension : 90 x 100 mm

Double face.

Télécharger le typon

Remarques :

La phase de soudage est délicate : il faut souder les supports de circuits intégrés sur les 2 faces, et le soudage des transistors (boîtier TO18) demande beaucoup de minutie.

On n'oubliera pas les 12 straps.

Le cavalier Marche/Arrêt est facultatif : on peut le shunter avec un strap.

1.7. Codes sources des microcontrôleurs


Le code source a été écrit en langage assembleur avec l'environnement de développement gratuit MPLAB IDE de Microchip.

Version A :

16F84A : Télécharger le code source en assembleur (.asm)


16F84A : Télécharger le code objet (.HEX)
16F628A : Télécharger le code source en assembleur (.asm)
16F628A : Télécharger le code objet (.HEX)

Version B :

16F84A : Télécharger le code source en assembleur (.asm)


16F84A : Télécharger le code objet (.HEX)
16F628A : Télécharger le code source en assembleur (.asm)
16F628A : Télécharger le code objet (.HEX)

2. Minuteur longue durée, version à 6 digits (d'après une idée originale de Olivier Flayols)

On peut régler ce minuteur de 0:00:01 (1 seconde) à 99:59:59 (99 h 59 min et 59 s) avec un pas de 1 seconde, ce qui devrait ravir les fans de la série télé Sliders.

Schéma électrique

Par rapport à la version 5 digits, on a libéré la broche RB6 (commande du buzzer) pour commander à la place un transistor contrôlant le 6ème afficheur.

Photo et réalisation : Olivier Flayols

Code source du microcontrôleur


Le code source a été écrit en langage assembleur avec l'environnement de développement gratuit MPLAB IDE de Microchip.

La modification du code (passage de la version 5 digits à la version 6 digits) a été réalisée par Olivier Flayols.

16F628A : Télécharger le code source en assembleur (.asm)


16F628A : Télécharger le code objet (.HEX)

(C) Fabrice Sincère ; Révision 1.2.6.