16-2) Tatillonnons la pinaillerie !

Uniquement pour vous proposer une approche la plus rigoureuse possible, ce chapitre frise le ridicule. Autrement dit, on va dans ce dernier pousser l’analyse bien au delà du nécessaire, simplement pour la beauté du geste. Également pour vous servir d’exemple sur la façon de s’y prendre, le jour où une telle finesse sera vraiment nécessaire. Pour cette application, c’est un luxe manifeste. C’est parti pour une boulimie cérébrale. Ceux qui n’ont pas de temps à perdre … passez au chapitre suivant.

Circulez, ya rien à voir !
Considérons le schéma de la Fig.53 qui résume les trois consommateurs de courant. I1 est celui que l’on a évalué avec précision en mesurant la chute de tension aux bornes de R. La carte Arduino Uno consomme intrinsèquement et au maximum 80mA quand le rétroéclairage est allumé. Comme elle est alimentée simultanément par le secteur sur sa prise USB, elle ne dérive pas de courant depuis la batterie et I3 est supposé nul. On peut alors se demander quelle est l’utilité de brancher son alimentation +Vcc sur la batterie. Et bien imaginez que vous avez lancé un processus de mesurage. Environ dix minutes avant que ce dernier ne soit achevé :
PAFFFFFFFFF coupure de secteur !
Les mesures sont perdues. Il n’y a plus qu’à recharger à nouveau l’accumulateur et tout recommencer. Avec cette précaution, consommant alors de façon dérisoire un I3 de 80mA non pris en compte, le résultat sera faussé de 8 pour 450 soit 1,7% et uniquement pendant la coupure secteur. Nous sommes sauvés.
Mais alors pourquoi brancher la prise USB sur un bloc secteur puisque la batterie alimente sans vergogne Arduino qui ne prélève au maximum que trois fois rien ?
Réponse : Dès que l’on branche la batterie, elle débite au maximum. Hors le début du processus propose à l’opérateur diverses options. Pendant ce temps laissé libre, le perte d’énergie n’est pas mesurée, le résultat final serait alors imprécis.

Reste que nous n’avons pas pris en compte le courant I2 qui alimente et traverse le ventilateur V. L’intensité dans son petit moteur à courant continu est variable et directement proportionnelle à la tension à laquelle il est soumis. Celui adopté sur l’appareil réalisé est prévu pour ventiler certains P.C. et se branche sur du 12V. C’est reparti pour des mesures sur site d’autant plus aisées que sa ligne peut s’isoler car il est branché sur un connecteur HE14. Le tableau de la Fig.54 présente les valeurs des consommations quand V est soumis à des tensions variables appliquées directement à ce dernier. Un ampèremètre précis mesure le courant qu’il absorbe. Sachant que globalement la batterie va présenter une tension nominale durant la quasi totalité du mesurage, il serait parfaitement logique de simplifier le programme et de supposer constante et de 78mA l’intensité I2. Du reste, il est probable que le ventilateur intégré dans votre coffret sera différent. Mesurez son courant à 12V, puis contentez-vous dans le programme de remplacer dans la procédure void Calcule_le_courant_fourni_par_la_batterie()  la première ligne de code par :

Courant_de_decharge = Courant_ventilateur_mesuré_a_12V;

Y = A * X + B

Sauf dans la mesure ou vous avez envie de voir comment traiter un tel cas, si tenir compte des variations de courant était impératif, je vous suggère de passer à la suite et de sauter ce délire d’intello. Pour développer le programme qui tiendra compte des caractéristiques particulières du ventilateur, on commence par tracer la courbe de variation de I2 en fonction de U. On observe manifestement que sur la Fig.55 les points représentatifs des cinq mesures consignées sont alignés. Du coup, mathématiquement, pouvoir calculer la valeur de I2 en fonction de la tension devient facile. Tout bachelier sait qu’une fonction dont la courbe représentative est une droite est de la forme Y = A * X + B. Dans notre cas la fonction Y représente I2, et la variable X la tension aux bornes de la batterie d’identificateur U_Batterie. La formule de calcul devient :
I2 = A * U_Batterie + B
Pour pouvoir soumettre ce calcul au compilateur C++, il nous faut trouver les valeurs des deux inconnues A et B.
Bon, je vais frimer en vous faisant croire que je suis un dieu en mathématiques : Pour tenter d’obtenir ces deux valeurs avec le plus de précision possible, nous allons faire appel aux deux points extrêmes de la Fig.55 issus des mesures, donc traduisant une réalité physique :

Un bachelier qui ne galère pas trop en mathématiques déduirait que nous disposons d’un système lié de deux équations à deux inconnues A et B. Pour le résoudre, on va « tripatouiller » un peu ces équations :

Courage, nous progressons ! En faisant les opérations on peut écrire que 7 * A = 0.05
Génial car de cette équation on déduit que A = 0.05 / 7 = 0.0071428
Reportons cette grandeur dans  pour trouver la valeur de B :

Chic chic chic nous avons enfin notre belle équation :

Coder cette « chose » en langage C++ confine à de l’enfantillage :

En ligne (1) de la procédure on calcule dans Courant_de_decharge la valeur du courant I2 qui traverse le ventilateur V. Cette ligne de calcul ne consomme que 68 octets de plus que si nous avion imposé au compilateur la constante moyenne de 0.078A. Ce serait bien dommage finalement de ne pas soumettre cette ligne au microcontrôleur qui n’attend que ça pour se faire plaisir. À ce courant I2 la ligne (2) ajoute celui qui traverse R. Attention, la mise en page de ce didacticiel coupe la ligne (2) dont la fin est en (3).
CONCLUSION : Bien que dans cette application le calcul du courant circulant dans le ventilateur n’était pas impératif, pour montrer qu’avec un peu de mathématiques il est souvent très élégant d’utiliser des concepts relativement simples. On a déterminé l’équation représentant la réalité. Puis, comme le processeur n’est pas surchargé, loin s’en faut, au final on intègre ce calcul dans le programme.

La suite est ici.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *