Sorties Modulées
Afin de piloter certains actionneurs “lents” à l’aide d’une tension continue, on peut appliquer le principe de la modulation de largeur d’impulsions (ou PWM – Pulse Width Modulation).
Principe
Cette méthode consiste à appliquer un signal rectangulaire de fréquence fixe (suffisamment rapide pour que l’application ne traite que la valeur moyenne de ce signal) et dont le rapport cyclique (ie le temps haut par rapport à la période) peut changer. Ainsi la valeur moyenne peut être modifiée.
Mise en oeuvre sur une carte Arduino
La carte Arduino possède plusieurs sorties de ce type. Elles sont représentées par un symbole ~. Elles génèrent des impulsions à une fréquence d’environ 1kHz par défaut. Le rapport cyclique est modifiable sur 256 valeurs : 0 correspondant à 0% (temps haut nul) et 255 correspondant à 100% (temps haut = période).
La broche correspondante doit être configurée en sortie.
pinMode(int [broche], OUTPUT);
Pour pouvoir ensuite piloter cette sortie, il faut utiliser la fonction suivante :
analogWrite(int [broche], char [valeur]);
Le paramètre broche correspond à la broche à moduler.
Le paramètre valeur correspond au rapport cyclique que l’on souhaite appliquer sur cette broche (valeur comprise entre 0 – 0% – et 255 – 100%).
Par exemple, si on veut appliquer un signal modulé sur la broche 6 dont le rapport cyclique est fixé à 75% (soit 0.75 * 255 = 191), on pourra utiliser le code suivant :
pinMode(6, OUTPUT); analogWrite(6, 191);
Applications
Controle de la luminosité d’une LED
On peut utiliser ce principe sur une LED. La LED va alors clignoter et s’allumer plus ou moins longtemps en fonction du rapport cyclique.
A la fréquence de 1kHz, l’oeil humain n’a pas le temps de voir la LED clignoter. Ainsi, on a l’impression qu’en fonction du rapport cyclique, l’intensité lumineuse de la LED varie.