(Loading...)

mardi 12 octobre 2010

RGB LED - PWM Logiciel - Version 1


Dans la gamme de PIC sur lesquels je travaille, la majorité ne comportent que deux sorties PWM matérielles natives.

Il est parfois (souvent en fait) nécessaire d'en avoir plus pour les applications qui m’intéressent.

Il existe heureusement quelques astuces permettant de gérer n'importe quel port de sortie en mode PWM.
Une des méthodes est développée dans cet article.





Le montage dont il est question gérera  seulement trois sorties, donc sans interruption ce sera amplement suffisant.

Pour une utilisation plus poussée concernant un nombre de sortie plus importante et un cycle de PWM plus fin il sera nécessaire de gérer les timings par le biais des interruptions du µcontroleur.

A partir de là, il est simple de mettre en pratique l'exercice en créant une lampe dite d'ambiance, permettant de faire varier le cycle de couleur, dans un premier temps, de manière programmée, puis par la suite, faire évoluer le code pour obtenir des cycles aléatoires ou déterminé par boutons poussoirs.



Sur la maquette trois LED seront utilisées, Rouge, Verte et Bleue.
Sur le montage définitif il suffira alors de proportionner la partie puissance en fonction des LEDs utilisées.

Le choix du 16F876 à été déterminé par le fait que j'avais une platine, destiné à d'autres expérimentations, quasiment prête pour tester le code du PWM.







La simplicité du montage est visible sur ce schéma, on pourra aisément remplacer le PIC par une version plus légère.




Le code s’appuie sur une version publiée sur le forum de MikroElektronika, remaniée et adaptée pour mon usage.



Code source



Ce premier code permet de paramétrer le cycle des couleurs affichées.
Le PIC utilisé ici, sera un PIC 16F876A mais n'importe quel type conviendra parfaitement.
Simple, basique, mais qui répondra à une utilisation classique d'un éclairage d'ambiance multicolor.


7 commentaires :

kawi a dit…

excellent et très intéressant sujet


Merci

HeartyGFX a dit…

Bonjour,

Kawi content de te revoir ici ;)

La gestion PWM des PIC est un sujet qui me tient à cœur,
les utilisations sont multiples et fréquentes.
Maitriser la vitesse de rotation de moteur,la luminosité d'un éclairage
ou le contrôle d'une résistance chauffante, sont entre autres,
des applications qui nécessiteront le PWM.

Merci de ta visite,

A bientôt,

;)


red a dit…

Merci beaucoup :)

Anonyme a dit…

une application très bien faite
merci pliennement

HeartyGFX a dit…

Bonjour,

Merci pour ce commentaire.

;)


Anonyme a dit…

très intéressant mais j'ai une probléme comment je peut generer plusieure signal pwm avec le timer et on peut le varier avec un potentiometre???? merci d'avance :) (kimo)

HeartyGFX a dit…

Bonjour,

qu'appelles-tu plusieurs signaux PWM?
Tu veux dire sur plusieurs sorties?

Tu peux toujours le faire varier avec un potentiomètre,
il te suffit d'avoir en variable entière une des entrées ADC du PIC,
et de l'utiliser pour faire varier le Duty Cycle.

;)