Electronique > Réalisations > Minuterie 001

Dernière mise à jour : 22/11/2015

Présentation

Cette minuterie a été développée pour usage en cuisine, mais nul doute qu'elle peut trouver place ailleurs.

minuterie_001_pcb_3d_a

Elle dispose d'un affichage allant de 00:01 (1 seconde) à 99:59 (99 minutes et 59 secondes). Comme en pratique on a souvent besoin des mêmes temporisations, je me suis dit qu'il serait pratique de disposer de touches "preset" qui appelleraient les temps de cuissons les plus fréquents. Par exemple une touche pour minuterie 3 minutes pour les oeufs à la coque, une autre touche pour minuterie de 4 minutes pour les croque-monsieurs, une autre touche encore pour minuterie de 8 minutes pour les pates, etc. Bien entendu, chaque preset doit pouvoir être modifiable à volonté, et on doit pouvoir spécifier n'importe quelle valeur sans appeler un preset. Pour une utilisation pratique la plus simple possible, j'ai décidé que l'appui sur une touche preset chargerait la valeur de la minuterie et la démarrerait aussitôt. Voici donc le descriptif d'une telle réalisation, qui se base sur un PIC 18F2520, composant peut-être connu des bidouilleurs qui touchent aux microcontrôleurs PIC. L'affichage du temps se fait sur des afficheurs LED sept segments dont le câblage est multipléxé, et la fin de la temporisation en cours est signalée par une petite mélodie. 

Schéma

Un PIC, quatre afficheurs et un clavier 16 touches. Plus deux, trois choses que vous aurez remarquées à gauche ou à droite.

minuterie_001

Principe général de fonctionnement
Lorsqu'on met la minuterie sous tension, la dernière valeur de temporisation a avoir été utilisée est rappelée mais le décomptage ne démarre pas. Il faut :
N'importe quelle valeur comprise entre 00:01 et 99:59 peut être enregistrée dans un des huit presets disponibles.

Coeur du montage
Le plus gros du travail repose sur l'emploi du PIC 18F2520, qui sait comme d'habitude se mettre au centre de la conversation et parfois même au centre des schémas. Ce composant exécute à la queue-leu-leu les instructions qu'on lui a fait ingérer, à la vitesse de base de 8 MHz, fréquence fixée par le quartz externe X1 (soit 2 MHz en interne, parce que c'est comme ça, un point c'est tout). Si on y regarde de près, on ne réclame à ce microcontrôleur que peu de choses. D'un côté on lui demande de surveiller l'état des boutons poussoirs SW1 à SW16 et de réagir quand l'un d'eux est enfoncé. D'un autre côté, on lui demande d'afficher une valeur temporelle sous forme de minutes et secondes. C'est peut-être cette tâche qui est la plus compliquée à écrire, à comprendre ou à imaginer. Ah si, une troisième fonction lui incombe : générer une petite mélodie pour annoncer que les carottes sont cuites.

Lecture des boutons poussoirs
On a seize boutons à deux broches, on a donc besoin de 8 fils. Logique puisque 16 x 2 = 32 et que 8 est un sous-multiple de plein de nombres. Sérieusement, on utilise ici le principe de la matrice 4x4 (quatre rangées de quatre boutons, ou quatre colonnes de quatre boutons, cherchez la différence) qui permet de diminuer le nombre de liaison entre les boutons et le microcontrôleur, le tout sans consommer d'essence. Un must ! Quatre lignes du PORTB du PIC envoient régulièrement des signaux tandis que quatre autres lignes du même port regardent si les signaux envoyés reviennent (ce qui n'arrive que si on appuie sur au moins un bouton). Un classique, qui ne l'est évidement pas pour celui qui découvre ce procédé. Sans ce principe de matriçage (multiplexage), il aurait fallu 16 lignes au PIC pour y raccorder les 16 boutons poussoir.

Affichage du temps
Il peut se faire soit avec quatre afficheurs à cathode commune individuels de type D350PK (comme indiqué sur le schéma), soit avec un bloc d'affichage où le multiplexage des broches est réalisé en interne, comme le HDSP-B09G utilisé pour mon affichage LED 007 (type cathode commune là encore).

afficheur_leds_7_seg_4_digits_001a

Programmation d'un preset
La procédure à suivre pour spécifier un temps donné pour un preset donné est la suivante.
1 - S'assurer que la minuterie est en mode arrêt, c'est plus pratique.
2 - Utiliser les touches Min-, Min+, Sec- et Sec+ pour spécifier le temps désiré.
3 - Appuyer sur la touche SW16/Save, l'afficheur indique alors "Pr--"
4 - Appuyer sur la touche de preset désirée.
Ce n'est pas compliqué, il faut juste s'en souvenir.

Démarrage d'une minuterie
Pour une minuterie dont le temps est déjà programmée dan un preset, il suffit d'appuyer sur le bouton correspondant. Pour ma part j'ai adopté des temps allant croissant, depuis le premier bouton de preset jusqu'au dernier : Preset #1 pour réchauffage café pendant 30 secondes, Preset #2 pour bol de lait durant 1 minute, Preset #3 pour oeuf à la coque, etc.
Pour utiliser une durée qui n'est enregistrée dans aucun des presets, il suffit d'utiliser les touches Min-, Min+, Sec- et Sec+ et d'appuyer sur le bouton Départ. Notez que cette façon de faire permet l'usage d'une durée qui ne sera conservée dans aucun des huit presets, mais qui est tout de même sauvegardée et rappelée lors de la remise sous tension suivante.

Mélodie de fin de parcours
Quand le temps de la minuterie est écoulé, une petite mélodie se fait entendre dans un transducteur piezo.

Sortie de commande
La sortie Out est à l'état bas quand la minuterie est en route et passe à l'état haut quand l'affichage arrive à terme (à zéro). Vous pouvez brancher sur cette sortie ce que vous voulez du moment que la chose ne consomme pas plus de 20 mA sous 5 V (une LED ou une interface pour lampe de puissance, par exemple). De mon côté, je n'utilise pas cette sortie.

Prototype

Le montage a été testé avec succès avec ma toute nouvelle platine de développement EasyPic7. Une petite plaque d'expérimentation sans soudure fait le lien entre la platine EasyPic7 et le clavier et circuit d'affichage à LED. Un seul composant sur cette plaque sans soudure, le réseau des résistances câblées sur les lignes du PIC qui vont au clavier matricé 4 x 4.

minuterie_001_proto_001a minuterie_001_proto_001b minuterie_001_proto_001c minuterie_001_proto_001d

Pour la partie affichage, j'ai utilisé mon affichage LED 007 qui intègre déjà les résistances et transistors de commande des digits. Logique, je l'avais justement fait pour me simplifier la vie lors de mes essais.

Logiciel du PIC

Fichier binaire compilé (*.hex) prêt à flasher dans le PIC et code source MikroPascal Pro (V5.30), dans l'archive zip que voici :
Minuterie 001 - 18F2520 (version du 19/11/2015)
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é. Le circuit montré en haut de page est virtuel.

Historique

22/11/2015
- Correction bug sur sortie principale (sortie non activée en fin de temporisation).
15/04/2012
- Première mise à disposition.