Dernière mise à jour :
05/05/2019
Présentation
Cette minuterie a été développée pour usage en cuisine, mais nul doute
qu'elle peut trouver place ailleurs (salon, cave ou terrain de foot).

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 cuisson 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 croquemonsieurs, une autre
touche encore pour minuterie de 8 minutes pour les pâtes, 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.

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 :
- soit appuyer sur le bouton Start si la valeur en cours est la bonne,
- soit appuyer sur le preset qui correspond à la durée désirée (si déjà disponible),
- soit
spécifier une nouvelle valeur avec les touches Min-, Min+, Sec- et Sec+
(incrément ou décrément des minutes et des secondes).
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 liaisons
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 évidemment
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 individuels
à cathode commune 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).

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é dans 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
Un prototype de mon cru, et un autre de Sébastien B., qui a légèrement complété la machine ;)
Mon prototype
Le montage a été testé avec succès avec ma 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.
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.
Prototype de Sébastien
Plus qu'un simple prototype, puisqu'il s'agit d'une réalisation complète, duement mise en boîte.

Commentaire de Sébastien :
Le
biniou pilote un four électrique (environ 16A) commandé par un petit
contacteur avec une isolation galvanique (4n25) pour isoler le 12V=
(relais) de la sortie microcontrôleur qui est en 5V= au cas où le
transistor de sortie (BC557) viendrait à faiblir je n'aurai pas de
court-circuit entre le 5V= et le 12V=. J'ai ajouté un petit ampli mono
à la sortie buzzer pour qu'on l'entende de loin. De tout cœur je te
remercie pour toute l'aide que tu m'as apportée pour le montage
et ses modifications. Merci pour ces retours et photos
! A noter que pour cette minuterie, le logiciel du PIC a été légèrement
revu, pour diffuser en boucle une petite mélodie de fin qu'on doit
arrêter manuellement. Pratique quand on s'est absenté quelques
minutes... ou quand comme moi on met parfois la musique un peu forte
(cela m'encourage lors des séances ménage, repassage ou autre
vaisselle).
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
05/05/2019
- Ajout photos réalisation de Sébastien B., que je remercie pour ses retours.
22/11/2015
- Correction bug sur sortie principale (sortie non activée en fin de temporisation).
15/04/2012
- Première mise à disposition.