Conversion Numérique/Analogique – PWM

pwmEn principe, un port numérique ne peut délivrer qu’une information « tout ou rien » : allumé/éteint. La tension sur la sortie numérique ne peut être que 0V ou 5V, jamais entre les deux.

Mais si on la fait varier très rapidement (0V-5V-0V-5V-…) la valeur moyenne est différente. Et en jouant sur la durée des états hauts (5V) et états bas (0V), on modifie la valeur de cette tension moyenne, à volonté. Cette technique s’appelle la Modulation de Largeur d’Impulsion (MLI) – ou PWM (Pulse Width Modulation) en anglais.

Un signal PMW est caractérisé par :

  • sa fréquence (environ 500Hz par défaut pour un Arduino, mais elle est modifiable)
  • son amplitude (5V sur un port numérique d’Arduino)
  • son rapport cyclique (0% = 0V continu → 100% = 5V continus)

On peut ainsi générer n’importe quel signal analogique (dans les limites des capacités de l’Arduino) :


Voir/télécharger l’application sur Geogebra

pwm_pinsSeuls les ports numériques précédés d’un « ~ » sont capables de faire de la MLI,

sur un Arduino Uno par exemple, cela concerne les ports 3, 5, 6, 9, 10 et 11 :

 

Du coté programme, le signal PWM est généré par une simple fonction :

valeur  doit être un entier ( int ) compris entre 0 (rapport cyclique 0%) et 255 (rapport cyclique 100%).

 

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code