Le PWM ou Pulse width modulation est un moyen détourné de produire une tension électrique variable

C’est un signal en créneau est une technique couramment utilisée créer des signaux analogiques à l'aide de circuit électronique (un circuit ne pouvant prendre que deux valeurs souvent 0 ou1). Le signal pseudoanalogique est créé en alternant rapidement entre l'état logique 1 et 0 avec des ratios pour ne garder que la valeur moyenne.

Exemple d'un sigal PWM la tention moyenne en pointiller

Exemple d'un sigal PWM la tention moyenne en pointiller

Utilisation du PWM

<aside> ⚠️ Le PWM n'est disponible que sur les pins marqués ~

Ex :

pin : ~6 PWM ✅

pin : 7 PWM ❌

</aside>

Code

Pour créer un signal PWM sur un pin compatible, on utilise la fonction analogWrite

analogWrite(Pin,duty cicle between 0-255);

Note :

Dans le code ci-dessous le potentiomètre envoie une valeur entre 0 et 1023 et la fonction analogWrite prend comme argument des valeurs entre 0 et 255 pour "convertir" on peut utiliser la fonction map

Syntaxe :

map(valeur,entréeBasse,entréeHaute,soriteBasse,sortieHaute);

valeur: la valeur à mapper. entréeBasse: la limite inférieure de la plage actuelle de la valeur. entréeHaute: la limite supérieure de la plage actuelle de la valeur. soriteBasse: la limite inférieure de la plage cible de la valeur. sortieHaute: la limite supérieure de la plage cible de la valeur.

Exemple :

on veut convertir en entrée comprise entre 0 et 1023 vers une sortie entre 0 et 255 la variable d'entrée est x

x = map(x,0,1023,0,255);

Simulation

En tournant le potentiomètre, on remarque sur l'oscilloscope un changement du signal ainsi que la tension sur le voltmètre

En tournant le potentiomètre, on remarque sur l'oscilloscope un changement du signal ainsi que la tension sur le voltmètre