Electronique > Réalisations > Lampadaire multicolore 003

Dernière mise à jour : 19/04/2008

Article non terminé, volontairement non référencé dans les sommaires du site


Présentation

Extension de mon lampadaire multicolore 002, qui lui même faisait suite à mon lampadaire multicolore 001. Cette version est basée sur l'utilisation d'un PIC de type 16F877. L'occasion pour moi de me pencher encore un peu plus sur la programmation des PICs.

Fonctions implémentées ou à venir

puce verte Variation manuelle et indépendante des trois couleurs RVB (minimum vital).
puce rouge Variation automatique et aléatoire des couleurs, avec vitesse réglable (pour permettre des variations plus lentes que celle offertes par la lampe Colors de Philips).
puce rouge Ajout d'une couleur jaune aux trois couleurs existantes, si cela s'avère vraiment indispensable.
puce rouge Télécommande à infrarouge.
puce rouge Affichage LCD permettant de visualiser le rapport cyclique affecté à chaque couleur, et le mode de fonctionnement en cours.
puce rouge Sauvegarde presets utilisateur
--------------
puce verte = fait
puce rouge = à faire

Le schéma

Schéma provisoire, juste pour montrer l'idée générale et l'état d'avancement. Comme pour le lampadaire 002, le schéma ne représente qu'une simple led pour chaque sortie R, V et B, mais la mise en place de plusieurs leds par sortie ne pose aucun soucis, moyennant l'ajout des composants de "puissance" qui vont bien (un simple transistor peut suffire, tout dépend de vos ambitions).

lampadaire_multicolore_003

Idée générale
Le principe général repose sur la modulation de largeur d'impulsion (PWM ou MLI), que j'avais déjà mise en oeuvre pour mon premier lampadaire multicolore. La grosse différence ici est le nombre de composants nécessaires. Alors que dans la première version j'utilisais un NE555 avec tous ses composants satellite pour chaque voie R, V et B, un seul composant est désormais requis. Contrepartie non négligeable, le composant en question doit être programmé, ce qui impose d'avoir le matériel nécessaire pour le faire, ou de connaitre quelqu'un qui peut le faire pour vous. Je ne conseille pas une méthode plus que l'autre (NE555 ou PIC), à chacun ses préférences. Bien, modulation de largeur d'impulsion, donc. Certains PIC offrent de façon "native" ce type de fonction (cas du 16F877 par exemple), d'autres non (cas du 16F84). Le 16F877 n'offre que deux modules PWM, et il m'en fallait au moins trois. Je devais donc trouver une autre solution que d'utiliser les fonctions natives. J'ai donc développé mon programme pour produire des signaux modulés en largeur d'impulsion sur quatre sorties (trois seulement utilisées pour le moment), avec possibilité de modifier chacune d'elle de façon indépendante. Pour cela, je stocke dans un tableau, les valeurs de luminosité en cours pour chaque couleur, ces valeurs pouvant être comprises entre 0% et 100%, une valeur de 50% correspondant à une luminosité médiane, la valeur de 0% correspondant à l'extinction complète et la valeur de 100% correspondant à l'allumage plein feu. Pour modifier le taux de luminosité d'une des couleurs, il suffit de sélectionner la sortie correspondante (bouton SW1 pour sélectionner la sortie 1 Rouge, bouton SW2 pour la sortie 2 Vert, bouton SW3 pour la sortie 3 Bleu), puis d'appuyer sur le bouton SW4 ou SW5 pour respectivement descendre ou monter la luminosité. Les autres boutons serviront à des fonctions de sauvegarde et de rappel de configurations toutes faites pour obtenir immédiatement un mélange de couleurs particulier.