Complément sur les sorties PWM

ComplémentSorties 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).

Principe des sorties PWMInformations[1]

La commande permettant de générer ces impulsions sur une sortie numérique repérée par la variable pinLed est la suivante :

1
analogWrite(pinLed,niveau);

La variable niveau est du type entier, et peut prendre une valeur comprise ente 0 et 255.

ExempleIllustration 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.

1
int pinLed = 3 ; // Utilisation de la borne ES n°3 PWM
2
3
void setup() {
4
  // put your setup code here, to run once:
5
  pinMode(pinLed, OUTPUT); // La borne est utilisée en SORTIE
6
}
7
8
void loop() {
9
  // On fait varier progressivement le niveau d'intensité de la DEL
10
  // Chaque niveau d'intensité dure 1 s
11
  for (int i = 0 ; i <= 15 ; i = i + 1) {
12
    analogWrite(pinLed, 255 - i * 15);
13
    delay(1000);  // On maintient le niveau pendant 1000 ms
14
  }
15
}
Illustration du principe des sorties numériques PWMInformations[2]