Dernière mise à jour :
08/06/2014
Présentation
Ce contrôleur
DMX
dispose de 24 canaux dont la valeur est assignable par le biais de
12 potentiomètres classiques.
Le montage fait appel à un microcontrôleur
PIC de type 18F4220 et fait suite au
contrôleur DMX 000 qui comme on peut s'en douter a vu le jour après les contrôleurs 001 et 002... Triste histoire.
Schéma
Au schéma suivant ne manque que l'alimentation 5
volts, qu'en aucun cas vous ne pouvez remplacer par une alimentation de
3000 volts (la fréquence du PIC s'en trouverait affectée).
Différence par rapport au contrôleur DMX 000
Le
contrôleur
DMX 000
travaille sur 5 canaux DMX alors que le contrôleur décrit ici en
possède 24. Cette différence à elle seule justifie le titre de ce
paragraphe. Un autre détail cependant peut avoir son importance si vous
le jugez utile : on dispose de 24 canaux DMX, mais on n'a que 12
potentiomètres. Le schéma vous révèle, si vous le regardez bien sûr, la
présence d'un inverseur mécanique SW1 appelé Mode (12/24Ch). Cet
interrupteur détermine si les valeurs lues par les 12 potentiomètres
doivent être affectées aux canaux DMX 1 à 12 ou 13 à 24. Mais comme on aime
bien faire travailler la mémoire des PIC, les valeurs utilisées dans
les deux paquets de 12 canaux sont mémorisées quand on passe d'un mode
à l'autre, ce qui permet d'envoyer effectivement 24 valeurs différentes
dans la trame DMX. Vous pouvez ainsi régler des valeurs différentes
pour les canaux 1 à 12, puis basculer l'interrupteur SW1 pour régler de
nouvelles valeurs pour les canaux 13 à 24, les valeurs précédement
affectées aux canaux 1 à 12 restant inchangées. Cela ne vous
rappelle-t-il rien ?
Lecture des valeurs DMX
Chacune
des douze valeurs est acquise par le PIC au travers de son CAN
(Convertisseur Analogique Numérique) qui transforme une valeur discrète
de tension analogique en sa représentation codée en numérique. Le CAN
inclus dans le PIC 18F4220 possède une résolution de 10 bits, ce qui
permet de disposer d'un nombre compris entre 0 et 1023 (valeur maximale
égale à 10 puissance 10 auquel on retranche 1, puisque la valeur 0
compte comme les autres). Les valeurs acquises sont divisées par 4
(plage 0 à 1023 transformée en plage 0 à 255) avant envoi dans la
trame DMX.
- La
valeur acquise par le potentiomètre RV1 correspond à la valeur du canal
DMX #1 ou #13.
- La
valeur acquise par le potentiomètre RV2 correspond à la valeur
du canal DMX #2 ou #14.
- La valeur acquise par le
potentiomètre RV3 correspond à la valeur du canal DMX #3 ou #15.
- ...
- La valeur acquise par le potentiomètre
RV11 correspond à la valeur du canal DMX #11 ou #23.
- La
valeur acquise par le potentiomètre RV12 correspond à la valeur du canal
DMX #12 ou #24.
L'inverseur SW1 détermine si les valeurs lues grâce aux potentiomètres sont affectées aux canaux DMX 1 à 12 ou 13 à 24 :
- Si la ligne RB5 du PIC est à l'état logique bas (0 V), alors
les valeurs lues sont affectées au canaux 1 à 12.
- Si la ligne RB5 du PIC est à l'état logique haut (+5 V), alors
les valeurs lues sont affectées au canaux 13 à 24.
Sortie DMX
La sortie DMX suit la norme RS485 d'un point de vue électrique, et pour ce faire j'ai utilisé un
driver de ligne de type MAX485. On peut bien sûr utiliser d'autres CI
qui remplissent la même fonction comme par exemple le MAX481, MAX483, MAX487
ou SN75176BP (ces circuits ont le même brochage que le MAX485).
Alimentation
Une alimentation régulée délivrant une tension de 5 V sous au moins 100
mA est requise. Un
régulateur
de tension de type LM7805 fera parfaitement l'affaire pour la
stabilisation de tension.
Exemple
d'alimentation simple. Pour rappel, le LM7805 ne supporte pas 3000 V en entrée.
Prototype
Réalisé dans un premier temps avec ma platine EasyPic7 pour valider le code, puis assemblage dans un "pupitre" maison.
Le
circuit imprimé utilisé pour assembler les composant est de type
"plaque à pastilles", pressé j'étais et envie pas j'avais de circuit
imprimé dessiner.
Le
régulateur de tension de 5 V est sur le circuit imprimé, à coté du
circuit intégré d'interface RS485. J'ai installé deux condensateurs de
100 nF qu'on ne voit pas sur le schéma car ils sont invisibles, un
entre les broches d'alim 11 et 12 du PIC, l'autre entre les broches d'alim 31
et 32. J'ai prévu un connecteur ICSP 5 points pour la (re)programmation
éventuelle du PIC après mise en boîte (tout à gauche sur la photo
ci-avant). Le câblage des potentiomètre n'est pas très compliqué, tous
recoivent une tension de 5 V sur leurs broches extrèmes, il suffit
ensuite de relier leur curseur vers l'entrée du PIC qui lui correspond
(ce que j'ai fait avec du câble en nappe coloré).
La tension non régulée vient d'un bloc secteur récupéré aux
encombrants, ce dernier fonctionne encore et chose curieuse il possède
deux sorties 9 V (tension de 14 V mesurée à vide) totalement
indépendantes. J'ai donc un secours au cas où (sauf bien sûr si c'est le transfo d'alim qui crame).
Tout a fonctionné du premier coup et comme prévu, je suis épaté et il va me falloir une semaine pour m'en remettre !
Logiciel du PIC
Fichier binaire compilé *.hex à flasher dans le PIC disponible dans l'archive zip
suivante. Développé et compilé avec MikroPascal V6.x.
Contrôleur
DMX 003 - 18F4220 - (08/06/2014)
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é (assemblage sur plaque d'expérimentation à pastilles).
Historique
08/06/2014
- Première mise à disposition.