Rasp-Hack-L293-PWM

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

PWM est l'acronyme anglais de "pulse width modulation" que l'on traduit par "modulation par largeur d'impulsions".

PWM est un terme fort répandu sur le net, Arduino et en hacking électronique... raison de laquelle nous allons le préserver tel quel.

La modulation par largeur d'impulsion (MLI en français) est une technique utilisée pour contrôler la puissance envoyée à un périphérique. Nous l'utiliserons dans ce tutoriel pour contrôler la quantité d'énergie alimentant le moteur et par conséquent sa vitesse de rotation.

Le schéma ci-dessous montre le signal PWM tel qu'il est envoyé par la broche PWM du Raspberry Pi

Rasp-Hack-L293-PWM-01.jpg
Crédit: AdaFruit Industries www.adafruit.com

Chaque 1/500 ième de seconde, la sortie PWM produit une impulsion. La longueur de cette impulsion (dans le temps) contrôle la quantité d'énergie qui alimente le moteur. Comme vous pouvez le constater sur le graphique la longueur de l'impulsion peut varier de 0 à 100%.

Sans impulsion, le moteur ne fonctionne pas, une courte impulsion le fera tourner lentement. Si l'impulsion est active pendant cinquante pour cent du cycle, le moteur recevra la moitié de la puissance qu'il recevrait avec des impulsions maximales (constante dans le temps).

Caractéristiques importantes

Il y a deux caractéristiques importante dans un signal PWM, le fréquence et la résolution du controleur.

La fréquence

Dans le cas d'un Raspberry-piPi, cette fréquence est de 500 Hertz. Cela signifie que le signal à l'opportunité de changer de valeur (0volt ou 3.3 volts) tous les 1/500 ième de secondes pour recommencer le cycle PWM suivant.

Plus cette fréquence est élevée et meilleure sera la "distribution moyenne de la puissance". 500 Hz est une valeur assez répandue que j’associerais aux matériels bas et moyen de gamme/

La résolution

La résolution du contrôleur s'exprime en bits. La plupart du temps, il s'agit de contrôleur 8 bits.

Ces 8 bits indique donc la valeur entière maximale pouvant être utilisée avec le contrôleur PWM et donc la résolution max que l'on peut attendre de ce dernier.

Je m'explique: sur 8 bits, il est possible d'encoder les valeurs entières de 0 à 255 (voyez l'arithmétique binaire). Il est donc possible d'indiquer au contrôleur PWM de fonctionner à:

  • 0 (0% du cycle utile, éteint).
  • 128 (soit la moitié de la valeur maximale 255, ce qui représente 50% du cycle utile)
  • 255 (soit 100% du cycle utile, le signal constamment au niveau haut)

Vous l'aurez compris, ces 8 bits détermine aussi la finesse avec laquelle il est possible de contrôler le cycle utile. En 8 bits, la valeur peut varier de 0 à 255 et la meilleure résolution sera de 1/255 soit 0.0039. L'incrément minimal du signal est de 0.0039.

A titre d'exemple, un contrôleur avec une résolution 10 bits est capable d'accepter les valeurs de 0 à 1023. L'incrément minimal du signal est donc de 1/1023 = 0.00097.



Source: Adafruit's Raspberry Pi Lesson 9. Controlling a DC Motor

Réalisé avec l'aide de Mr Carette J. à qui nous remettons tous nos remerciements.

Tutoriel créé par Simon Monk pour AdaFruit Industries. Tutorial created by Simon Monk for AdaFruit Industries

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.