Complément sur les sorties PWM
Complément : Sorties numériques modulables
Une sortie numérique ne peut délivrer que deux valeurs de la tension : 0 V ou +5 V.
Certaines sorties numériques de la carte Arduino sont repérées par le symbole ~. Il s'agit de sorties dites PWM, pour Pulse Width Modulation. Autrement dit, elles peuvent délivrer des trains d'impulsions entre 0 et 5 volts où le pourcentage de temps à l'état haut est ajustable sur 256 paliers (voir illustration ci-contre).
La commande permettant de générer ces impulsions sur une sortie numérique repérée par la variable pinLed est la suivante :
analogWrite(pinLed,niveau);
La variable niveau est du type entier, et peut prendre une valeur comprise ente 0 et 255.
Exemple : Illustration avec l'éclairage variable d'une DEL
On illustre le principe d'une sortie PWM avec le programme ci-dessous qui fait varier l'intensité lumineuse d'une DEL par paliers. On observe à l'oscilloscope le signal issu de la borne PWM 3.
int pinLed = 3 ; // Utilisation de la borne ES n°3 PWM
void setup() {
// put your setup code here, to run once:
pinMode(pinLed, OUTPUT); // La borne est utilisée en SORTIE
}
void loop() {
// On fait varier progressivement le niveau d'intensité de la DEL
// Chaque niveau d'intensité dure 1 s
for (int i = 0 ; i <= 15 ; i = i + 1) {
analogWrite(pinLed, 255 - i * 15);
delay(1000); // On maintient le niveau pendant 1000 ms
}
}