Dernière mise à jour :
21/03/2009
Présentation
Voici un montage assez rigolo, qui permet l'affichage d'un signal audio
sur une matrice de 160 leds (10 x 16). Un point lumineux se
déplace de gauche à droite, et monte plus ou moins selon
l'amplitude du signal audio appliqué à l'entrée.
L'effet obtenu est similaire à celui que l'on peut observer sur
l'écran
d'un oscilloscope dont la base de temps est réglée
à une fréquence
basse, quand on applique un signal audio sur son entrée. Il est
tout à fait possible d'envisager une extension du circuit pour
affichage sur un panneau de 30 x 32 leds, mais on peut dans un premier
temps, se contenter de 160 leds. Histoire de se faire la main.
Remarque : l'usage en
oscilloscope simple est tout à fait possible, mais la
résolution verticale n'est que de dix points, ce qui peut se
révèler tout de même un peu juste à l'usage.
Schéma
A première vue, c'est très compliqué. A seconde
vue, aussi. Mais à la troisième, ça s'arrange.
Surtout si vous cliquez sur l'image pour l'agrandir, ou si vous
l'imprimez sur une feuille blanche (feuille noire proscrite).
Comment regarder ce montage ?
Comme pour chaque montage qui semble
compliqué, il faut trouver les sous-ensembles, ça
simplifie considérablement les choses. Ici, il y en a quatre :
- un étage d'entrée pour adaptation d'impédance et
de niveau,
- un bargraphe pour le balayage vertical,
- une base de temps
pour le balayage horizontal,
- une matrice d'affichage à leds.
Pour vous être agréable, j'ai décomposé le schéma complet en trois
sous-ensembles :
- schéma de l'étage d'entrée avec le balayage vertical
- schéma du circuit de balayage horizontal seul
- schéma du panneau d'affichage seul
Etage d'entrée et balayage vertical
Autour des circuits
intégrés U1 et U2...
Etage d'entrée
Autour du circuit
intégré U1:A...
Nous avons affaire ici à un amplificateur alternatif non
inverseur construit autour d'un AOP (
amplificateur
opérationnel).
Ca commence bien. Ce sous-ensemble aporte un gain fixe d'environ 20 (26
dB), ce qui devrait être amplement suffisant pour pouvoir
travailler avec des sources sonores provenant de sortie lignes,
même si ces dernières sont un peu faibles. Un
potentiomètre
monté en
diviseur
résistif et jouant le rôle de "réglage de
volume", est placé en entrée, de telle sorte qu'il
devient possible d'ajuster la sensibilité de l'oscilloscope
à une large plage de niveaux d'entrée. Une
masse
virtuelleest
constituée grâce aux résistances R3 et R4 de
façon à pouvoir faire travailler l'AOP avec une
alimentation simple et non symétrique, comme pour le reste du
montage. La sortie de l'amplificateur (borne 1 de U1) fournit donc un
signal qui peut attaquer sans honte le circuit de redressement qui fait
suite, composé des diodes D161 / D162 et condensateurs C3 / C4
dont le seul but est de pouvoir disposer d'une tension continue
proportionnelle à l'amplitude du signal d'entrée. La
tension continue ainsi élaborée peut ensuite être
digérée par le bargraphe utilisé pour le
balayage vertical, et basé sur l'emploi d'un LM3914.
Autour du circuit
intégré U1:B...
Cette deuxième partie de l'étage d'entrée est
reservée aux signaux que l'on ne souhaite pas redresser, et qui
seront donc affichés tels qu'ils arrivent. C'est vraiment la
fonction oscilloscope. Le couplage d'entrée peut s'effectuer en
alternatif ou en continu, selon que le condensateur de liaison C6 est
oui ou non court-circuité par l'interrupteur SW1. Le
potentiomètre RV4 permet de superposer une tension continue fixe
au signal d'entrée, afin de le décaler plus ou moins dans
le sens vertical, pour un bon centrage sur "l'écran". Notez que
cette entrée n'est pas dotée de potentiomètre de
réglage de niveau, la pleine échelle d'affichage
verticale ne dépend donc que de la position du
potentiomètre RV2 dont il sera fait mention dans quelques
lignes.
Bargraphe pour le
balayage vertical
Autour du circuit
intégré U2...
Un bargraphe est habituellement utilisé pour visualiser un
niveau de tension sur une échelle de
leds.
Ici, il
en est de
même, mais au lieu de piloter une échelle de leds, il en
pilote seize différentes. Pas en même temps, cela va de
soi. Si vous regardez bien le schéma, vous constaterez que les
cathodes de toutes les leds d'une même rangée sont
cablées ensemble, et sont reliées sur l'une des dix
sorties du circuit intégré qui joue le rôle de
bargraphe. Dix rangées de leds, dix sorties pour le baregraphe,
le compte est bon, aucune rangée de leds n'est lesée. Le
circuit intégré U2, utilisé pour assurer le
rôle de bargraphe, est un circuit spécialement
développé pour cet usage, il s'agit d'un LM3914, que j'ai
utilisé à de multiples reprises pour afficher des
tensions (voltmètres) ou des niveaux audio (vumètres). La
broche 9 de ce circuit est laissée en l'air, pour le faire
travailler en mode point (Dot) et non en mode barre (Bar). Cela pour
obtenir au final un effet d'affichage de type "oscilloscope" et non de
type "analyseur de spectre". Quoique les deux types d'effets sont
interressants, à vous de voir ce que vous
préférez. Pour utiliser le circuit en mode barre, relier
la patte 9 à la borne positive d'alimentation. RV2 permet de
définir la borne supérieur d'affichage, il s'agit en
quelque sorte du réglage de sensibilité.
Remarque
: le LM3914 présente une progression d'affichage linéaire, ce qu'il
faut normalement pour un affichage de type oscilloscope. Ceci dit, le
montage décrit ici, puisqu'il est plutôt destiné à un usage en audio,
peut aussi accueillir un LM3915, fonctionnellement équivalent au LM3914
mais qui présente une progression d'affichage logarithmique.
Base de temps pour le
balayage
horizontal
Autour des circuits
intégrés U3 et U4...
Cette base de temps sert à déterminer quelle colonne de
leds doit être activée à un instant donné. Les anodes
de
toutes les leds d'une même colonne sont cablées ensemble,
et sont
reliées sur l'une des seize sorties du circuit
intégré U4 (CD4514) qui joue le rôle
de décodeur Binaire / Décimal. Seize colonnes de leds,
seize sorties pour le décodeur, le
compte est bon, aucune colonne de leds n'est laisée. Un
décodeur Binaire / Décimal... c'est bien d'en parler,
mais ça sert à quoi ? A "transformer" un nombre
codé en binaire sur 4 fils - un ou plusieurs de ces fils peuvent
être en même temps à l'état logique haut, en
un nombre décimal, où une seule sortie parmi seize peut
être active à un instant donné. Avions-nous besoin
d'utiliser un tel circuit ? Non, pas forcement. Il était
également possible d'utiliser un CD4017, qui est un compteur
décimal doté d'une seule entrée d'horloge, donc
à priori plus facile à mettre en oeuvre. Mais vous devez
commencez à me connaitre un peu, j'aime parfois compliquer les
choses. Et là en l'occurence, je souhaitais utiliser seize
colonnes et non dix colonnes (limite qui aurait été
imposée par le CD4017), et comme il fallait dans tous les cas un
oscillateur pour incrémenter le compteur, la compliquation
n'était pas si grande. J'ai donc opté pour un oscillateur
/ compteur de type CD4060 pour assurer en même temps le
rôle d'oscillateur et le rôle de compteur. Très
drôle. Le CD4060 oscille à une fréquence dont la
valeur est principalement déterminée par la valeur des
composants RV3, R8, R9 et C5. Les sorties binaires Q3 à Q6 sont
cablées sur les entrées A, B, C et D du décodeur
U4 CD4514. Pour
résumer : le CD4060 délivre un mot binaire sur ses
sorties Q6 à Q9, mot qui est décrypté par le
CD4514. Les sorties Q0 à Q15 du CD4514 passent chacune leur tour
à l'état logique haut, ce qui active de façon
séquentielle, les seize colonnes de leds (toujours une seule
colonne activée à la fois).
Matrice d'affichage à leds
Les 160 leds...
Les leds sont cablées en matrice, comme vous l'avez
peut-être déjà remarqué ou compris à
la lecture des lignes précédentes. Le pilotage des 160
leds ne requiert ainsi que 26 fils de liaison : 16 fils pour les
colonnes et 10 fils pour les rangées. Une seule sortie du LM3914
est rendue active à la fois (sur ce circuit
intégré, les sorties
actives sont à la masse car réalisée au travers
d'un transistor en collecteur ouvert), et une seule sortie du CD4514
peut
être active à la fois (à l'état haut). En
conséquence, et à tout instant, une seule led peut
être allumée à la fois. Si le signal
d'entrée est faible, c'est une des leds du bas qui s'allume, et
si le signal d'entrée est fort, c'est une des leds du haut qui
s'allume. A un instant donné, c'est la colonne N°1 qui est
active, et quelques temps après, c'est la deuxième
colonne de leds qui l'est. Puis c'est la troisième qui s'active,
puis la quatrième, etc. Après activation de la colonne
N° 16, c'est la première colonne qui reprend du service. La
vitesse de transition d'une colonne à la suivante dépend
du réglage de RV3, et se fera selon vos
préférences. Pour ma part, je trouve que l'effet est
interressant quand les seize colonnes sont balayées en une
seconde ou en un peu moins de temps. Au delà de une seconde, on
se rend
moins bien compte de l'évolution de l'amplitude du signal audio
entrant, ça fait plus "jeux aléatoire" que
"vumètre" ou "oscilloscope". A des fréquences très
elevées, on visualise mieux les fréquences
élevées du signal audio, mais personnellement, j'aime un
peu moins. Pour la vitesse de balayage horizontale, c'est vraiment
à vous de faire ce qu'il faut, je ne peux plus rien pour vous.
Pas d'amplificateur de courant pour les leds !
Je sens que l'on va une fois encore m'attaquer sur ce point.
"Impossible d'allumer des leds avec un CD4514 qui ne peut pas
délivrer plus de quelques mA sur ses sorties, cela est
totalement impossible !". Mais voyez-vous je suis têtu, je l'ai
encore fait et ça fonctionne très bien comme ça.
Les leds récentes que j'utilise s'éclairant très
bien avec
quelques mA, voire même quelques centaines de uA, je n'ai point
envie d'ajouter de la circuiterie pour
disposer de 20 mA là où 1 à 4 mA suffisent. C'est
un choix
personnel, ce montage est déjà assez "compliqué"
comme ça. Si vraiment vous souhaitez que les leds s'allument
plus fort, ou plus simplement si vous souhaitez utiliser des leds
datant de 20 ans (qui éclairent très peu sous 4 mA),
alors là oui, je conseille l'insertion de circuits buffers ou de
transistors sur les seize sorties du CD4514. A titre d'exemple, les
leds visibles sur la photo de gauche qui suit ont plus de 20 ans,
regardez comment elles s'éclairent (sans buffer et avec alim 9
V). La photo de droite quant à elle montre comment
s'éclaire une des leds que j'ai achetées pour cet
oscilloscope : le courant qui la traverse n'est que de quelques uA
(oui, j'ai bien dit quelques micro-ampères, c'est mon corps qui
fait office de résistance série). Croyez-vous que les
photos soient truquées ?
Disons pour simplifier que
l'on peut voir les choses de deux façons :
- soit on utilise des leds standards peu coûteuses produisant un
flux lumineux de quelques mcd (millicandellas) à 20 mA, et dans
ce cas il est conseillé d'ajouter des buffers de courant (CD4050
par exemple);
- soit on utilise des leds de type haute luminosité (500 mcd ou
plus) certes un peu plus chères mais dont le flux lumineux
est amplement suffisant même avec seulement 1 à 5 mA (cablâge
direct, sans ajout de composants).
On peut aussi évoquer la vitesse de balayage, qui donne une
impression de luminosité moindre quand ça va vite, c'est
un des "défauts" du multiplexage. Mais dans le cas
présent, cette vitesse de balayage n'est pas forcement
très importante et l'effet d'atténuation lumineuse est
moins prononcé. Pour ma part, j'ai opté pour des leds
vertes de 20000 mcd. Cela peut sembler exagéré, mais j'ai
fais ce choix pour les raisons suivantes :
- éclairage plus que suffisant à 1 mA, mais surtout avec
ajustage aisé en intensité (grâce au LM3914 qui
dispose de la broche de réglage idoine);
- possibilité d'espacer plus les leds et d'augmenter leur
luminosité, pour disposer d'une surface d'affichage plus grande
(avec panneau avant légèrement diffusant);
- le prix des leds haute luminosité est il est vrai plus élevé,
mais on trouve de très bonnes affaires sur le net.
Vous avez le circuit de
base, commencez avec ça et brodez autour comme bon vous chante.
Prototype
Réalisé sur plaque d'expérimentation sans soudure,
avec pour commencer les tests, seulement un bandeau de 4 x 10 leds
(suffisant pour valider le
fonctionnement général).
Sur la photo de droite, étage d'entrée. En pratique, j'ai
testé le montage avec un micro electret directement
connecté en entrée et relié au +9V via une
résistance de 2K2 (montage sur page
Alimentation d'un
microphone electret).
Le LM3914 avec le peu de composants annexes, doit se sentir bien
seul... et j'ai mis une led sur une des sorties du CD4060 pour
confirmer le bon fonctionnement de l'oscillation.
Côté cablâge des leds, un matriçage
réalisé avec des bouts de fils et des straps à
base de queues de composants :
Anecdote
Un copain m'a donné par le passé, des blocs d'afficheurs
multipoints, matricés en 5 x 7 points, de type DLO7135. Sur le
moment, je me suis dit "Chouette, je vais les utiliser pour
réaliser un oscilloscope miniature." Avant même de
chercher le brochage sur internet, j'ai sorti une pile 9V avec son
coupleur, une résistance de 1K, comptant sonder les 14 pattes de
l'afficheur afin de retrouver les rangées d'anodes et de
cathodes. Quelle surprise de constater que dans certains cas plusieurs
leds s'allumaient en même temps en ne touchant que deux pattes !
Je ne suis pas resté bête jusqu'au bout : j'ai
cherché le datasheet du composant sur internet, et ai alors
découvert qu'il s'agissait non pas de simples leds
câblées en matrice, mais d'un circuit
intégré complet comportant un circuit de décodage
et un générateur de caractères ASCII ! Bref,
inutilisable pour mon application. Pas grave, on retourne vers les leds
classiques ;-)
Proto avec matrice de 160 leds
La matrice de leds m'a demandé pas mal de temps pour sa
réalisation. Je ne savais pas trop au départ comment
faire pour que tout soit bien aligné. Je me suis
déjà cassé la tête avec des simples
vumètres, alors avec 16 rangées de 10 leds, je ne vous
racconte pas...
Leds pas encore soudées et encore
moins alignées...
Pour minimiser les dégats, j'ai commencé par adopter un
support fait de boitiers de DVD, de façon à ce que toutes
les leds reposent de la même façon sur la table de
travail. Puis j'ai soudé les leds du pourtour, en m'assurant
qu'elles étaient bien alignées en hauteur, choses
importante puisque ces leds de périphérie servaient de
"référence".
J'ai ensuite pris mon mal en patience et ai effectué les 320
soudures correspondant aux 160 leds. Puis j'ai assuré ensuite
les liaisons entre anodes, puis entre cathodes, avec du fil
électrique fin. Chose simplifié par l'utilisation d'une
plaque à pastilles (et non à bandes) et à une
longueur suffisante laissée aux pattes des leds. Pour assurer
l'isolation entre les rangées de cathodes communes et celles des
anodes communes, j'ai procédé en deux "couches" : une
à même les pastilles de cuivre, et l'autre
surélevée par des picôts utilisés comme
"support de fil à linge". Sur la deuxième photo
ci-après, on voit bien les lignes de fils en quadrillage et pas
sur la même hauteur.
Une fois tout le cablage réalisé, j'ai
vérifié les leds une par une, avec une simple pile et
deux résistances série.
Sur les 160 leds, 3 étaient deffectueuses (une en court-circuit
franc et deux coupées), leur remplacement a été
vite fait. Les tests ont ensuite pû commencer avec le circuit de
commande établi sur la plaque d'expérimentation sans
soudure dont je m'étais servi pour les premiers tests. Ma
fidèle assistante m'a bien aidé pour les tests en
grandeur nature. Les photos qui suivent ne rendent pas très bien
la réalité car le temps d'ouverture de l'APN n'est pas
"compatible" avec la base de temps horizontale de l'oscilloscope, mais
ça peut peut-être donner une idée.
Pour la dernière photo, je voulais voir quel effet visuel on
pouvait obtenir en rendant flou les points lumineux, avec
l'arrière pensée d'utiliser un écran
légèrement diffusant pour cacher les leds.
10 rangées de leds câblées au lieu de
16
Vous avez l'oeil fin et vous avez remarqué sur les photos que
quelques fils électriques de la matrice des 160 leds
n'étaient pas connectés. Bien vu ! En fait, je me suis
planté lors de l'orientaiton des leds, les anodes et les
cathodes ont été interverties, donnant ainsi une matrice
de 10 colonnes de 16 leds au lieu de 16 colonnes de 10 leds. En toute
franchise, je n'avais pas du tout le courage de dessouder et ressouder
toutes les leds. Je me suis même surpris à
n'émettre aucun juron !
Circuit imprimé
Je prévois de réaliser
deux platines séparées : un circuit pour la commande et
un autre pour l'affichage. Liaison entre les deux par deux petits
câbles en nappes.
Corrections et remarques
14/03/2009
-
J'ai refait l'étage d'entrée, avec pour principale modification,
l'ajout d'un redresseur, qui pourra être ignoré si vous souhaitez
visualiser une source de tension autre qu'une source audio.
- Ajout de l'entrée J1' de type "continu / alternatif" sans
redressement.