Electronique > Réalisations > Jeux de lumières > Gradateur de lumière 014 (DMX)

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.

gradateur_lumiere_014_pcb_3d_a

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.

gradateur_lumiere_014

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.

interface_dmx_001_proto_001b interface_dmx_001_proto_001c
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.

gradateur_lumiere_014_ext_001

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.

gradateur_lumiere_014b

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. 

gradateur_lumiere_014b_proto_002a gradateur_lumiere_014b_proto_002b gradateur_lumiere_014b_proto_002c gradateur_lumiere_014b_proto_002d gradateur_lumiere_014b_proto_002e

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. 

video_electronique_gradateur_lumiere_014b_proto_001
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.