Multimètre de base sur ligne USB.

Mesures de base et de natures diverses avec l’ATmega328 :

L’obligation d’exploiter la ligne série USB pour lire les valeurs retournées par les mesures ne peut se justifier que pour une utilisation exceptionnelle. Si l’on désire réaliser un multimètre réellement fonctionnel, il faudra impérativement le munir d’un dispositif d’affichage autonome. L’un des procédés les plus courants et les moins onéreux consiste à associer un afficheur LCD, solution qui s’impose d’autant plus vivement que des SHIELD spécifiques sont prévus pour Arduino UNO.
Mais avant d’envisager le développement d’un programme complet qui gère un écran LCD avec un formatage « confortable » des données, il me semble judicieux de passer par l’étape intermédiaire d’une exploitation par la voie série USB. Ce chapitre dégrossit l’analyse de la sélection des fonctions.

Fig1Page10

Passer de deux programmes indépendants à un logiciel unique (Qui affecte l’entrée A1 pour mesurer les tensions.) consiste à ajouter un dispositif quelconque qui permettra à l’opérateur de choisir à la demande la fonction à activer pour effectuer ses manipulations.
Dans le but de laisser au lecteur le choix entre les solutions listées sur la Fig.1 pour son projet personnel, c’est A0 qui permettra à l’utilisateur de choisir la fonction qu’il désire mettre en service, bien que pour un simple bouton poussoir une entrée binaire serait suffisante. Comme dans toute application en cours d’étude, il faut faire des choix qui vont conditionner significativement la qualité opérationnelle du produit définitif. Dans notre cas, plusieurs options très courantes représentées en Fig.1 sont possibles. La première en A consiste à ajouter un sélecteur S et des résistances pour créer un diviseur de tension. Le logiciel détermine par la tension mesurée sur A0 sa position et passe à la fonction désirée. Un simple regard sur le bouton flèche de ce commutateur renseigne l’opérateur sur la fonction émulée. C’est idéal sur le plan opérationnel, mais l’encombrement et le coût sont plus importants que l’usage d’un élémentaire bouton poussoir associé à une seule résistance. La solution souvent utilisée montrée en B consiste à employer des boutons poussoir, chacun étant affecté à l’appel de l’une des fonctions spécifiques.
Remarquer qu’elle n’est pas optimisée, car si l’on branche comme pour le commutateur S on gagne une résistance. Manifestement plus simples, les solutions C et D n’utilisent qu’un seul bouton poussoir BP en logique positive ou en logique négative. (Éventuellement complété d’un condensateur C « anti rebonds ».) Pour choisir la fonction il suffit d’appuyer dessus, les options « défilant » en permutations circulaires. C’est un peu moins convivial que pour les deux solutions précédentes, mais en termes de coût et de volume cette solution technique est de loin la plus séduisante.
L’anti rebonds peut se faire par l’ajout d’un condensateur C (Dans les quatre cas.) ou par logiciel.
D’une part c’est un composant de plus à ajouter au montage qui en augmente le coût. Très peu, c’est vrai, mais je préfère « dépenser » quelques octets de plus, solution qui m’apparaît comme plus élégante, surtout si l’on dispose de place dans la mémoire de programme.
Par ailleurs, si l’on veut que le condensateur soit efficace, il faut lui attribuer une capacité notable, par exemple 0,1μF. Chaque fois que l’on appui sur un B.P. il se décharge brutalement sur ce dernier qui se comporte comme un court-circuit. Ce n’est bon ni pour les grains des contacts électriques du bouton poussoir, ni pour le condensateur. En fin de comptes, c’est la solution C ou la solution D qui sera retenue, et sans la présence du condensateur. Pour opter entre la logique positive et la logique négative, à ce stade de l’analyse aucun critère objectif n’est disponible. Si aucun argument « de programmation » n’émerge lors du développement, ce sera la solution C qui emportera la décision. D’une part raisonner « positif » est plus naturel, d’autres part la masse est généralement moins sujette à la présence de parasites.

Le schéma électrique.

Fig. 2

Réduit à sa plus simple expression il est représenté sur la Fig.2 et se contente de reprendre la présence des divers SHUNTs et se complète avec le bouton poussoir branché sur A0. Comme précisé ci-avant on opte initialement pour un comportement en logique positive avec la classique résistance de 10kΩ qui procure un bon compromis entre faible consommation à l’activation du BP et immunité convenable aux parasites hertziens. Le tableau ci-dessous résume les fonctions :

Multimètre Tableau 1

La protection des entrées.

Fig. 3

Seule l’entrée du voltmètre sera protégée sur notre multimètre car c’est celle qui statistiquement est la plus employée. Mais rien ne s’oppose à utiliser cette technique sur toutes les autres fonctions si on le désire. Pour comprendre le principe de la protection examinons la Fig.3 qui décrit très sommairement la conception des entrées sur l’ATmega328. L’entrée A1 va vers la logique interne L qui traite la CAN, le mode sortie etc. Pour éviter que l’électronique en aval de L ne soit soumise à des tensions supérieures à +5,2V et -0,2V les diodes D1 et D2 drainent le courant vers le +5Vcc ou vers la masse GND. ATTENTION : Cette protection est illusoire car si l’on applique en A une tension exagérée positive ou négative, les courants I1 et I2 seront excessifs et détruiront D1 ou D2 puis en aval de L l’électronique interne du microcontrôleur. Comme montré sur la Fig.4 il suffit de limiter les courants possibles I1 et I2 en insérant une résistance R entre A et l’entrée A1. Sa valeur devra être d’autant plus élevée que la tension accidentelle potentielle est de grandeur élevée.

Fig. 4

Ce composant en amont de A1 ne modifie pas les valeurs converties par le CAN compte tenu de l’impédance d’entrée très élevée de ce dernier.
On peut facilement l’augmenter jusqu’à 20kΩ sans altérer la précision des mesures. On peut se demander pourquoi les concepteurs du processeur n’ont pas inclus cette résistance dès la fabrication du circuit. Tout simplement parce que A1 peut fort bien être initialisée en sortie et ainsi pouvoir drainer un courant jusqu’à 40mA. Supposons que l’on applique par accident une tension alternative de 35V~ efficace. La tension sera de ±50Vcrête. C’est la diode D2 qui subira le courant le plus élevé puisque les +5Vcc ne sont pas déduits de la surcharge en entrée A. Le courant crête avoisinera 50 / 1000 = 50mA. Comme seule l’alternance négative va la concerner, il faut diviser le résultat par deux. Mais c’est la valeur efficace qui fait chauffer, il faut donc encore diviser par la racine carrée de deux. Au final cette diode de protection ne sera soumise qu’à un courant efficace de 18mA, pas de quoi l’effrayer. Quand à la résistance R, elle devra dissiper une puissance de 1,2W un modèle prévu pour 1/4W sera suffisant car l’avertissement lumineux préviendra l’opérateur et la surcharge ne sera logiquement que de courte durée.

Avertissement lumineux de surcharge.

Fig. 5

C’est un luxe que l’on peut allègrement se permettre car il ne grèvera notre budget que de deux LED et d’une résistance, soit un coût supplémentaire assez dérisoire. Notre multimètre présentera ainsi un aspect très professionnel. L’idée de base est montrée sur la Fig.5 sur laquelle on constate que la surcharge positive sera signalée par une LED rouge alors que l’incident d’inversion de polarité allumera une diode verte.
(Personnellement j’ai utilisé une jaune qui était disponible.) Les modèles utilisés sont à très bon rendement pour s’éclairer dès qu’un petit courant les traverse. Ainsi nous serons également prévenus pour les faibles surcharges qui ne mettent pas en péril l’électronique, mais qui engendrent un résultat

Fig. 6

de mesure saturé à +5V ou faussé à zéro. Si on branche A sur une source de courant alternatif les deux LED seront allumées simultanément, sauf si la tension du pic positif ne dépasse pas 5,2V en crête. Bien que séduisant de simplicité, ce schéma ne fonctionne pas et les LED restent désespérément éteintes. Pour bien montrer que dans la réalité D1 est en parallèle sur LED1 et D2 en parallèle sur LED2 la « borne » d’entrée A1 est, sur la Fig.5, traversée par la liaison électrique qu’il ne faut pas oublier. Hors D1 et D2 ont des tensions de seuil faibles de l’ordre de 0,2V. Une LED pour pouvoir s’illuminer doit avoir à ses bornes un minimum de 0,3V et de ce fait nos deux témoins lumineux restent inertes. La solution est simple. La Fig.6 montre qu’il suffit d’ajouter une résistance R2 de 4,7kΩ avant A1 pour ne plus que D1 et D2 ne viennent perturber les LED. Comme la résistance totale placée en amont du convertisseur analogique numérique ne fait que 5,7kΩ, la présence de ces deux composants n’aura aucune influence sur la précision des mesures. On peut maintenant concevoir le « circuit imprimé ».

Le petit circuit imprimé qui supporte les divers shunts.

Compte tenu du faible nombre de composants à insérer dans notre appareil de mesure, la plaquette d’essai cuivrée qui va leur servir de support présente de faibles dimensions, et ce d’autant plus que les LED d’avertissement de surcharge et le bouton poussoir sont placés en face avant. Représenté sur la Fig.7 le petit circuit imprimé pré percé au pas de 2,54 mm de quelques centimètres carrés est représenté avec un connecteur femelle pour son raccordement avec Arduino.
Ce n’est pas du tout impératif, on peut parfaitement utiliser une limande à 8 fils du type nappe de connecteurs d’ordinateur. La Fig.7 représente en A la plaquette vue coté composants ainsi qu’en B les liaisons à établir avec la face avant du coffret qui enferme le tout. La Fig.8 en C est identique à la Fig.7 mais les pistes de cuivre sont vues comme si la plaquette était transparente pour mieux comparer le dessin avec le schéma prévu. Le dessin de la figure D représente le circuit imprimé vu coté cuivre avec les trous de perçage et les trois coupures de pistes.
Notez la présence du petit fil qui sera soudé sur le dessous pour réunir les deux pistes voisines.

Multimètre Fig. 7

Fig. 8

L’aspect logiciel.

Fig. 9

Conçu initialement comme un démonstrateur en vue d’élaborer un multimètre autonome avec son propre système d’affichage des menus et des données, il n’en constitue pas moins un logiciel complet parfaitement exploitable si l’on accepte de mobiliser un ordinateur et une prise USB associée au terminal série de l’IDE d’Arduino. C’est P03_Multimetre_sur_USB.ino qui se charge d’animer le fonctionnement de notre appareil de mesure. Pour une utilisation agréable il faut impérativement que le bouton poussoir d’appel des fonctions réagisse immédiatement et à tout moment. Pour atteindre cet objectif la boucle de base y fait appel par « sécurité », mais le programme passe une majorité du temps dans la procédure de mesure N_mesures_sur_Ai(). C’est la raison pour laquelle est inséré directement dans la boucle de « Lissage » la procédure Tester_le_BP_A0(). Cette dernière n’est pas pénalisante en temps de traitement car il y a sortie immédiate si le B.P. n’est pas activé. Cette procédure réalise l’anti rebonds, attend la stabilisation du relâcher et se contente de signaler qu’il y a eu un « clic » sur le bouton poussoir. Comme montré sur la Fig.9, c’est ensuite dans la boucle de base que la requête est prise en compte, que la fonction indexée est incrémentée et que le titre de la fonction en cours est affiché. La boucle de base traite ensuite la fonction active.

Vérification de la protection avec témoins lumineux.

Lorsque le programme à présenté le comportement attendu sur toutes les fonctions, que le bouton poussoir s’est avéré d’une utilisation tout à fait conviviale, que les résultats affichés pour les mesures se sont montrés conformes à ceux des appareils de contrôle indépendants, il importait de vérifier la fiabilité du système de protection présenté en Fig.6 et d’en valider le concept.
Multimètre dernierDans ce but, l’entrée Volts à été branchée sur la sortie d’un transformateur fournissant 15V~ efficace soit ±21V crête pendant une très longue période. La copie d’écran d’un petit oscilloscope numérique ci-contre montre que les tensions sur le nœud entre les deux résistances et les deux diodes variaient entre -0,3V et +5.6V valeurs strictement sans danger pour A1 protégée par la 4,7kΩ. La résistance de 1kΩ ne dissipe que 0,25W sans problème.

>>> Page suivante.

Laisser un commentaire

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