Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /home/clients/db62a7f73729021974202bbfe60264f9/sites/hfelec.ch/models/UsersManager.php on line 18
Blog de Conception Électronique - Tutoriels et Astuces
Logo Central

Minuteur

Après le succès de mon premier minuteur, j'ai décidé de le moderniser et de l'améliorer tout en conservant un faible encombrement. Voici les améliorations apportées :

Ce minuteur est principalement destiné à une utilisation en cuisine, il doit être facilement réglable et peu encombrant.

ancien minuteur

Pour le choix des composants, j'ai sélectionné le microcontrôleur STM32L100RC que j'ai déjà utilisé dans plusieurs de mes projets. Ce microcontrôleur présente l'avantage d'avoir une faible consommation d'énergie.

Pour l'affichage, le EADOG102 me semble parfaitement adapté à mon utilisation, étant le plus petit écran LCD graphique que j'ai pu trouver. La gestion de la consommation du système est cruciale pour moi, car je cherche à minimiser la consommation afin d'obtenir la meilleure autonomie possible avec une pile bouton de type CR2450.

Dans la version précédente, j'utilisais un switch de type joystick pour le réglage. Cependant, ce composant est devenu difficile à trouver et assez fragile. C'est pourquoi j'ai décidé de le remplacer par un encodeur rotatif.

 affichage lcd graphique
 encodeur incrémentale

Le schéma électronique

Le bouton poussoir de l'encodeur rotatif est utilisé pour enclencher l'alimentation via le transistor (Q2), tandis que le microprocesseur maintient l'alimentation par l'intermédiaire du transistor (Q1).

Pour le buzzer, j'ai intégré un transistor (Q3) en configuration émetteur-suiveur afin d'amplifier le courant à partir de la sortie DAC du microcontrôleur.

Pour minimiser la consommation, j'ai également ajouté un dispositif pour couper l'alimentation du module Bluetooth via le transistor (Q4).

Enfin, j'ai inclus un pont résistif pour mesurer la tension de la batterie et ainsi être averti lorsque celle-ci nécessite un remplacement.

 figure schéma électronique

Construction

J'ai cherché le boitier le plus petit possible. 1552C1BK - Boîtier plastique, Portatif, 50x70x22mm, Noir, ABS, IP54, Hammond.
image du boitier
id Référence Empreinte Quantité Désignation
1 C1,C3,C5,C2,C10 C_0805_2012Metric_Pad1.18x1.45mm_HandSolder 5 100n
2R3,R2,R7,R4R_0805_2012Metric_Pad1.18x1.45mm_HandSolder410
3C7,C8C_0805_2012Metric_Pad1.18x1.45mm_HandSolder26.8p
4C18,C11,C9C_0805_2012Metric_Pad1.18x1.45mm_HandSolder31u
5R10R_0805_2012Metric_Pad1.20x1.40mm_HandSolder110K
6D1,D2,D3D_MiniMELF3LL4148
7R14,R5,R1,R11R_0805_2012Metric_Pad1.20x1.40mm_HandSolder4100K
7R9R_0805_2012Metric_Pad1.20x1.40mm_HandSolder1100
9SW1SW_Push_SPST_NO_Alps_SKRK1SW_Push
10R8R_0805_2012Metric_Pad1.20x1.40mm_HandSolder147K
11Y1Crystal_SMD_2012-2Pin_2.0x1.2mm132.768
12R6R_0805_2012Metric_Pad1.20x1.40mm_HandSolder1510
13SW2PEC11L_Encodeur1RotaryEncoder_Switch
14Q3,Q1SOT-232BC850
15C20,C19,C6C_1206_3216Metric_Pad1.33x1.80mm_HandSolder310u
16C4C_0805_2012Metric_Pad1.18x1.45mm_HandSolder11n
18Q2,Q4SOT-232BC860
19U2LQFP-64_10x10mm_P0.5mm1STM32L100RCTx
20U4EA-DOGS1021EA_DOGS102-6
21R12R_0805_2012Metric_Pad1.20x1.40mm_HandSolder115K
22J1PinHeader_2x05_P1.27mm_Vertical_SMD1Conn_02x05_Odd_Even
23BZ1EKULIT-11Buzzer
24U1ST_SPBTLE1SPBTLE-RF
25BT1Support pile CR24501Battery_Cell

Réalisation du PCB

Malheureusement, je ne peux pas utiliser les deux broches mécaniques de l'encodeur rotatif en raison du manque d'espace ; je devrai les couper ! J'ai soigneusement évité la zone sous le module Bluetooth pour ne pas perturber la communication.


image du PCB top
image du PCB bottom
image du PCB
Pour garantir la faisabilité du montage, j'ai utilisé Freecad pour simuler la construction en 3D. La plupart des footprints disposent déjà d'un fichier step (3D) associé. Avec KiCad, la vue 3D est automatiquement disponible, ce qui permet d'intégrer facilement le PCB dans le boîtier en utilisant Freecad.

image en 3D de l'ensemble
image en 3D de l'ensemble

Problème lors de la réalisation

Correction : J'ai initialement supposé l'existence d'une référence de tension interne au microprocesseur, un bandgap, utilisable comme référence pour le convertisseur ADC. Après consultation du datasheet du microcontrôleur, j'ai découvert qu'il existe effectivement une référence interne utilisée pour la calibration du convertisseur ADC.

La référence du convertisseur correspond à la tension d'entrée VDDA. Lorsque le convertisseur est configuré sur 12 bits, une tension d'entrée équivalente à VA = VDDA produira une valeur de 4096. En utilisant un pont résistif de 100K et 33K, j'obtiendrai toujours la même valeur :

4096 . VDDA / R14 + R13 . R13 / VDDA = X => (4096 . K) = X avec K = R13 / R13 + R14

Correction : Mon problème était que je souhaitais mesurer précisément VDDA. Pour résoudre cette difficulté, j'ai remplacé R13 par une diode.
Référence de tension

Maintenant VA = n . U T . ln ( I / I 0 + 1)
De manière pratique, la tension aux bornes de la diode peut être considérée comme constante, environ égale à 0,6V. Voici le résultat de la conversion :
x = 4096 . V A / V DDA
Pour V DDA = 3[V] => 4096 . 0,6 / 3 = 819
Pour V DDA = 2,6[V] => 4096 . 0,6 / 2,6 = 945

Usinage

La modélisation 3D de toutes les parties du projet m'a permis de positionner avec précision l'ouverture pour l'affichage et le trou de perçage pour l'encodeur.
 figure usinage mécanique

Conclusion

Après quelques mois d'utilisation, j'ai rencontré un problème avec le codeur incrémental. En effet, le filtre logiciel proposé dans l'application n'est pas assez efficace, ce qui empêche de distinguer correctement le sens de rotation.

Pour résoudre ce problème, j'ai ajouté un filtre passe-bas sur chaque sortie du codeur incrémental.

 Modification filtre

Commentaires


Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /home/clients/db62a7f73729021974202bbfe60264f9/sites/hfelec.ch/models/UsersManager.php on line 18