Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Le moulin à vent...
30 mai 2021

PWM - Arduino

pwm_arduino

Pulse Width Modulation (PWM) se traduit en français par la Modulation de Largeur d'Impulsions (MLI).

La MLI consite à générer un signal à deux états, un état haut à 5 V et un état bas à 0 V, dont la durée de chaque état est réglable.

On note respectivement th et tb les durées de l'état haut et de l'état bas.

la période du signal vaut alors : T = th + tb

Le rapport cyclique : α

On définit généralement le rapport cyclique :

α =
th / T

ainsi th = α × T

et tb = (1 - α) × T

α étant compris dans l'intervalle [0;1], c'est le paramètre qui permet de régler (de moduler) la largeur de l'impulsion.

À quoi ça sert ?

Outre le fait de générer des signaux réglables, la MLI permet de régler, par l'intermédiaire du rapport cyclique, la valeur moyenne de la tension imposée à une charge : 

Umoy = α × E

où E est la tension continue de la source d'alimentation.

La MLI avec Arduino...

Evidement, on peut utiliser une sortie "digital" et coder la forme du signal en fonction de la période et du rapport cyclique souhaités. Cependant la carte Arduino possède des sorties dédiées à la MLI. En contrepartie, la fréquence est fixe. Seul le rapport cyclique est modifiable.

Les broches sont repérées par le symbole "~" (tilde) :

  • D3, D9, D10, D11 : en 490 Hz
  • D5, D6 : en 978 Hz

Le code :

void setup(){
}
void loop(){
analogWrite(11, 127);
}

Les deux arguments de la commande analogWrite sont : le numéro de la broche et la valeur du rapport cyclique.

Le rapport cyclique est codé par un entier compris entre 0 et 255 (c'est-à-dire sur 8 bits).

Ici α = 127/255 = 0,498. La valeur moyenne de la tension en sortie de broche 11 sera de 2,49 V.

Publicité
Publicité
Commentaires
Publicité
Archives
Publicité