Electronique > Réalisations > Affichage / mesures > Voltmètre 007

Dernière mise à jour : 29/08/2009

Présentation

Ce voltmètre est typique de ce qu'on ne ferait plus maintenant pour un produit fini, tellement il requiert de composants pour un résultat somme toute assez limité. Mais quel plaisir de chercher à en comprendre le fonctionnement ! Vous mettez ici vos pieds dans le monde merveilleux (et plein de pièges dans lesquels on ne tombe jamais) de la conversion analogique/ numérique !

Le schéma

Quatre circuit intégrés et un afficheur pour ne visualiser qu'un seul chiffre... Plutôt déroutant ! Oui, mais...

voltmetre_007

En quoi ce circuit peut-il donc présenter un intérêt ?
Dans son mode de fonctionnement. Quand on utilise un circuit intégré dédié affichage tel que le ICL7106 ou ICL7107, ou le couple d'enfer CA3130 / CA3132, ou même un microcontrôleur programmé maison, on n'imagine pas toute la mécanique incluse dans ces petits boitiers noirs. Et pourtant, ça nous ferait peut-être du bien. Ici, nous rendons visible la mécanique, et nous voyons rapidement les limites d'un système simple. Nous avons en effet affaire :
- à un compteur BCD associé à une horloge (un oscillateur) interne;
- à un convertisseur numérique / analogique dont la quantification est de quatre bits, qui autorise donc le travail sur seize valeurs différentes possibles;
- à un décodeur BCD / 7 segments, associé à son afficheur 7 segment.
Trois sous-ensembles, qui une fois associés, conduisent à la création d'un petit voltmètre à un chiffre.

Limites du système
Il serait malhonnête de cacher les petits points que l'on pourrait qualifier de négatifs. Les voici donc :
- le nombre de composants, on en a déjà parlé.
- la précision n'est pas extraordinaire, puisqu'elle est de l'ordre du volt.
- l'affichage scintille un peu, car il est des périodes où il est éteint, et d'autres où il est allumé.

Fonctionnement du système
La mesure de la tension d'entrée Vin repose sur le principe dit de la "rampe". On génère une tension qui monte par paliers (on parle aussi de marches d'escalier), en partant d'une tension min et en allant vers une tension max. Une fois la tension max atteinte, on redescend rapidement à la valeur min et on recommence. Pour générer cette rampe, on utilise un compteur BCD et un convertisseur numérique / analogique. Et oui, pour disposer de notre fonction de conversion analogique / numérique, on utilise un convertisseur numérique / analogique. Le monde est toujours aussi tordu, c'est comme ça. Si de notre compteur BCD nous utilisons quatre sorties "adjacentes", nous pouvons disposer de 16 valeurs possibles, comprises entre les valeurs binaires "0000" et "1111" incluses. En câblant sur ces sorties un réseau de résistances de type R/2R, on peut obtenir une tension analogique dont la valeur peut prendre 16 états possibles, c'est ce que l'on voit sur le graphe suivant (Vr est la tension analogique en question, mesurable au point commun R3 / R4).

voltmetre_007_graphe_001a
(ne pas tenir compte de l'échelle de temps horizontale)

Cette tension analogique Vr est soumise à l'entrée inverseuse d'un AOP classique de type LM741 (le bien-nommé U4) monté en comparateur de tension et non en amplificateur. Quoique l'on pourrait aussi dire que cet AOP est monté en amplificateur à gain infini (tout du moins très très grand), on serait encore dans la légalité. Sachant cela, on sait (ou on devine, ou on apprend) que la sortie de cet amplificateur opérationnel va être soit tout (valeur proche du pôle positif de l'alimentation, considéré ici comme un état logique haut), soit rien (valeur proche de la masse, considéré ici comme un état logique bas). Et que cet état "logique" va dépendre des tensions appliquées sur les deux entrées inverseuses et non-inverseuse, selon la logique suivante :
- si la tension appliquée sur l'entrée non-inverseuse (Vin) est plus grande que celle appliquée sur l'entrée inverseuse (Vr), la sortie passe à l'état haut.
- si la tension appliquée sur l'entrée non-inverseuse (Vin) est plus faible que celle appliquée sur l'entrée inverseuse (Vr), la sortie passe à l'état bas.
Et il se fait que la sortie de l'AOP est reliée sur les entrées LE et BI du décodeur BCD / 7 segment U2 / CD4543, qui voit son comportement chamboulé à tout instant :
- Quand les deux entrées LE et BI sont à l'état haut, le décodeur décode la valeur binaire appliquée sur ses entrées A, B, C et D, mais "bloque" les sorties utilisées pour l'affichage (sorties segments A à F). L'afficheur qui lui est raccordé (AFF1) est donc muet. Pardon, éteint. Bref, la section affichage fonctionne normalement mais cela ne se voit pas.
- Quand les deux entrées LE et BI sont à l'état bas, l'effet inverse se produit. Le décodeur est verrouillé sur la dernière valeur binaire qu'on lui a présenté, il la garde en mémoire. Et en même temps, ses sorties utilisées pour l'affichage (sorties segments A à F) sont rendues actives et l'afficheur AFF1 montre ce qu'il doit montrer : la valeur qui correspond au seuil de basculement de l'AOP, directement liée à la tension d'entrée Vin.

C'est trop pour ma petite tête !
Prenons un exemple pour mieux comprendre. Supposons que la tension d'entrée à mesurer Vin soit de +2,5 V, et que la tension Vr évolue en 16 paliers entre 0 V et +5 V. Au début de la rampe, Vr est faible et inférieure à Vin, la sortie de l'AOP est donc à l'état haut : l'afficheur est éteint, et la valeur "inscrite" à cet instant au niveau du décodeur BCD / 7 segment U2 / CD4543, liée à la valeur binaire disponibles sur les sorties SA, SB, SC et SD, nous importe guère. Il en est de même pour tous les paliers qui se suivent, tant que la valeur de Vr ne dépasse pas la valeur de Vin. Puis vient le moment où tout bascule : Vr, lors d'un n-ième palier, dépasse la tension d'entrée Vin, et la sortie de l'AOP bascule aussitôt à l'état bas. Ce qui a pour effet de "débloquer" les sorties du décodeur BCD / 7 segment et de permettre l'affichage du nombre qui correspond à la valeur décimale des sorties SA, SB, SC et SD.

Mais... on dispose de 16 valeurs binaires et l'affichage va de 0 à 9...
Et oui, parfois tout ne colle pas parfaitement. Pour pouvoir afficher les seize codes binaires de "0000" à "1111", il faudrait un afficheur capable d'afficher les nombre de 0 à 9 puis de A à F. Ce que notre système ne sait pas faire (d'autres en sont capables). C'est pourquoi on ajoute ici une petite tension à la tension d'entrée Vin, au moment de l'envoyer sur l'entrée non-inverseuse de l'AOP. Cette petite tension, amenée par RV1, R12 et R13, fait que le basculement a lieu plus tard, pour une tension Vr plus élevée. Ce qui permet "d'étaler" et de faire "coïncider" la plage d'affichage 0 à 9 avec une tension d'entrée allant de 0 V (correspondance code binaire "0000") à +5 V (correspondance code binaire "1111"). Cela fait certes un peu "tordu" mais ça fonctionne et peut suffire pour un certain nombre d'applications.