Dernière mise à jour : 08/04/2012
Présentation
Ce gradateur
de lumière multi-voies permet
de piloter de façon individuelle le taux de luminosité de 8 lampes à
LED via des messages de contrôles au protocole DMX.

Il fait usage d'un PIC 16F628A ou 18F2420 pour le décodage des trames
DMX et pour la génération des signaux PWM de la section gradateur. Deux
versions sont proposées :
- Schéma 014
: version simplifiée avec PIC 16F628A, adresses DMX fixes
(#1 à #8).
- Schéma 014b
: version "normale" avec PIC 18F2420, adresses DMX
paramétrables
(adresse de base #0 à #255).
Toutes les sorties se font en mode PWM
/ MLI et sont de type TTL.
Avertissement
Les schémas proposés ici ne conviennent pas pour des
projecteurs alimentés en 230 V, que
ces derniers aient une ampoule à incandescence ou des LED.
Schéma 014 - avec PIC 16F628A
Le schéma qui suit comporte la section alimentation et la section de
décodage des données
DMX. Il faut lui ajouter ce qu'il faut en sortie selon la charge que
vous prévoyez d'y mettre, nous verrons ce point en détail plus loin.

Coeur du montage
Basé
sur un microcontrôleur de type PIC 16F628A, les données DMX reçues sont
décodées et les valeurs transmises dans les 8 premiers canaux DMX sont
utilisées pour délivrer un signal PWM en rapport. Ainsi avec une valeur
DMX de 0 le signal PWM est à 0%, et avec une valeur DMX de 255 ($FF) le
signal PWM est à 100%. La sortie Out_1 correspond au canal DMX N°1 et la
sortie Out_8 correspond au canal DMX N°8. La fréquence des signaux de
sortie PWM est voisine de 100 Hz, le risque que l'oeil humain voit
les LED scintiller est minime. Je me demande même si dans une certaine
mesure ces huit sorties ne seraient pas
aptes à piloter la vitesse de petits moteurs à courant continu (100 Hz
peut être un peu faible pour certains moteurs, mais soyons fous).
Interface électrique DMX
L'interfaçage avec la liaison RS485 (DMX) est confié à un MAX487.

Adaptateur RS485
J'ai utilisé le même adaptateur que celui utilisé pour mon contrôleur
DMX 001.
Sauf que là le système fonctionne dans le sens inverse, mode réception
en permanence et jamais de mode émission. Les deux broches 2 et 3 du
MAX487 sont donc toutes deux reliées à la masse. La résistance R3 est
montrée câblée mais dans la pratique il est plus judicieux de la mettre
en série avec un cavalier... ou de ne rien mettre du tout et de prévoir
une autre prise XLR sur laquelle peut être enfichée une terminaison
(bouchon 120 ohms).
Alimentation
L'alimentation nécessaire est de +5 V pour la partie principale du
montage, une tension un peu plus élevée est requise pour l'alimentation
des LED commandées. La valeur de cette tension "plus élevée" dépendra
de ce que vous voulez utiliser comme systèmes d'éclairage. Si c'est
pour alimenter une seule LED par sortie, vous pouvez rester avec la
valeur 5 V. Si vous voulez au contraire constituer plusieurs branches
série / parallèle de LED, une tension de 12 V à 18 V peut être
envisagée. Le régulateur utilisé ici pour fournir le 5 V au PIC
supporte en entrée une tension max de 35 V. Vous pouvez donc élaborer
une tension supérieure en amont simplement en choisissant un
transformateur d'alimentation adapté à vos besoins (par exemple un
modèle 230 V / 15 V). La tension redressée, filtrée et avant régulateur
5 V servira ainsi pour les guirlandes de LED, et la tension abaissée à
5 V ne servira que pour les deux circuits intégrés PIC et MAX.
Interface de puissance
Comme dit auparavant, point besoin d'interface additionnelle si le but
n'est que d'alimenter quelques LED. En revanche, un transistor
additionnel est requis pour chaque sortie si vous voulez y tirer plus
de 20 mA. Et là, vous avez le choix, ne serait-ce qu'en terme de
technologie : transistor bipolaire (2N2222 ou autre plus costaud comme
le TIP122) ou transistor MOSFET (BUK101-50GL ou STP36NF06L par
exemple). Voici un exemple d'interface utilisable avec ce gradateur 014.

De
bien gros transistors MOSFET pour de simples LED... sauf s'il s'agit de
LED de puissance ou si leur nombre dépasse les 5000. Je plaisante bien
sûr, mais le ton est donné : à vous de "sentir" votre besoin.
Schéma 014b - avec PIC 18F2420/18F2520
La section
alimentation secteur n'est pas représentée sur ce nouveau schéma
puisque de ce côté rien ne change par rapport au précédent.

Il en est de même pour l'interface de sortie, qui là aussi est la même.
La seule chose qui change est le nombre de broches du PIC, plus élevé
ici et qui permet de raccorder quelques petits interrupteurs
(microswitches) ou straps pour configurer l'adresse DMX de base.
Adresses DMX
Alors
qu'avec la version 014 à base de 16F628A on ne dispose pas de
configuration pour
l'adresse de base, cette version 014b permet de préciser à partir de
quelle adresse le système doit réagir. Les huit adresses restent
contigues dans
tous les cas. Si l'adresse de base est spécifiée est
1,
alors les 8 adresses DMX qui correspondent aux 8 canaux de ce gradateur
vont de 1 à 8. Si l'adresse de base est spécifiée est 13,
alors
les 8 adresses DMX qui correspondent aux 8 canaux vont de 13 à 20.
L'adresse de base se définit en binaire grâce aux petits interrupteurs
du "pavé" DSW1 et peut adopter n'importe quelle valeur comprise entre 0
et 255 (ça ne va pas plus loin). L'adresse est définie par la position
des interrupteurs câblés sur les huit entrées du PORTB du PIC (RB0 à
RB7), selon la logique implacable du "décimal codé binaire".
L'interrupteur relié à RB0 vaut la valeur 1, celui relié sur RB1 vaut
2, celui relié sur RB2 vaut 4, etc jusqu'à celui relié sur RB7 qui vaut
128. Une adresse de base de "3" se traduit donc par activation des
entrées RB0 (valeur 1) + RB1 (valeur 2). Pour simplifier le montage,
j'ai activé le pullup du PORTB et les interrupteur sont "actifs" quand
ils font la liaison avec la masse, mais les états logiques des broches
du PORTB sont inversés à la lecture, dans le logiciel. Ainsi sur le
schéma précédent, l'adresse est égale à 1 puisque seul l'interrupteur
câblé sur RB0 est en position ON (fermé) et que donc seule la broche
RB0 est à l'état bas.
Prototype
Réalisé pour les deux versions 014 (avec 16F628A) et 014b (avec
18F2520), les deux fonctionnent bien.
Sur la première des photos, on voit le
PIC sous test (18F2520) sur la platine de développement EasyPic. Sur
la dernière photo, on peut voir que les LED n'éclairent pas toutes avec
la même intensitée. Normal puisque leur rapport cyclique d'allumage est
conforme à la position des potentiomètres à glissière du contrôleur DMX
utilisé pour les tests (avant-dernière photo). Petite
remarque, en passant : j'ai oublié d'éteindre le controleur DMX durant
une des phases de reprogrammation du PIC, pendant laquelle ce dernier recevait
toujours les trames DMX sur son entrée Rx. Après chargement du fichier
hex, plus rien ne répondait, j'ai du éteindre et rallumer la platine de
développement pour que ça reparte. J'avoue avoir eu une petite suée.
Vidéo de démonstration
Pour la vidéo, j'ai remplacé le bargraphe de 10 LED rouges par 6 LED blanches 5 mm.

Vidéo YouTube
Les LED sont un peu trop rapprochées les unes des autres et on ne
voit pas toujours très bien celles qui s'allument ou s'éteignent. C'est
pourquoi à certains endroits de la vidéo j'ai ajouté une petite
incrustation pour mieux les voir.
Code source et logiciel compilé
Fichier binaire compilé (*.hex)
prêt à flasher dans le PIC, dans l'archive zip que voici :
Gradateur
lumiere 014 - 16F628A / 18F2420
(version du 08/04/2012)
Seul
les fichiers binaires *.hex sont fournis dans cette archive, le code source
ne l'est pas car il sera décrit en détail dans mon prochain livre PIC
et MikroPascal.
Si vous souhaitez
recevoir par la poste un PIC
préprogrammé et prêt à utiliser, merci de
consulter la page PIC
- Sources.
Circuit imprimé
Non réalisé, vue 3D pour faire joli.
Historique
08/04/2012
- Première mise à disposition.