Electronique > Réalisations > Interfaces > DMX > Contrôleur DMX 003

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.

controleur_dmx_003_proto_002a

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

controleur_dmx_003

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

controleur_dmx_003_proto_002a controleur_dmx_003_proto_002b

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.

controleur_dmx_003_proto_002c controleur_dmx_003_proto_002d

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é).

controleur_dmx_003_proto_002e controleur_dmx_003_proto_002f controleur_dmx_003_proto_002g

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

controleur_dmx_003_proto_002h controleur_dmx_003_proto_002i controleur_dmx_003_proto_002j

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.