Pour intégrer un éclairage led avec le choix de la couleur, il me faut une petite carte électronique. J’ai de la bande LED RGB avec une commande mais elle ne fait pas l’affaire pour plusieurs raisons : La commande est trop grande, on ne peut pas modifier les préréglages définit d’usine et… ben il faut bien bricoler un peu!

Cahier des charges :

  • Gestion des trois couleurs de base Rouge, Vert et Bleu.
  • Définition de divers préréglages.
  • Commandable depuis un PC.
  • Entrées hardware pour pouvoir changer de couleurs via des boutons
  • Le plus petit possible

Étude :

Les bandes led que j’ai ont une alimentation 12Vdc et trois masses, une pour chaque couleur. Il nous faut donc un simple transistor NPN pour allumer chaque couleurs. La bande de led est une répétition de bloc de trois led. Il suffit donc de couper dans la bande le nombre de blocs que l’on veut.

Pour le « cerveau » de la carte, j’ai opté pour un PIC 18 F1320 que j’avais en stock et qui fera l’affaire avec ces 12IO possibles. En plus, il possède un port UART pour une com en RS232 avec le PC. Cette fois, je vais essayer d’utiliser oscillateur interne du PIC pour économiser deux entrées et aussi pour tester.

Schémas et matos :

Voici le schéma de la carte :

Pour les deux entrées, j’ai décidé de les faire en 12Vdc pour des raisons de câblage et de place sur le connecteur. Comme toujours, j’ai une led verte pour l’aide au debug et comme signalisation au besoin. Je l’ai mise sur la patte RA4 (3) qui attention en mode output est à collecteur ouvert.

La liste du matériel utilisé :

  • 1 PIC18F1320, ici la doc
  • 1 Led vert pour le débug ça sert toujours
  • 1 Résistance 1k  (R2) pour le led
  • 2 Condensateur céramique de 100nF (C2,C6) pour le déparasitage
  • 3 transistor FET STP40NF03L (Q1 à Q3) pour les sorties de chaque couleur
  • Pleins de résistance de 10k
  • 1 régulateur de tension 5Vdc L78L05ACZ en TO92 pour l’alim (IC1)
  • 1 Condensateur céramique de 330nF (C1) pour l’alim (selon la doc du L78L05ACZ)
  • 1 diode 1N4004 (D1) pour palier aux inversions de l’alimentation
  • 1 Petit connecteur à vis 8 pôles (X2) d’un pas de 2.54
  • 1 Connecteur à pin femelle pour l’UART (X4)
  • 1 Connecteur à pin pour la programmation du PIC® (X1)
  • 2 Diodes Zener pour limiter la tension sur les deux entrées.
  • 1 Module UST to UART (pas dans le schéma) qui vient se brancher sur le connecteur X4. La ref chez Distrelec
  • Une alimentation 230VAC => 12Vdc. Encore chez Distrelec ici

Construction:

Comme toujours, je vais monter le circuit électronique sur du Veroboard. C’est une solution simple et bon marché pour développer des cartes électronique. Je prends des cartes avec des pistes horizontales et un pas de 2.54mm.

Voici mon plan de montage :

Cette représentation est du côté sans pistes. Les pistes sont dans le sens horizontal et les crois sont les coupures des pistes. Les trais verticaux sont les ponts.

Et voici le print terminé et monté:

Montage des bandes de led:

Pour ce montage, je vais utiliser cinq bandes de led. 3 bandes de 5 blocs (50cm) et 2 bandes de 4 blocs (40cm). Avec ces deux longueurs, je peux décaler les bandes pour espérer mieux diffuser la lumière. Ensuite, les bandes sont montées dans un support à environ 15mm d’une plaque en PVC transparent blanc qui fait office de diffuseur.

Voici ce que ça donne :

La connexion n’est pas très propre mais cela ne se voit plus une fois le tout fermé.

Programmation :

Maintenant que tout est monté, il faut programmer le PIC pour qu’il fasse son travail. Pour la prog, j’utilise MPLabX® de microchip® avec le plugin C18 qui permet de programmer en C.

Pour utiliser l’oscillateur interne, il faut setter quelque registre. J’ai setté à 8Mhz ce qui sera amplement suffisant pour notre appli. Pour enregistrer les couleurs, j’utilise l’EEPROM du PIC qui possède 256 bytes. Pour cette appli, j’ai 12 couleurs programmable avec pour chacune 5 intensité. Pour chaque couleur, j’utilise 3 bytes pour l’intensité. Donc 12 couleurs * 5 intensités * 3 led = 180 bytes, je suis dedans. Je me réserve encore 5 bytes pour enregistrer la couleur actuelle, l’intensité actuelle et l’index de la couleur actuelle. Ces infos sont enregistrées sur la perte alimentation du PIC, il y a encore quelque registres à setter pour cette fonction.

Voici mon code complet pour vous faire une idée. Il n’y a pas de dépendances cette fois ;).

Pour la commande depuis le PC, j’ai codé un petit programme en Labview qui permet de configurer les divers couleurs ainsi que de setter en live la couleur à afficher. Si vous êtes intéressé par ce petit code, contactez-moi via le formulaire de contact.

Conclusions:

Tout fonctionne bien. Il y aura peut-être encore quelques petites modif de la prog mais pour un prototype on est bien.

La lampe est montée dans le support à l’arrière de ma TV. Le résultat est magnifique. La fonction manuelle avec les entrées permet de changer d’intensité et changer la couleur. Un index permet de sélectionner la couleur et l’intensité permet de sélectionner ben… l’intensité. Chaque action sur les entrées font varier ces deux index qui permettent d’aller prendre la bonne couleur dans l’EEPROM du PIC.

Merci d’avoir lu jusqu’ici et si vous avez des questions passez par le formulaire de contact et j’essayerai de vous répondre.