Voltmètre 5Vcc analogique sur LCD

Utiliser un afficheur LCD en ruban linéaire graphique.

C’était une perspective annoncée lors du didacticiel sur le mesurage avec retour des valeurs sur la ligne série USB par le truchement du moniteur série de l’IDE. La concrétiser va nous imposer de réviser les techniques de créations de caractères personnalisés. Disposer d’un module Arduino avec un SHIELD dédié à l’affichage sur LCD ou d’un KIT fréquencemètre numérique incite fortement à se réaliser un petit

voltmètre sous la forme d’une rampe analogique qui s’étale sur la ligne du bas, celle du haut étant réservée aux chiffres décrivant l’échelle de mesure. Le numérique est en principe très précis, mais dans ce domaine dépasse souvent le besoin de l’électronicien. Quand on veut vérifier la présence du +5Vcc, peu importe qu’il fasse 4,998V ou 5,832V. En revanche, quand on désire une évaluation rapide, ou observer des évolutions, ce ne sont pas les chiffres significatifs qui sont important, mais les variations, ou l’ordre de grandeur. Dans ce cas, un appareil de mesures analogique est bien plus « visuel ». Les « rubans lumineux » dans ce genre de contexte s’imposent naturellement et il ne faut pas s’étonner de les trouver sur les tableaux de bord d’avions de ligne par exemple, sur la Navette spatiale ou dans une invasion récente en automobile. Comme fondamentalement en programmant sur Arduino nous sommes amenés à travailler avec des tensions s’étalant entre 0 et +5Vcc, autant optimiser cette petite application pour cette plage de variations. C’est d’autant plus pertinent que les convertisseurs Analogiques / Numériques sont optimisés par défaut à cette fourchette numérique. La Fig.27 présente l’allure de l’affichage lorsque l’on mesure la tension réduite de +3.3Vcc régulée et disponible sur la carte Arduino. On observe immédiatement que chaque segment de 1V est divisé en quatre par les graduations. Donc chacune représente 0,25V ce qui reste assez simple à décoder.

Fig 28
Fig 28

Il aurait été plus convivial pour l’interprétation de disposer de cinq intervalles qui auraient conduit à la valeur de 0,2V par graduation. Ce cas a été testé, mais les zones d’un pixel entre deux matrices de caractères ne sont pas pourvues de cristaux liquides. Il est donc impossible d’y changer la clarté. Du coup, une tentative de programmation comme celle présentée en Fig.28 conduit à des graduations d’espacements différents très peu esthétiques.

Fig 29
Fig 29

En désespoir de cause la division par quatre a été conservée pour donner à l’affichage une belle apparence. Les zones non actives situées entre les caractères et coloriées en jaune sur la Fig.28 provoquent des interruptions tout le long du ruban de mesure. Ce n’est pas pénalisant du tout. Bien au contraire, ces divisions par 0,25V facilitent la lecture. (Voir la Fig.30) 

Comme un intervalle de 1V est divisé en environ 20 barres verticales élémentaires, comme montré sur la Fig.29 la variation d’une colonne simple représente un vingtième soit environ 0,05V. (50mV) Bien que réalisé avec un système d’affichage relativement rudimentaire, ce voltmètre reste tous comptes faits largement assez sensible pour nos travaux courants sur le microcontrôleur. Le programme P03_V_metre_Analogique_sur_LCD.ino est prévu aussi-bien pour fonctionner avec le Shield LCD d’Arduino qu’avec

Fig 30
Fig 30

le petit module électronique du fréquencemètre. Pour compiler une version ou générer l’autre il suffit « d’échanger » dans le programme les trois lignes qui définissent les Entrées/sorties dédiées à l’afficheur. L’entrée de mesure A1 est compatible avec les deux systèmes et n’impose pas de changement dans le programme. La Fig.31 montre le petit KIT préservé dans un boitier fait à la demande pour l’incliner vers le haut de 30°, orientation idéale quand il est posé sur le plan de travail. Sur cette photographie on voit en arrière plan le module Arduino servant pour alimenter en +5Vcc le dispositif. Noter que l’afficheur LCD n’est pas celui du KIT, mais

Fig 31

un modèle compatible mis à la place car avec son rétroéclairage blanc il est nettement plus lumineux et contrasté que celui d’origine. Cette version qui montre la compacité possible a servi de préambule au mini laboratoire qui en est directement issu. Plus qu’un galop d’essai, c’est le facteur déclenchant de tout le projet.

Toutes les liaisons permettant de programmer directement sur site ce petit module de Sparkfun étant disponibles, on peut envisager d’en faire une application quelconque totalement autonome. Dans ce but, il est envisagé de disposer dans la zone Z disponible sous le bloc électronique, (Voir la Fig.31) d’ajouter sur le socle un petit circuit imprimé muni d’une prise USB qui facilitera les échanges éventuels avec la voie série et surtout qui permettra d’alimenter l’ensemble avec un quelconque adaptateur Secteur 220V vers USB. La Fig.32 montre le dispositif vu de l’arrière sur lequel on devine en A le trou pour accéder

Fig 32

au potentiomètre de contraste, en B, surchargée en jaune la découpe qui permet de se brancher sur les divers picots du circuit imprimé et en C l’orifice latéral rectangulaire disposé en face du connecteur prévu à l’origine pour l’entrée du fréquencemètre motivant ce KIT. C’est dans l’ouverture B que s’introduit le connecteur « en T » décrit sur la fiche Téléportage externe d’un programme qui permet de relier cet appareil sur un Arduino UNO et de le programmer directement sur site avec les méthodes développées dans le chapitre Liaison petit module fréquencemètre avec le P.C. en début de ce didacticiel.

LE LOGICIEL. 

Contrairement aux galvanomètres analogiques à cadre mobile, l’afficheur LCD ne présente aucune inertie. Il est donc possible de rafraichir l’écran à une fréquence rapide, sans toutefois dépasser un seuil qui engendre un effet de scintillation désagréable. Mais sur Arduino, les sorties prétendues analogiques sont en réalité des sorties binaires PWM et seule la rémanence de nos yeux quand on observe une LED ou l’inertie des systèmes électromécaniques que l’on pilote donne l’impression d’une grandeur variable avec progressivité. Pour en faire un outil pleinement opérationnel, il faut impérativement introduire une inertie artificielle dans le logiciel. Comme il faut ralentir la cadence d’affichage, l’ATmega328 dispose de temps à consommer entre deux écritures sur le module LCD. Il suffit de profiter de ce délai pour effectuer N mesures en boucle, puis d’en faire la moyenne comme nous l’avons expliqué dans le chapitre sur le lissage et la filtration « du bruit ». Mathématiquement on réalise ainsi une intégration, notre appareil affichant la tension « efficace » si le signal est périodique. La valeur de N a été choisie expérimentalement pour être aussi grande que possible tout en ayant un affichage qui donne l’impression d’être immédiat. C’est indispensable quand on procède à l’ajustage d’un potentiomètre par exemple.

Examinant le programme de démonstration P03_V_metre_Analogique_sur_LCD.ino on constate immédiatement que la séquence de mesurage par elle même est assez dérisoire.

Fig 33

Expérimentalement on constate que la valeur de 1000 pour la constante N convient parfaitement pour réaliser une intégration d’une onde périodique telle que celle du signal rectangulaire de la PWM.

La Fig.33 présente l’organigramme de la boucle de base qui se contente d’effectuer les mille mesures, d’en faire la moyenne et d’afficher la valeur si cette dernière a changé. En effet, un affichage permanent ne modifie pas à l’écran l’information, mais un effet de scintillation très désagréable est généré par un rafraichissement trop rapide. En @ toute valeur de U inférieure à 95 fait ajouter 2 unités. Ainsi on aura une graduation pour zéro volt, et surtout tout le long le ruban sera mieux centré sur les chiffres de l’échelle. Ce qui caractérise cette fonction, c’est la génération des caractères particuliers pour créer le ruban progressif et la gestion de ces derniers.

En lisant les instructions de la procédure void Affiche_Ancienne_valeur_ANALOGIQUE() on constate que tout compte fait cette dernière reste relativement élémentaire. Elle commence par évaluer le nombre de « pavés entiers » et les affiche.

Le dernier pavé non « blanc » est alors comparé en relatif pour savoir le nombre de barres verticales à valider. Il suffit alors d’afficher le caractère personnalisé qui lui correspond. Remarquons au passage que c’est la faculté de pouvoir se créer de tels caractères à notre guise qui permet de visualiser une rampe linéaire alors que fondamentalement l’afficheur LCD est purement alphanumérique.

LE CALIBRE 50V efficace. 

Créer un équivalent mais avec une plage allant de 0 à 50Vcc reste d’une simplicité déconcertante. Au point de vue des mesures effectuées sur l’entrée analogique A1 il n’y a aucune différence. Le logiciel invoque encore Mesure_et_affiche_Analogique() et c’est nous qui en insérant le cordon de mesure en amont du diviser électrique par dix qui effectuons la vraie modification contextuelle.

Seule particularité de cet item n°2 dans le MENU, on affiche 0 à 50 sur la ligne du haut pour bien différencier les deux fonctions et surtout nous faciliter l’interprétation des observations. Compte tenu de la ligne présentant les graduations, pour faciliter la lecture, les dizaines entières correspondent au centre des nombres numériques. Il en résulte le fait qu’une variation de 10V n’utilise plus que trois pavés, chacun d’entre eux correspondant à 10 / 3 soit 3,33V environ. Pour satisfaire cette particularité, le programme complet effectue une transposition en numérisant entre 0 et 89 si c’est

la fonction n°2 du MENU qui est en service. Enfin, ces deux voltmètres analogiques affichent bien la valeur efficace de l’onde présentée en entrée E ou en entrée +50Vcc. Mais consultez la notice d’utilisation car l’onde mesurée doit rester dans les limites du CAN c’est à dire entre 0V et +5V crête maximum.

>>> Page suivante.

Laisser un commentaire

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