12) La mesure des tensions électriques.

Obtenir des valeurs affichées fiables suppose que la chaîne de conversion Analogique/Numérique soit crédible. Si l’on peut faire confiance aux circuits internes de l’ATmega328 pour mesurer des tensions électriques sur ses entrés analogiques, nous restons entièrement tributaires de la « circuiterie externe ». En consultant les schémas des Fig.35 et Fig.36 du manuel d’utilisation, on constate que la tension de la PILE de SAUVEGARDE est reliée à l’entrée A3 par une résistance de très forte valeur de 15MΩ. Cette résistance est choisie la plus importante possible, car restant branchée en permanence, il importe que le courant qu’elle draine quand l’appareil est hors service soit le plus faible possible pour ne pas décharger la pile de 3,3Vcc. Avec la valeur adoptée, le courant maximum restera dérisoire et inférieur à 0,2µA. Prendre plus élevé n’est pas conseillé, car la liaison électrique se comporte comme une petite antenne, et l’impédance doit demeurer suffisamment faible pour ne pas collecter les signaux parasites environnants. (Signaux carrés à fréquences élevées générés par le petit module microcontrôleur.) Pour ajuster le calibre de mesurage sur l’entrée A3 la directive #define Coef_CAN_pour_la_pile 0.96 permet d’adapter finement la précision obtenue. Appliquer une tension variable sur A3 mesurée avec un multimètre fiable, et ajuster le coefficient 0.96 jusqu’à obtenir la précision la meilleure sur toute la plage 0 à 4,9Vcc. Durant le déroulement du programme, sur RESET et à chaque changement de fonction dans le menu de base quand on tourne le gros bouton, les tensions sont mesurées. Si un seuil critique est dépassé, alors il y a génération d’un message d’erreur accompagné d’un BIP sonore. La directive mentionnée en page 9 du manuel #define Tension_Pile_minimale 2.8 permet de définir ce seuil. Cette tension est largement suffisante pour soutenir encore longtemps l’horloge interne et ménage une large plage de sécurité. Toutefois, quand cette tension réduite est atteinte il devient fortement recommandé de procéder au changement de la pile de soutient. Logiquement, vous pouvez conserver cette valeur de 2,8Vcc.
Consultez le schéma de la Fig.34 de . La tension nominale de 9Vcc s’il s’agit d’une petite pile alcaline, ou de 8,2Vcc dans le cas d’un petit accumulateur rechargeable, est divisée par deux par le pont de résistances R1 / R2. Les valeurs adoptées de 47kΩ engendreront une consommation d’environ 96µA qui reste négligeable au regard de la consommation moyenne de l’appareil qui titille les 40mA. Rien ne garanti que les deux composants soient exactement de valeurs identiques, le rapport de division pouvant légèrement s’écarter de 1/2. Bien que dans le programme actuel la valeur de calibrage soit égale à 1, lors des essais avec des composants différents la directive était #define Coef_CAN_pour_accumulateur 0.99 prouvant qu’un ajustement peut s’avérer utile. Pour trouver la valeur du coefficient de correction, la technique consiste encore à alimenter le module avec une tension variable mesurée avec précision sur toute la plage [0 à 10Vcc] et à adopter la valeur du coefficient de correction qui numérisera le plus proche possible de la réalité sur cette dernière.

La tension de seuil pour l’accumulateur d’alimentation externe qui déclenchera l’alarme a été fixée à 6,5Vcc bien que le module NANOARDUINO fonctionne encore correctement à 3,5Vcc. La raison de ce choix est justifiée en page 20 du manuel d’utilisation.
Notez également que le programme P0_Noyau_pour_test_rapide.ino est également à votre disposition quand on désire mettre au point ou développer une séquence particulière en bénéficiant d’un téléchargement rapide et d’un programme source dans lequel il est facile de retrouver une variable, une procédure rebelle quelconque ou tout élément spécifique.

Les problèmes de collision de la PILE et du TAS.

Généralement, lorsque je finalise un programme « cossu », la routine void setup() se termine  par une séquence identique à celle de l’encadré présenté ci-dessous. En supprimant les « // » on valide les deux lignes de code source oranges. Le compilateur génère alors la séquence qui en tête de programme mesure la place restant disponible dans la mémoire dynamique. Si l’on veut une fiabilité de comportement du logiciel, je crois pouvoir affirmer que 150 octets ne sont pas de trop. Dans le cas de PICOHÉLIO la validation de cette séquence annonce un espace confortable de 519 octets, il n’y a donc pas de « plantage vicieux » à craindre, espace libéré grâce au placement des textes affichés en EEPROM. Pour en savoir plus sur le sujet, (Optimisation à outrance du programme.)  consultez éventuellement ce lien.

Le chapitre suivant est ici.

Laisser un commentaire

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