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
<aside> ⚠️ Le PWM n'est disponible que sur les pins marqués ~
Ex :
pin : ~6 PWM ✅
pin : 7 PWM ❌
</aside>
Pour créer un signal PWM sur un pin compatible, on utilise la fonction analogWrite
analogWrite(Pin,duty cicle between 0-255);
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);
En tournant le potentiomètre, on remarque sur l'oscilloscope un changement du signal ainsi que la tension sur le voltmètre