Utilisation des broches digitales PWM (Pulse Width Modulation) Arduino
Dans l'Arduino UNO (et d'autres), en plus de leur utilisation normale, certaines broches digitales permettent de générer une tension entre 0 et 5V.
Ce sont les broches désignées par un ~ (3, 5, 6, 9, 10, 11).
![](public/img/104/arduino-schema.jpg)
Principes de fonctionnement du PWM (Pulse Width Modulation)
Je vais expliquer le principe ici de manière succincte, si vous souhaitez aller plus loin, je vous conseille cette page : https://www.locoduino.org/spip.php?article47.
Les broches digitales ne sont capables de fournir que 0V ou 5V. Mais en générant une tension pulsée, alternant rapidement de 0 à 5V et inversement, et en contrôlant le temps passé à chaque état, il en résultera une tension modulée entre 0 et 5V.
Comment utiliser la fonction PWM (Pulse Width Modulation) des broches digitales
Pour utiliser le PWM, on ne va pas recourir à la fonction digitalWrite() mais on va faire appel à la fonction analogWrite().
la fonction analogWrite() prend deux paramètres : 1) la broche concernée et 2) le rapport entre le temps passé à 5V et le temps passé à 0V. Ce chiffre peut aller de 0 (tension 0V) à 255 (tension 5V).
Voici le code qui permet de sortir une tension de 2,5V sur la broche digitale 5 :
void setup() { } void loop() { analogWrite(5, 127); // 127 = 255/2 (environ) et donc va donner la moitié de 5V à savoir 2,5V }