À quoi sert le PWM
La modulation de largeur d’impulsion (MLI, ou PWM en anglais) allume et coupe une tension un grand nombre de fois par seconde. La part de chaque période passée à l’état haut est le rapport cyclique. Comme l’interrupteur ne dissipe presque rien, le PWM est la méthode standard pour varier des LED, régler la vitesse d’un moteur, piloter une résistance chauffante ou construire une alimentation à découpage.
Les formules
- Période T = 1 ÷ fréquence
- Temps haut = rapport × T, temps bas = (1 − rapport) × T
- Tension moyenne = rapport × V
- Tension efficace = V × √rapport
- Puissance dans une résistance R = rapport × V² ÷ R
La tension moyenne fixe la vitesse d’un moteur ou la luminosité perçue après filtrage. La tension efficace fixe l’échauffement d’une charge résistive : c’est pourquoi elle est plus élevée que la moyenne.
Exemple
Une alimentation de 12 V, à 1 kHz, avec un rapport cyclique de 25 % :
| Grandeur | Valeur |
|---|---|
| Période | 1 000 µs |
| Temps haut | 250 µs |
| Tension moyenne | 3 V |
| Tension efficace | 6 V |
| Puissance dans 10 Ω | 3,6 W |
| Valeur de comparaison sur 8 bits | 64 sur 255 |
La puissance est le quart des 14,4 W reçus en marche continue, alors qu’une tension continue de 3 V ne donnerait que 0,9 W. Cette différence compte pour dimensionner une résistance ou un élément chauffant.
Choisir la fréquence
- LED : au-dessus de 200 Hz environ pour éviter le scintillement visible, et de 1 à 2 kHz pour les caméras.
- Moteurs à courant continu : souvent 15 à 25 kHz, au-delà de l’audible, pour éviter le sifflement.
- Régulateurs à découpage : de 100 kHz à plusieurs MHz pour réduire la taille des inductances.
- Servomoteurs : une trame à 50 Hz avec une impulsion de 1 à 2 ms, qui code une position et non une puissance moyenne.
Résolution du timer
Les timers de microcontrôleur comptent de 0 à 2ⁿ − 1, et la valeur de comparaison fixe le rapport cyclique : 8 bits donnent 256 pas, 10 bits 1 024 et 16 bits 65 536. À horloge égale, plus de résolution réduit la fréquence maximale : f = f_timer ÷ 2ⁿ. Un Arduino Uno, par exemple, produit son PWM 8 bits par défaut à environ 490 ou 980 Hz selon la broche.