Conversion Numérique/Analogique – PWM

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

Le hachage

pwmMais 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)

Des signaux de toute forme …

On peut également générer (dans les limites des capacités de l’Arduino) générer des signaux de formes très diverses :

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

 

Arduino et PWM

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 :

analogWrite(port_numérique_PWM, valeur);

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 e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *