Dernière mise à jour :
15/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 à
incandescence 230 V (max 220 W par voie) grâce à de simples messages
MIDI de type NoteOn issues d'un clavier maître MIDI ou d'un séquenceur
logiciel (Cubase, Logic ou autre).
Pour ce faire, il est fait usage d'un microcontrôleur de
type 18F2520 (ou 18F2420),
qui "convertit" les données MIDI reçues (provenant d'un clavier ou d'un
séquenceur logiciel) en impulsions de déclenchement adressées à des
triacs.
Remarque
: au démarrage du système, toutes les lampes sont éteintes ou faiblement allumées (au choix de l'utilisateur), il n'y a
pas d'enregistrement (mémorisation) des dernières commandes MIDI
reçues. La raison en est simple, j'ai conçu ce montage pour
le piloter via une piste MIDI de Cubase, avec des musiques
composées et
jouées avec ce logiciel. Une fonction de mémorisation pourrait toutefois
être implémentée si le besoin s'en faisait sentir.
Avertissement
Pour
l'heure, ce montage n'est pas "officialisé". Il fonctionne dans les
grandes lignes, mais n'a pas encore passé la totalité des
tests que je lui réserve. La portion microcontrôleur a été
simulée avec succès mais n'a pas été testée en grandeur réelle.
Le fichier compilé est toutefois mis à disposition (sans code
source) même s'il y a fort à parier que des améliorations peuvent
encore être apportées. Si vous êtes courageux, vous avez toutes les
billes pour entamer la réalisation du montage. Si vous avez trop de
doutes, attendez que moi-même ou quelqu'un d'autre ait réalisé
l'ensemble avant de vous y mettre. Merci de ne pas m'écrire pour me
dire "Enfoiré, ton montage ne fonctionne pas, c'est vraiment nul tes
trucs !". Si par contre je lis "J'ai tenté de le réaliser mais ça ne
fonctionne pas bien pour tel ou tel point..." mon sourire sera plus
large et je répondrai.
Schéma
Le schéma qui suit est absolument complet, il
comporte la section alimentation, la section de décodage des données MIDI et
l'interface de puissance secteur 8 voies.
Coeur du montage
Basé
sur un microcontrôleur de type PIC 18F2520 (ou 18F2420 avec modifications mineures du code logiciel), la section principale
du circuit reste en attente permanente de données MIDI et
dès réception d'une note, la décode et
détermine quelle valeur de luminosité donner à
telle ou telle voie de sortie. Les notes reconnues par le circuit sont
fixes et non modifiables par l'utilisateur (je saurais le faire, comme
cela a été fait pour l'
interface MIDI 002b, mais
là je n'avais pas le courage et n'en voyais pas vraiment l'utilité). Il faudra donc envoyer les notes
MIDI suivantes pour que le montage accèpte de réagir :
- Voie 1 (Out1) = Do3
- Voie 2 (Out2) = Ré3
- Voie 3 (Out3) = Mi3
- Voie 4 (Out4) = Fa3
- Voie 5 (Out5) = Sol3
- Voie 6 (Out6) = La3
- Voie 7 (Out7) = Si3
- Voie 8 (Out8) = Do4
Pour chaque voie, c'est la vélocité de la note qui
détermine le taux d'éclairement. La
vélocité d'une note MIDI peut prendre 128 valeurs, de 0
à 127. Une valeur de vélocité de 1 correspond à un taux d'éclairement
minimal (0%), et une valeur de vélocité de 127 correspond à un taux
d'éclairement maximal (100%). La valeur de vélocité 0 n'est pas prise
en compte car elle accompagne parfois une évenement de type NoteOn pour
constituer un évenement de type NoteOff. En procédant ainsi, on peut
relacher le clavier (ou produire un NoteOff dans le séquenceur) à tout
instant, après l'envoi du NoteOn avec la valeur de la vélocité
souhaitée. La lumière du canal concerné ne risque donc pas de
s'éteindre de façon inopinée...
Alimentation et détection passage par zéro onde secteur
L'alimentation
secteur permet de fournir une tension stabilisée de +5 V pour le
microcontrôleur PIC, et en même temps délivre des impulsions à la
fréquence de 100 Hz synchronisées sur les alternances du secteur,
via
les deux optocoupleurs U4 et U5. La régulation du +5 V est assurée par un
régulateur
de tension
intégré classique de type 7805. On trouve également le
traditionnel pont de diodes (D2 à D5) et le condensateur de filtrage
principal (C3). La solution
consistant à employer des optocoupleurs directement alimentés sur
le secteur au
travers d'une résistance de forte valeur pour délivrer des impulsions
100 Hz a été retenue, en prenant soin cependant d'augmenter
la largeur des impulsions fournies (durée voisine de 30 us) avec un
monostable de type CD4538. La largeur des impulsions de synchronisation
100 Hz est au final de 1 ms - valeur fixée par les composants C5 et R6
- et permet un fonctionnement correct avec les interruptions du PIC (on
pourrait choisir une valeur plus faible mais ce n'est pas critique
ici). Les résistances R3 et R4 de 82 kO dissipent une puissance moyenne
de
0,6 W et un peu plus d'un watt en crête. Même si à priori on peut
mettre des modèles 1 W, je conseille fortement la mise en place de
résistances 2 W. Notez que les LED des deux optocoupleurs sont câblées
en parallèle-inverse (tête-bêche) pour assurer la détection des
alternances positives et négatives. Pas besoin d'ajouter des diodes
externes de protection pour limiter la tension inverse de ces LED,
puisque chaque opto-coupleur protège l'autre (la LED de celui qui
conduit présente une tension nominale de fonctionnement inférieure à la
tension inverse max supportée).
Petit rappel : la
détection du passage par zéro de l'onde secteur est nécessaire pour
permettre la fonction de graduation de lumière. La puissance lumineuse
est en effet définie par la durée pendant laquelle chaque ampoule est
alimentée lors de chaque alternance du secteur. Pour plus de détails concernant la
notion de détection de passage par zéro de l'onde secteur,
merci de vous reporter à la page
Gradateur de lumière.
Interface de puissance 8 voies
Les
lampes sont alimentées au travers de triacs courants et bon marché, et
des optocoupleur (optotriacs pour être exact) sont insérés entre
circuit de commande (microcontrôleur) et commandes 230 V afin d'assurer
une bonne isolation électrique. Cela n'est pas obligatoire, mais permet
d'éviter qu'une des branches du secteur ne se retrouve sur la partie
alimentation basse tension. La commande directe (sans isolation) est répendue pour les
gradateurs bas coût basés sur microcontrôleur, mais là je n'ai pas
voulu faire comme ça. Notez qu'ici, il est impératif d'utiliser des optotriacs qui
ne possèdent pas de circuiterie de détection de passage par zéro de l'onde secteur.
Fonctions annexes
Deux
fonctions plus ou moins utiles à activer ou non selon votre
humeur sont disponibles au travers des cavaliers JP1 et JP2.
JP1 / Mode debugSi
le cavalier JP1 est orienté vers la masse (RA4 à
l'état logique bas), le logiciel du PIC démarre en mode
standard.
Si
le cavalier JP1 est orienté vers le +5 V (RA4 à l'état logique haut),
le logiciel du PIC démarre en mode débug. On dispose dès lors de
signaux logiques supplémentaires sur les broches RB1 à RB3 et RC0 à RC3.
- RB1 / Test_Clk : l'état logique de cette sortie change toutes les 79 us, à chaque interruption du timer 0.
-
RB2 / Test_100Hz : l'état logique de cette sortie change toutes les 10
ms, à chaque détection de passage par zéro de l'onde secteur.
- RB3
/ Test_MIDI : une impulsion brêve est disponible sur cette sortie lors
de la réception d'un octet d'une trame MIDI. Pour chaque message MIDI
de type NoteOn, on dispose de trois impulsions courtes.
-
RC0 à RC3
: ces sorties délivrent sous forme binaire le "numéro" de la note MIDI
reçue. Valeur 1 pour le Do3, valeur 2 pour le Ré3, ... et valeur 8 pour
le Do4. En connectant un décodeur BCD / 7 segments (CD4543 ou SN7447
par exemple), on dispose d'un affichage de l'index de la dernière note
reçue.
JP2 / Light On StartSi
le cavalier JP2 est orienté vers la masse (RA5 à l'état logique bas),
les lampes sont éteintes lors de la mise sous tension du système.
Si
le cavalier JP2 est orienté vers le +5 V (RA5 à l'état logique haut),
les huit lampes s'allument lors de la mise
sous tension du système, avec un taux de luminosité de 20% à 25% environ. Cela permet de tester
la partie puissance sans avoir à envoyer de données MIDI.
Plus de puissance en sortie ?
Il
suffit de doter chaque triac d'un dissipateur thermique pour pouvoir
leur soutirer plus de courant. Vous pouvez aussi opter pour des triacs
plus costauds (des 12 A par exemple), sans qu'il soit nécessaire
de changer quoi que ce soit côté commande et isolation.
Prototype
Pas encore réalisé, mais je compte bien utiliser mon
interface pour port parallèle 001 pour les tests de la partie puissance.
Les optotriacs utilisés pour cette interface étant des
modèles avec détection de passage par zéro de
l'onde secteur, il me faudra évidement les remplacer par des
modèles sans détection de passage par zéro. Pas
très difficile vu qu'ils sont montés sur supports.
Code source et logiciel compilé
Fichier binaire compilé (*.hex)
prêt à flasher dans le PIC, dans l'archive zip que voici :
Gradateur lumiere 013 - 18F2520
(version du 27/03/2011)
Si vous souhaitez recevoir par la poste un PIC
préprogrammé et prêt à utiliser, merci de
consulter la page
PIC - Sources.
Remarque
: contrairement à mes habitudes, le code source n'est pas disponible
pour ce projet. J'ai mes raisons et vous pouvez me croire sur parole,
elles sont bonnes.
Circuit imprimé
Non réalisé.
Historique
15/04/2012- Ajout info puissance dissipée par les deux résistances R3 et R4 de 82 kO entre secteur 230 V et optocoupleurs.
- Ajout info brochage alim du monostable CD4538 (on peut aussi utiliser un monostable CD4528).
27/03/2011- Première mise à disposition.