Dernière mise à jour :
29/08/2010
Présentation
Vumètres mono ou stéréo 12 LED par voie, basé
sur un PIC dont on exploite très peu de sorties
logiques pour alimenter la
totalité des LED.
Quatre fils seulement pour la version mono 12 LED et huit fils seulement
pour la version stéréo 2 x 12 LED. Deux schémas sont proposés ici :
-
Schéma 012a
: affichage mono 1 x 12 LED avec PIC 12F675
-
Schéma 012b
: affichage stéréo 2 x 12 LED avec PIC 16F88 (peut
être utilisé en 2 x mono)
-
Schéma 012c
: affichage stéréo 2 x 16 LED avec PIC 16F88, mode point/barregraphe et
mémorisation des crêtes : non décrit ici, voir page
Vumètre 012c.
Un excellent exercice pour apprendre une
méthode de multiplexage "avancée", qui sort un peu des
sentiers battus. Je ne suis pas à l'origine de cette
idée, cela va de soi ;-)
Avertissements
- Les montages décrits sur cette page (vumètres 012a et
012b) ne concernent que la partie
affichage, et n'intègrent pas la partie redresseur et convertisseur log
qui permettent de
disposer d'une tension "continue" proportionnelle à l'amplitude
du signal audio (voir schémas redresseurs proposés sur
cette page
ou ailleurs). La pleine échelle est de +5 V : aucune LED ne s'allume
si la tension d'entrée est de 0 V, et la dernière LED s'allume pour une
tension continue de +5 V. Utilisés seuls, ces vumètres ne constituent
que de simples voltmètres avec affichage linéaire (répartition
égale entre chaque point de l'échelle lumineuse). D'ailleurs,
à
ce sujet...
- Actuellement, seul l'affichage en mode "point" est
proposé pour les versions mono 12 LED (schéma 012a) et stéréo 2 x 12
LED (schéma 012b), l'affichage en mode "barre" n'est pas implémenté.
Schéma 012a - Vumètre mono 12 LED avec PIC 12F675
Le schéma qui suit montre à quel point il est facile de disposer d'une
commande de 12 LED avec 4 fils seulement.
Le fonctionnement général de ce vumètre mono est
totalement identique à celui du vumètre
stéréo qui suit. Les explications qui seront
données par la suite s'appliquent donc à l'identique aux
deux systèmes mono et stéréo.
Schéma 012b - Vumètre stéréo 2 x 12 LED avec PIC 16F88
Et
avec la même technique, le schéma qui suit montre comment
il est possible de commander 24 LED avec 8 fils seulement.
Facilité sur le papier, mais
il fallait y penser...
Et celui qui y a pensé en premier est un artiste. Je connaissais le
multiplexage "classique" qui consiste à alimenter plusieurs afficheurs
sept segments les uns après les autres de façon tellement rapide qu'on
n'y vois que du feu, mais je ne connaissais pas cette méthode qui
permet de réduire encore plus le nombre de fils de commande. Une fois
que j'ai vu le cablage sur un schéma existant, j'ai pensé avoir compris
le principe
et me suis empressé de le mettre en pratique avant même d'en lire plus
sur le sujet. Et bien entendu, je me suis planté...
Principe de base adopté pour l'affichage
Le principe général du circuit repose sur le multiplexage
temporel : même si à un instant donné on a
l'impression que plusieurs LED sont allumées, il n'y en a
toujours qu'une seule (sur une rangée de douze) qui l'est.
L'illusion est obtenue en allumant plusieurs LED les unes après
les autres de façon suffisement rapide pour que la persistance
rétiniène soit trop grande pour permettre au cerveau de
se rendre compte de la supercherie. Mais le plus simple pour le moment
est de prendre quelques exemples pour en comprendre les grandes lignes.
Commençons par voir combien de LED peuvent être
cablées avec quatre fils de commandes, que nous appellerons pour
l'occasion A, B, C et D. Ce n'est pas très compliqué en
fait : on voit que l'on peut câbler une première LED entre le
fil A et le fil B, une seconde LED entre A et C, une troisième LED
entre A et D, une quatrième LED entre B et C, etc. Ce qui
nous amène à un maximum de 6 LED pour quatre fils, comme
le montre le schéma suivant :
.
Si maintenant on décide de câbler une LED en parallèle
tête-bêche sur chacune des six LED précédentes, cela porte le
nombre de LED à douze, sans qu'aucun fil de commande
supplémentaire n'ait besoin d'être ajouté.
Dès lors, on imagine bien que pour chaque groupe de deux LED
montées tête-bêche (groupe de LED D1 et D2 ou groupe D3 et D4 par
exemple),
une seule des deux peut être allumée à un instant
donné, que la commande soit assurée avec une tension
alternative ou avec une tension continue. Voyons maintenant ce qu'il
faut faire pour allumer une ou plusieurs LED, et pour commencer,
décidons d'allumer la LED D1, et elle seule.
Illumination de la LED D1
Sur le schéma qui
précède, on constate que cette LED à son anode sur
le fil de commande A, et sa cathode
sur le fil de commande B. Comme nous travaillons ici avec des niveaux
logiques TTL 0 V ou +5 V, nous n'avons guère le choix, et les
quatre possibilités qui s'offrent à nous sont les
suivantes :
Tension
sur fil A
|
Tension
sur fil B
|
Etat
de la LED D1
|
0 V
|
0 V
|
Eteinte
|
0 V
|
+5 V
|
Eteinte
|
+5 V
|
0 V
|
Allumée
|
+5 V
|
+5 V
|
Eteinte
|
La LED ne peut s'allumer que pour une seule des quatres
combinaisons possibles, sachant que le cablage utilisé est le suivant,
où chaque
point A à D peut individuellement être mis à la
masse (0 V) ou au +5 V grâce aux inverseurs mécaniques SW1
à SW4 :
Ce que nous montre le tableau est finalement bien logique : la tension
sur A (anode de la LED) doit être plus grande que la tension appliquée
sur
B (cathode de la LED), pour que la LED D1 s'allume.
Remarque : pour des
raisons de
simplification, on
ne parle pas des résistances série utilisées pour la limitation de
courant dans les LED (R1 à R4), mais celles-ci sont bien prévues et
toujours indispensables (il existe bien un cas particulier où on
pourrait s'en passer mais ce point ne sera pas abordé ici).
Bien, la LED D1 s'allume comme on le souhaite, mais apparaît
comme qui dirait un petit problème : deux autres LED s'allument
en plus de D1, il s'agit des LEDs D3 et D5.
Ce qui est tout à fait normal puisque les points C et D sont
également porté à un potentiel inférieur
à celui auquel est porté le point A. Hum, ça se
complique un peu, dirait-on. Mais nous ne sommes pas manchot, et
supposons rapidement qu'il suffit de porter les points C et D à
un potentiel de +5 V pour que les LEDs D3 et D5 s'éteignent.
Voilà ce que celà donne :
Les LED D3 et D5 s'éteignent bien, mais maintenant ce sont les LED D8
et D10 qui s'allument... On peut bien faire le tour des
possibilités qui s'offrent à nous avec les seize
combinaisons rendues possibles par les quatre fils de commande :
Il faut se rendre à l'évidence, il est totalement
impossible de n'avoir qu'une seule LED allumée à un
instant donné, en adoptant cette méthode. La solution ?
Déconnecter totalement du circuit toutes les LED que l'on ne
veut pas allumer. Comment celà ? En mettant les sorties
désirées en mode haute impédance (HiZ), ou encore
en les spécifiant comme entrées et non comme sorties.
Chaque
sortie doit donc pouvoir prendre trois états différents
possibles : un état logique bas (0V), un état logique
haut (+5V) ou un état haute impédance
(déconnecté). En opérant de cette façon, il
est maintenant possible de commander l'allumage d'une et une
seule LED
à la fois. Dans les schémas précédents, les
carrés bleus sur les fils de liaison représentaient une
tension nulle égale à zéro volt, et les
carrés rouges représentaient une tension positive. Dans
le schéma qui suit, des carrés de couleur grise
apparaissent : il représentent une liaison
déconnectée.
En procédant ainsi, les LED qui s'allumaient en "parasite"
sont
désormais éteintes, et ne reste allumée que la LED que l'on veut voir
s'allumer. Là ça fonctionne bien, le principe est posé. Pour plus de
détails concernant ce mode de
multiplexage, merci de vous
reporter à la page
Affichage
et
multiplexage.
Remarque concernant le multiplexage
Le
multiplexage existe toujours d'un point de vue câblage électrique,
c'est bien la seule façon de réduire le nombre de fils de commande pour
un nombre élevé de LED à allumer. Mais la fonction de
multiplexage
d'affichage n'est pas vraiment mise en oeuvre quand l'affichage se fait
en mode point. En effet, on ne cherche pas dans ce cas à donner
l'illusion que plusieurs LED sont allumées en même temps pour
former
un ruban (une barre). Par contre en mode ruban, le multiplexage est
incontournable puisque les LED ne peuvent être allumées en
même temps.
Entre chaque séquence d'acquisition de la ou des tensions d'entrée
analogiques, il faut donc allumer à tour de rôle toutes les LEDs qui
doivent l'être. Et cela doit être fait très rapidement pour que l'oeil
ne percoive aucun scintillement gênant. Dans le cas où les
douze LED
doivent être allumées, et en admettant que la fréquence minimale de
commutation pour chaque LED doit être de 25 Hz au minimum, cela conduit
à un rythme de balayage de 25 x 12 soit 300 Hz.
Logiciels du PIC
Les codes source et fichiers binaires compilés
(*.hex) sont disponibles dans l'archive dont le lien suit. La
version 012a mono qui était déjà fonctionnelle depuis plus d'un an a
été mise à jour pour pouvoir être compilée dans MikroPascal Pro V3.80
(la version précédement utilisée étant la V8.3). La fréquence de
rafraichissement de cette version 012a mono a été augmentée au passage
(de 10 Hz elle passe à plus de 100 Hz).
Vumètre 012a - Version mono 1 x 12 LED avec PIC 12F675 (MikroPascal Pro
V3.80) - 29/08/2010
Vumètre 012b - Version stéréo 2 x 12 LED avec PIC 16F88 (MikroPascal
Pro V3.80) - 29/08/2010
Vumètre
012 (versions 012a mono et 012b stéréo) - 29/08/2010
Vumètre 012c - Version stéréo 2 x 16 LED avec PIC 16F88 (MikroPascal
Pro V5.00) - 18/09/2011 : voir page
Vumètre 012c.
Si
vous souhaitez recevoir par la poste un PIC préprogrammé
et prêt à utiliser, merci de consulter la page
PIC - Sources.
Circuits imprimés
Non réalisés, vues 3D uniquement là pour donner un aperçu des
composants utilisés.