Le pwm (pulse width modulation) ou modulation de largeur d’impulsion est une technique utilisée pour réduire la puissance moyenne délivrée par une tension électrique.
On obtient cette variation de tension en allumant et éteignant rapidement cette source de tension.
Le pwm est beaucoup utilisé pour des composants qui fonctionne avec de l’inertie comme des moteurs car il ne sera pas affecté par de rapidement changement comme son temps de réaction est long due a son inertie.
Le but du pwm est de creer une alternative entre le high et le low de la carte Arduino, afin d’avoir la moitié de la puissance par exemple. Pour cela il va y avoir des cycles de periodes et la broche sera allumée et puis éteinte.
Par exemple si on prends une periode de 20 ms, ce qui donne une fréquence de 200hz (f=1/T), si la led est allumée pendant 10ms et éteinte pendant le même temps, alors cela fera une puissance divisée par deux soit 50% de sa luminosité maximum.
Maintenant si pour la même periode la led est allumée 5 ms et éteinte pendant 15 ms, la luminosité sera maintenant de 25% de sa puissance maximale.
Sur une carte Arduino uno, vous avez 6 broches qui propose le pwm. Elle sont reconnaissable par le symbole ~. Ce sont les pins 3,5,6,9,10,11.
Pour utiliser le pwm, il y a une fonction faite pour ca appele analogwrite. Cette fonction prends en paramètres la broche que vous souhaitez allumer et un nombre entre 0 et 255 correspondant à la tension. 0 correspond à 0V et 255 a 5V.
analogWrite(broche, valeur)
La valeur retenue pour la valeurs de la tension est de 1 octet ou 1 byte. Un octet contient 8 bits qui peuvent tous avoir une valeur entre 0 et 1. On a donc 2^8 = 255 valeurs possible de tension.
La carte motorshield est utilisée pour contrôler un moteur. Elle va vous permettre de gérer sa vitesse et sa direction.
Avec cette carte vous pouvez contrôler jusqu’à deux moteurs à courant continu en même temps, faire varier leurs vitesses, changer de direction grâce à un pont en h. Certaine carte sont même capable de contrôler un moteur pas à pas.