Cette minuterie a été développée pour usage en cuisine, mais elle peut trouver sa 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, j'ai pensé 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 7 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.
Voici donc le descriptif d'une telle réalisation, qui se base sur un microcontrôleur PIC 18F2520. L'affichage du temps se fait sur des afficheurs LED sept segments dont le câblage est multipléxé. La fin de la temporisation en cours est signalée par une petite mélodie.
Un PIC, quatre afficheurs LED 7 segments et un "clavier" de 16 touches. Plus deux, trois choses à remarquer, à gauche ou à droite.
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.
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 : délivrer une petite mélodie pour annoncer que les carottes sont cuites.
On
dispose de seize boutons-poussoirs dont deux broches sont câblées, 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.
Important : n'ayant pas prévu de diodes de protection sur la matrice de boutons-poussoirs, il ne faudra pas presser plusieurs boutons en même temps, sous peine d'endommager le microcontrôleur ! (ceci dit, une erreur sur mon second prototype a mis en court-circuit tous les boutons-poussoirs, et le PIC est toujours opérationnel après correction).
L'affichage peut être assuré par quatre afficheurs individuels à cathode commune de type D350PK (comme indiqué sur le schéma 001), soit par un bloc d'affichage 4 digits où le multiplexage des broches est réalisé en interne, comme le HDSP-B09G (cathode commune) utilisé pour mon affichage LED 007 ou le CC56-21SURKWA (schéma 001b ci-après).
Schéma identique au précédent, excepté pour la
partie affichage où les quatre afficheurs 7 segments
individuels ont été remplacés par un unique bloc d'affichage 4 digits.
-
La procédure à suivre pour enregistrer une durée donnée pour un preset donné est la suivante.
1 - S'assurer que la minuterie est en mode arrêt, c'est plus pratique.Ce n'est pas compliqué, il faut juste s'en souvenir.
Pour une minuterie dont le temps est déjà programmé dans un preset, il suffit d'appuyer sur le bouton correspondant, puis d'appuyer sur le bouton START. 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 (on pourrait l'appeler Preset #0).
Quand le temps de la minuterie est écoulé, une petite mélodie se fait entendre dans un transducteur piezo. Le fait d'utiliser une séquence de plusieurs notes de hauteur différente permet d'entendre la mélodie même en présence de bruits parasites.
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.
Deux prototypes de mon cru et un autre de Sébastien B., qui a légèrement complété la machine ;)
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.
Réalisation sur PCB pro avec 4 afficheurs 7 segments séparés (version 001).
Les deux premières photos ci-devant ont été prises à 22 secondes d'intervale, un exploit que je suis en mesure de prouver. La troisième photo montre le système alors que je m'apprêtais à enregistrer une configuration dans le preset #3, une heure trente plus tard. La quatrième photo montre le transducteur piezo économique et extra-plat que j'ai installé pour l'avertissement sonore de fin de temporisation et dont le niveau sonore est ridicule (croyez-vous que cela ait un rapport avec son très faible prix - 1 euro les dix ?).
Avant
que ce prototype fonctionne correctement,
j'ai du corriger à la pince coupante et au cutter une erreur de
routage au niveau des 16 boutons-poussoirs. J'avais en effet câblé
ces derniers de telle sorte que toutes les liaisons de la matrice
clavier 4x4 étaient en court-circuit ! Je ne comprenais pas pourquoi la
minuterie se mettait en route dès la mise sous tension, alors que
normalement elle devait attendre une action de ma part. Autre détail
qui m'a troublé plusieurs minutes, il était impossible de programmer le
PIC in situ (ICSP) et j'ai dû le programmer avec un support
extérieur. J'ai
vite compris qu'un court-circuit franc entre les lignes PGC et PGD (à
travers l'inénarrable matrice clavier) contrariait
le programmateur... Le fichier PCB mis à disposition a bien
entendu été
corrigé.
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 Sébastien 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 (la musique me donne du courage pour le ménage, le repassage et la vaisselle).
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.
Réalisé en double face pour les versions 001 (quatre afficheurs 7 segments séparés) et 001b (bloc afficheur 4 x 7 segments).
Circuits imprimés (PCB) au format PDF - versions 001 et 001b du 21/05/2022
30/01/2022
- Ajout schéma avec bloc d'affichage unique à 4 digits (001b).
- Ajout dessin de circuit imprimé (PCB) pour les deux versions 001 et 001b.
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.