Electronique > Réalisations > Affichage / Mesures > Vumètre 018 - Pro

Dernière mise à jour : 13/05/2018

Présentation

Ce vumètre, qu'on devrait plutôt appeler indicateur de niveau, permet d'afficher l'amplitude des deux voies G et D d'un signal audio stéréo, dans une plage comprise entre -33 dB et +12 dB (ou -21 dB à +12 dB, voir texte). 

vumetre_018_proto_001f vumetre_018_proto_002b

Son originalité réside dans la possibilité de choisir la couleur et le niveau de luminosité pour chaque point de l'échelle, de façon individuelle. Le coeur du montage est basé sur un PIC 18F26K22, qui pilote des LED RVB intelligentes WS2812B.

Schéma

Le PIC effectue la mesure des niveaux analogiques, et les affiche sur un double barreau de 16 LED, en mode point (dot) ou ruban (bar).

vumetre_018

La ligne Dot_Bar permet de spécifier le mode d'affichage du vumètre :

Modes d'affichage
En plus du choix Bar / Dot (ruban ou point), l'affichage peut être réalisé avec deux barreaux parallèles ou avec un unique anneau scindé en deux demi-cercles. L'anneau que j'ai testé ne comporte que 24 LED, aussi j'ai du supprimer les données liées aux niveaux les plus faibles. Le point lumineux minimum est donc positionné à -21 dB. En résumé :
Dans le cas de l'affichage circulaire, la voie gauche et la voie droite se partagent la moitiée du cercle (par exemple demi-cercle en haut pour voie gauche et demi-cercle en bas pour voie droite). Le code a du être modifié puisque les LED sont câblées en série en suivant le cercle. Il fallait donc envoyer "à l'envers" les données destinées aux LED du bas (en admettant que la première soit à gauche).

Vumètre
Les tensions à mesurer parviennent au CAN du PIC via les résistances R1 et R2. La tension appliquée sur les deux entrées AinL et AinR ne doit pas dépasser 5 V, raison d'être des diodes zener D1 et D2 ajoutées à titre de protection contre d'éventuelles surtensions. Un étage de redressement audio est requis en amont, les tensions fournies peuvent être RMS ou crête (normalement pour un "vrai" vumètre, une constante de temps de 300 ms doit être appliquée). La conversion log (passage de Volt en déciBel) est effectuée par logiciel.
L'affichage à proprement parler est confié à des LED RVB WS2812B : une seule ligne de commande série (SDA, Serial Data) suffit pour piloter la chaîne de 32 LED. Le seul inconvénient de ce type de liaison "1 fil" est la rigueur imposée au "timing" des signaux de commande des LED, puisqu'il n'y a pas de signal d'horloge synchrone. Pour info/rappel, les bits 0 et 1 envoyés aux LED doivent avoir la forme d'un créneau de quelques centaines de ns (350 ns +/-150 ns pour bit à 0, et 700 ns +/-150 ns pour bit à 1). Dit en passant, travailler avec de si faibles durées impose de faire tourner le microcontrôleur assez vite (40 MHz ou 64 MHz n'est pas du luxe). La tache n'est pas si ardue pour autant, car la "tolérance temporelle" WS2812 est assez large, et l'éventuelle dérive en fréquence de l'horloge interne du PIC (notamment en fonction de la température ambiante) est loin de poser un problème. Raison pour laquelle je me suis passé de quartz.

Modification des couleurs de l'affichage LED
Chaque point de l'échelle peut se voir attribuer une couleur et un taux de luminosité quelconque. Comme le vumètre dispose de deux voies mais qu'on n'est pas forcé d'y appliquer un signal stéréo, j'ai jugé opportun de permettre une modification des couleurs individuelles pour les deux canaux d'affichage (sans aucun lien entre 1/G et 2/D). Le vumètre peut stocker jusqu'à 8 configurations d'affichage différentes (8 sets de couleurs), ce qui nécessite 768 octets pour la sauvegarde (le 18F26K22 possède 1024 octets d'EEPROM, c'est parfait). La programmation des couleurs s'effectue via un émulateur de terminal (mon logiciel freeware ComTools convient très bien pour ça) et un adaptateur USB/RS232, mais chacun des sets de couleur peut être rappelé à volonté en autonome (sans ordinateur) grâce au bouton-poussoir SW1 placé sur le vumètre.
Pour modifier la couleur d'un point, il faut tout d'abord spécifier le numéro du SET concerné (SET 1 à 8) puis spécifier la couleur du point désiré (LED 1 à 32) dans le SET sélectionné, au moyen de commandes texte (ASCII) répondant à la syntaxe suivante :

SETx
LEDx = Couleur

- le numéro de SET doit être compris entre 1 et 8
- le numéro de LED doit être compris entre 1 et 32 (1 à 16 pour canal 1/G et 17 à 32 pour canal 2/D). Cela reste vrai même pour l'affichage en mode cercle qui n'utilise que 2x12 LED (les valeurs correspondant aux quatre niveaux les plus faibles seront simplement ignorées)
- la couleur doit être exprimée en hexadécimal "RRGGBB" (valeurs hexa RR pour rouge, GG pour vert et BB pour bleu)
- la ligne de commande doit être terminée par un retour charriot (CR) ou par un saut de ligne (LF)

La couleur et le niveau de luminosité sont définis par les trois valeurs hexadécimales RR, GG et BB (valeurs comprises entre 00 et FF). Voici quelques exemples :

Couleur Luminosité RRGGBB
Bleu 100%
0000FF
Bleu 50% 00007F
Rouge 100% FF0000
Rouge 10% 200000
Jaune 100% FFFF00
Jaune 25% 404000

Par exemple pour que la LED "0 dB" du canal 1/G (LED#12) s'allume en bleu au lieu de s'allumer en jaune, il faut envoyer la commande suivante :

LED12=0000FF[CR] // LED #12 en bleu


vumetre_018_preview_001b

Pour effacer les modifications et revenir aux paramètres d'origine, il faut envoyer la commande RESET suivie du numéro du SET concerné (pour n'effacer que le SET spécifié) ou envoyer la commande RESETALL pour traiter en une passe les 8 SET :

RESET2[CR] // rétablit les valeurs d'origine pour le SET #2 uniquement
RESETALL[CR] // rétablit les valeurs d'origine pour les 8 SETs

Remarque : la modification des couleurs est possible sur la version pro, mais pas sur la version allégée (LE) gratuite disponible ici.

Alimentation
Le circuit s'alimente sous une tension de +5 V, avec un courant moyen qui dépend des couleurs et du taux d'éclairement choisis pour chaque point, ainsi que du mode d'affichage :
- en mode point, deux LED RVB au maximum sont allumées : 40 mA max si rouge, vert ou bleu; 120 mA max si blanc
- en mode barre, on peut avoir 32 LED RVB allumées en même temps, soit 96 LED ! Cela engendre une consommation de 640 mA max si chaque point active une seule couleur (rouge, vert ou bleu). Et la consommation grimple allègrement à 1920 mA si tous les points sont affichés en blanc (bien entendu, ce choix n'est pas souhaité). N'oubliez pas que pour obtenir la couleur jaune, on active les LED rouge et verte...
Pour pouvoir bénéficier du mode ruban en toutes circonstances, l'alimentation 5 V doit pouvoir délivrer au moins 2000 mA (2 A). Mais dans la pratique, avec les couleurs traditionnelles et un taux de luminosité abaissé (pour ne pas éblouir l'utilisateur), une alimentation capable de débiter un courant de 1 A suffira (c'est ce que j'ai utilisé pour mon proto). Et puis oui me direz-vous, les LED "clignotent", ce qui réduit le courant moyen consommé. Oui, oui. Mais les musiques à la dynamique très compressée et toujours plein pot, vous connaissez ?

Prototype

Deux versions ont été réalisées et testées avec succès :
- une avec 4 barreaux de 8 LED chacun (5050+WS2812), plage d'affichage -33 dB à +12 dB
- une avec un anneaux circulaire de 24 LED (5050+WS2812), plage d'affichage -21 dB à +12 dB
Très peu de composants au final, les photos ci-après attestent de la grande facilité de réalisation pratique.

vumetre_018_proto_001b vumetre_018_proto_001c

Heureusement que la luminosité est ajustable, car à luminosité maximale on s'en prend plein la vue. Cela n'est pas la finalité première d'un vumètre... à moins de le destiner à une application en extérieur.

vumetre_018_proto_001d vumetre_018_proto_001e
Ajustage luminosité à 100 % et à 50%

vumetre_018_proto_001f 
Ajustage luminosité à 10 %

Pour l'anneau de 24 LED, j'ai également réduit la luminosité à 10%, pour la même raison :

vumetre_018_proto_002a vumetre_018_proto_002b vumetre_018_proto_002c led_5050_ws2812_ring_24_001a
Ajustage luminosité à 10 %

Astuce pour Noël prochain : vumètre en mode DOT et entrées analogiques du PIC en l'air. Effet scintillement aléatoire garanti !

Une petite vidéo de démonstration est prévue, mais avant il faut que je mette tout ça au propre ;)

Circuit imprimé

Réalisé en double face. Partie affichage seule, redressement audio sur un circuit annexe.

vumetre_018_pcb_3d_a

Typon non disponible sur ce site.

Logiciel du PIC (version allégée LE)

LE - Le logiciel allégé (LE) disponible en libre téléchargement ici ne permet pas de modifier les couleurs de chaque point, et est limité au mode d'affichage rectiligne.
Vumètre 018 - PIC 18F26K22 - LE (15/04/2018)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Historique

13/05/2018
- Ajout mode affichage circulaire (sur 2 demi-cercles de 12 LED chacun).
15/04/2018
- Première mise à disposition.