Dernière mise à jour :
22/01/2012
Présentation
Cette interface
DMX
dispose d'une entrée DMX et de 10 sorties logiques qui fonctionnent en
tout ou rien.
Le montage fait appel à un microcontrôleur
PIC de type 16F88 ou 16F628A et a été développé comme base de départ
pour d'autres projets DMX. Il fait suite à mon
contrôleur
DMX 001.
-
Schéma 002
: version avec PIC 16F88
-
Schéma 002b
: version avec PIC 16F628A
Les
adresses DMX sont figées en dur dans le programme, pas de microswitches
pour les modifier car pas assez de broches dispos sur le PIC, tout
simplement (je ne voulais pas utiliser d'expandeur de port mais c'est
surement possible). Si d'autres valeurs d'adresses sont requises, il
faut les modifier dans le programme source qui devra alors être
recompilé (me contacter pour ça). Les sorties #1 à #10 correspondent
aux adresses DMX 1 à 10.
Schéma 002 (16F88)
Le schéma n'est pas complexe du tout, et pourtant ça fonctionne.
Bon, il est vrai aussi qu'on ne lui en demande pas trop.
Fonctionnement général
Cette
interface dispose de 10 sorties logiques qui fonctionnent en tout ou
rien, selon valeur attribuée au dix canaux DMX 1 à 10. Chaque sortie
logique Out 1 à Out 10 pass à l'état logique haut si la valeur du canal
DMX qui lui correspond est supérieure ou égale à 128. Si la valeur est
comprise entre 0 et 127, la sortie logique reste à l'état bas. Exemple
avec les canaux DMX 1 à 10 véhiculant les valeurs suivantes.
- |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Valeur transmise |
0 |
15 |
127 |
128 |
250 |
34 |
100 |
64 |
255 |
200 |
Etat logique |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
La
colonne 1 montre qu'avec une valeur de 0 pour le canal 1, la sortie 1
reste à l'état logique bas. La colonne 2 montre qu'avec une valeur de
15 pour le canal 2, la sortie 2 reste à l'état logique bas. La colonne
4 montre qu'avec une valeur de 128 pour le canal 4, la sortie 4 passe à
l'état logique haut. etc.
Interface électrique DMX
Confiée à un MAX487 qui travaille de la même façon que
dans mon
contrôleur
DMX 001,
mais avec sens des données inversé, à savoir mode réception
en permanence et jamais de mode émission. Les deux broches 2 et 3 du
MAX487 (broches qui définissent lequel des modules émission ou
réception doit être activé) sont donc toutes deux reliées à la masse.
La résistance R3 de 120 ohms est
montrée câblée sur le schéma mais en pratique il
convient de la mettre
en série avec un cavalier... ou de ne rien mettre du tout et de prévoir
une seconde prise XLR reliée en parallèle sur J1 et sur
laquelle
pourra être enfichée une terminaison
(bouchon 120 ohms) ou un câble allant vers un autre équipement
récepteur DMX.
Utilisation des sorties
Les
sorties sont de type logique TTL et délivrent donc des signaux
électriques qui sont soit 0 V, soit +5 V, sous un courant maximal de 20
mA par sortie (25 mA en fait par sortie individuelle, mais pas
conseillé d'aller jusque là si on pense que toutes les sorties
peuvent
être activées en même temps). Piloter l'allumage de LED est
bien et même conseillé pendant la phase de tests, mais sans
doute
aurez-vous vite envie de passer à quelque chose de plus sérieux (mise
en route d'un projecteur, d'une machine à fumée, etc), et dans ce cas
une
interface
logique adaptée devra être ajoutée.
Alimentation
L'alimentation nécessaire est de +5 V pour l'ensemble du circuit.
L'usage d'une tension d'alimentation
supérieure (en plus de celle de 5 V destinée au PIC) peut être
requise si les éléments à commander (piloter) le
réclament (lampe de puissance, moteur, etc). Si ce montage est destiné
à compléter un équipement existant, peut-être pouvez-vous regarder s'il
est possible d'extraire un petit +5 V depuis ce dernier. Selon le type
de charge à commander, il se peut que le courant total maximal demandé
reste assez faible pour pouvoir vous le permettre. Attention, je
conseille cette façon de faire uniquement si vous vous y connaissez
assez, hors de question d'aller bidouiller un appareil si vous avez
quelque doute que ce soit, surtout s'il est relié au secteur !
Schéma 002b (16F628A)
Même chose qu'avec le PIC 16F88, avec de toutes petites différences.
Différences avec la version avec PIC 16F88
Dans
le schéma 002b avec PIC 16F628A, la sortie Out_5 se voit dotée d'une
résistance de charge puisque la broche RA4 du PIC est de type
"drain ouvert" alors que ce n'est pas le cas avec la broche RA4 du
16F88. La broche de réception du module UART se trouve en broche RB1
pour le 16F628A alors qu'elle se trouve en RB2 pour le 16F88.
Prototype
Après simulation OK dans Proteus, testé dans le monde réel avec ma
platine de développement EasyPic4 et mon
interface
électrique DMX
simplifiée. Pour l'envoi des commande DMX, j'ai utilisé un contrôleur
six voies bon marché (Stairville DDC-6) acheté chez Thotho.
Comme
ce contrôleur six voies n'a que... six voies, j'ai du ruser un
peu
et procéder aux tests en deux étapes :
- étape 1 : programmation du PIC pour que les 5 premières sorties
logiques correspondent aux canaux DMX 1 à 5.
- étape 2 : programmation du PIC pour que les 5 dernières sorties
logiques correspondent aux canaux DMX 1 à 5.
Je
reconnais que cette façon de faire ne prouve pas que le système
fonctionne bien avec les 10 sorties utilisées en même temps, mais cela
prouve que les trames DMX sont correctement décodées et que les 10
sorties du PIC peuvent être activées ou désactivées. Pour moi c'est
donc OK et ça doit fonctionner pour
les 10 voies en même temps (je sais, l'électronique à parfois ses
mystères).
Vidéo de démonstration
Une vidéo rikiki juste pour montrer le circuit en oeuvre.
La
commande sur voie DMX N°5 est inversée car la sortie utlisée (broche
RA4 d'un PIC 16F628A) qui lui correspond est en drain ouvert et la LED
est branchée à l'inverse des autres. Pour les tests, je ne me suis pas
fatigué à ajouter un inverseur logique.
Logiciel du PIC
Les fichiers binaires compilés *.hex à flasher dans le
PIC sont disponibles dans l'archive zip
ci-après (un fichier pour 16F88 et un pour 16F628A). MikroPascal V5.30
utilisé pour le développement et la
compilation.
Interface
DMX 002(b) - 16F88/16F628 - (22/01/2012)
Pour ce projet, code
source non disponible.
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é. Mais quand il sera fait il sera compatible avec les deux
versions 002 (PIC 16F88) et 002b (PIC 16F628A). Pour assurer
cette
compatibilité, il y aura la place pour la résistance R4 (qui ne devra
être mise que pour le 16F628A) et un inverseur à cavalier (jumper deux
positions) qui permettra de router le signal DMX reçu (venant de la
broche 1 de U2) versla broche RB1 ou RB2 du PIC choisi.
Historique
22/01/2012
- Première mise à disposition