Electronique > Réalisations > Jeux de lumières > Gradateur de lumière 013

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.

gradateur_lumiere_013

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 debug
Si 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 Start
Si 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.

interface_lpt_001_proto_a

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.