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...
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).
(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.