10M+ Composants Électroniques En Stock
Certifié ISO
Garantie Incluse
Livraison rapide
Pièces difficiles à trouver ?
Nous les trouvons
Demander un devis

Explication du PWM Raspberry Pi : contrôle GPIO, applications et dépannage

Jun 04 2026
Source: Michael Chen
Parcourir: 2464

La modulation de largeur d’impulsion (PWM) est l’une des techniques les plus importantes utilisées dans les projets d’électronique et d’automatisation du Raspberry Pi. Il permet aux broches GPIO numériques de simuler un contrôle analogique en ajustant le timing du signal plutôt que la tension de sortie.

Figure 1. Raspberry Pi PWM

Présentation du PWM Raspberry Pi

La modulation de largeur d’impulsion (PWM) est une méthode qui permet aux broches GPIO Raspberry Pi de contrôler la puissance de sortie en commutant rapidement un signal numérique ALLUMÉ et ÉTEINT. Au lieu de créer une véritable tension analogique, la PWM modifie la durée pendant laquelle le signal reste ÉLEVÉ à chaque cycle. Ce pourcentage d’arrivée à temps s’appelle le cycle de travail.

Comment fonctionne le PWM sur Raspberry Pi

Figure 2. How PWM Works on Raspberry Pi

Un signal PWM commute à plusieurs reprises une broche GPIO Raspberry Pi entre les états HAUT et BAS. Le signal reste numérique, mais les appareils connectés répondent à l’effet moyen de la commutation.

Deux paramètres principaux régulent le fonctionnement de la PWM :

Paramètre PWMSignification
FréquenceCombien de fois le signal se répète-t-il par seconde ?
Cycle de serviceCombien de temps le signal reste ALLUMÉ pendant chaque cycle

Sur les broches GPIO Raspberry Pi, le HAUT est d’environ 3,3V. Un cycle de service de 50 % signifie que le signal reste ÉLEVÉ la moitié du temps et BAS la moitié du temps. Cela peut donner une impression de demi-lumière à une LED ou réduire la puissance moyenne fournie à un moteur.

Le cycle de travail est calculé en utilisant :

Cycle de travail = Temps ON / Période totale × 100 %

Cycle de serviceComportement du signalEffet pratique
0 %Toujours ÉTEINTPas de sortie
25 %ON pendant un quart du cycleFaible sortie
50 %ON pendant la moitié du cycleProduction moyenne
75 %ON pendant les trois quarts du cycleHaute production
100 %Toujours ACTIVÉProduction complète

Augmenter le cycle de travail augmente la production moyenne, tandis que diminuer le cycle de travail la diminue.

La fréquence PWM est le nombre de cycles PWM par seconde. Elle est mesurée en hertz (Hz).

La fréquence est calculée en utilisant :

f=1/T

DispositifFréquence typique des PWM
LEDDes centaines de Hz ou plus
Moteurs DCDes centaines de Hz à plusieurs kHz
ServosEnviron 50 Hz
Sortie audioDes fréquences bien plus élevées

Une mauvaise fréquence peut provoquer des LED clignotantes, des moteurs bruyants, des servos instables ou une mauvaise qualité audio.

PWM matériel vs PWM logiciel sur Raspberry Pi

Figure 3. Hardware PWM vs Software PWM on Raspberry Pi

SujetPWM matérielPWM logiciel
DéfinitionUtilise du matériel PWM dédié à l’intérieur du processeur Raspberry PiUtilise la commutation GPIO contrôlée par logiciel pour créer des impulsions PWM
Contrôle du timingContrôlé par le matérielContrôlé par logiciel et le système d’exploitation Linux
Précision du timingHautModéré
Stabilité du signalTrès stable avec moins de tremblementLe saut peut-il se produire, surtout sous une forte charge CPU ?
Utilisation du processeurFaible utilisation du processeurUtilisation plus élevée du processeur
GPIO FlexibilitéLimité à certaines broches GPIO sélectionnéesPeut fonctionner sur de nombreuses broches GPIO
Contrôle de fréquencePlus précis et stableCela dépend de la charge système
Performance sous chargeMaintient une sortie stable mieux pendant l’activité en arrière-planPeut devenir instable lorsque les tâches en arrière-plan Linux interrompent le timing des impulsions
Meilleures applicationsServos, pilotes moteur, ventilateurs, sortie audio, systèmes de contrôle de précisionGradation LED, projets pour débutants, contrôle à basse vitesse, indicateurs d’état
Principal avantageSortie PWM fluide et préciseInstallation facile et plus d’options GPIO
Limitation principaleDisponible uniquement sur certains pinsChronométrage moins précis
Utilisation recommandéeÀ utiliser quand la précision du timing compteÀ utiliser pour des projets simples où de petites erreurs de timing sont acceptables

Broches et configuration GPIO PWM Raspberry Pi

Figure 4. Raspberry Pi PWM GPIO Pins

Numérotation GPIO et broches matérielles PWM

Raspberry Pi utilise plusieurs systèmes de numérotation GPIO. La plupart des bibliothèques Python modernes utilisent la numérotation BCM, tandis que la numérotation physique fait référence à l’emplacement réel des broches sur l’en-tête.

Type de numérotationSignification
Numérotation BCMLa numérotation GPIO Broadcom est utilisée en interne
Numérotation physique des brochesPositions réelles des broches d’en-tête
Numérotation WiringPiAncien système de numérotation obsolète

Vérifiez toujours la numérotation GPIO avant de câbler le matériel.

Broches PWM matérielles courantes

BCM GPIOÉpingle physiqueCanal PWMUsage courant
GPIO12Broche 32PWM0LED, moteurs, servos
GPIO13Broche 33PWM1LED, moteurs, servos
GPIO18Broche 12PWM0Audio, servos, contrôle moteur
GPIO19Broche 35PWM1Audio, servos, contrôle moteur

GPIO18 est couramment utilisé car il prend en charge la PWM matérielle et est largement pris en charge dans les tutoriels et bibliothèques PWM.

Bibliothèques PWM et configuration

Bibliothèques PWM courantes de Raspberry Pi

BibliothèqueObjectif principalNotes
RPi.GPIOContrôle basique GPIO et PWMAccessible aux débutants
GPIOZEROContrôle simplifié des appareilsInterface de haut niveau
PigpioSynchronisation précise et PWM avancéPrend en charge la synchronisation DMA
lgpioContrôle GPIO moderneAccès de niveau inférieur

Paramètres de configuration typiques des PWM

ParamètreDescription
FréquenceVitesse de commutation PWM
Cycle de servicePourcentage du temps ON
Broche GPIOBroche de sortie PWM sélectionnée
Mode PWMPWM matériel ou logiciel PWM

Limitations de la PWM et sécurité du câblage

Le matériel Raspberry Pi PWM présente plusieurs limitations qui deviennent importantes en robotique, contrôle moteur, systèmes audio et applications industrielles.

LimitationExplication
Canaux PWM limitésSeul un petit nombre de sorties matérielles PWM sont disponibles
Fonctions partagéesCertaines broches GPIO partagent des périphériques
Conflits audioLe PWM peut entrer en conflit avec l’audio embarqué
Restrictions de brochesToutes les broches GPIO ne supportent pas le PWM matériel
Partage de fréquenceCertains canaux PWM partagent des sources d’horloge
Dépendance DMALes méthodes PWM avancées peuvent utiliser des ressources DMA

Beaucoup de problèmes de PWM sont causés par des erreurs de câblage plutôt que par des problèmes logiciels.

Erreur de câblagePourquoi cela compte
Mélange BCM et numérotation physiqueContrôle la mauvaise broche GPIO
Connexion directe des moteurs au GPIOPeut endommager Raspberry Pi
Terrain d’entente manquantCauses de signaux instables
Dépasser les limites de courant GPIOPeut endommager de façon permanente les broches GPIO
Diode à reculer manquantLes pics de tension peuvent endommager les composants
Mauvaise connexion de tensionLes broches GPIO ne supportent que la logique 3,3V
Fils de démarrage desserrésCauses de signaux PWM instables

Composants de protection recommandés

ComposantBut
MOSFETCommuter en toute sécurité des charges à courant élevé
Conducteur de pont en HContrôle la vitesse et la direction du moteur
Diode de retour de rebondProtège contre les pics de tension inductifs
Alimentation externeMoteur en toute sécurité
OptocouplerAssure l’isolation électrique

Applications PWM Raspberry Pi

Systèmes de gradation LED

Figure 5. LED Dimming Systems

La PWM est largement utilisée dans les projets LED Raspberry Pi car elle peut contrôler la luminosité sans nécessiter une véritable broche de sortie analogique. En modifiant le cycle de travail, les LED peuvent paraître plus faibles ou plus lumineuses. Cela est utile pour le contrôle de luminosité LED, le mélange des couleurs RGB, l’éclairage décoratif, les systèmes de luminosité adaptative et les indicateurs d’état. Une fréquence PWM suffisamment élevée doit être utilisée pour éviter le scintillement visible.

Contrôle de la vitesse du moteur

Figure 6. Motor Speed Control

La PWM est couramment utilisée pour contrôler la vitesse des moteurs en courant continu dans les roues robotiques, pompes, ventilateurs, systèmes de convoyeurs et actionneurs automatisés. Au lieu de modifier directement la tension d’alimentation, le PWM ajuste la puissance moyenne fournie au moteur. Des cycles de service plus élevés augmentent généralement la vitesse du moteur, tandis que des cycles plus faibles la réduisent. Des pilotes de moteurs externes sont nécessaires car les broches GPIO du Raspberry Pi ne peuvent pas piloter les moteurs en toute sécurité.

Contrôle de la position des servomoteurs

Figure 7. Servo Position Control

Les servomoteurs utilisent des impulsions de commande répétitives où la largeur d’impulsion détermine la position dans les bras robotiques, les systèmes de caméras panoramique-inclinaison, les véhicules RC et les systèmes d’automatisation. De petites erreurs de calage peuvent provoquer des secousses, des bourdonnements ou des mouvements instables, donc un timing PWM stable est important pour un contrôle fiable des servos.

Génération du signal audio

Figure 8. Audio Signal Generation

Le Raspberry Pi PWM peut générer des tonalités simples, des alarmes, des buzzers et des signaux audio basiques en changeant de broches GPIO à des fréquences audibles. La PWM est utile pour une sortie sonore intégrée simple, mais elle ne peut pas remplacer entièrement un DAC dédié pour des applications audio de haute qualité.

Applications industrielles et IoT

Figure 9. Industrial and IoT Applications

La PWM est utile dans les systèmes industriels et IoT Raspberry Pi car elle peut contrôler les sorties matérielles ajustables. Les applications courantes incluent l’agriculture intelligente, la surveillance environnementale, les systèmes CVC, l’automatisation industrielle et les systèmes de contrôle IoT. La PWM contrôle fréquemment les ventilateurs, pompes, vannes, systèmes d’éclairage et actionneurs.

Raspberry Pi vs Arduino pour le PWM

Figure 10. Raspberry Pi vs Arduino for PWM

CatégorieFramboise PiArduino
Système d’exploitationExécute Linux OSExécute un firmware simple
Puissance de traitementPuissance de traitement plus élevée pour des applications avancéesPuissance de calcul réduite mais optimisé pour les tâches de contrôle
Synchronisation PWMMoins prévisible grâce au système d’exploitation multitâcheComportement PWM en temps réel plus prévisible
LatenceLatence modéréeLatence plus faible avec une réponse matérielle plus rapide
Contrôle matérielAccès indirect au matériel via OS et bibliothèquesAccès direct au matériel
Stabilité PWMBon pour le PWM polyvalentMieux pour un contrôle moteur stable et des boucles de contrôle
RéseautageExcellent support réseau et IoTRéseau limité sans modules supplémentaires
MultitâchePeut exécuter des serveurs, scripts, bases de données et plusieurs applicationsCapacité limitée de multitâche
ProgrammationProgrammation facile de haut niveau avec PythonProgrammation simple de bas niveau avec l’IDE Arduino
Électronique débutanteIdéal pour les débutants axés sur les logicielsExcellent pour les débutants en électronique
Automatisation intelligenteExcellent pour les systèmes d’automatisation intelligents connectésBon pour l’automatisation autonome
Contrôle moteur en temps réelPerformance modéréeExcellente performance
Chronométrage de précisionPrécision de synchronisation modéréeExcellente précision du timing
Meilleurs cas d’utilisationSystèmes IoT, automatisation intelligente, surveillance à distance, projets basés sur LinuxMoteurs, servos, robotique, contrôle embarqué, PWM en temps réel
Principal avantageCombine le PWM avec des logiciels avancés et des réseauxFournit un contrôle PWM en temps réel précis et stable

Dépannage du PWM Raspberry Pi

ProblèmeCause possibleCorrection recommandée
Le signal ne fonctionne pasMauvaise numérotation GPIOVérifiez si le code utilise BCM, physique ou un autre système de numérotation.
Le signal ne fonctionne pasMauvais câblageRevérifiez les connexions GPIO, le placement des résistances et la masse partagée.
Le signal ne fonctionne pasBroche non supportéeVérifiez si la broche sélectionnée supporte la PWM matérielle ou logicielle.
Le signal ne fonctionne pasProblème de bibliothèque ou d’autorisationVérifiez l’installation de la bibliothèque GPIO, les permissions et les commandes de configuration.
Nervement servoAlimentation faibleUtilisez une alimentation séparée pour le servo.
Nervement servoTerrain d’entente manquantConnecte la masse du Raspberry Pi à la masse de l’alimentation servo.
Nervement servoInstabilité logicielle PWMUtilisez du matériel PWM ou une bibliothèque plus stable comme pigpio.
Nervement servoBruit électriqueRaccourcir les fils et améliorer le filtrage de puissance ou la disposition du câblage.
Clignotement des LEDFréquence trop basseAugmentez la fréquence PWM jusqu’à ce que le scintillement ne soit plus visible.
Clignotement des LEDMauvais câblageVérifiez les valeurs des résistances, les connexions desserrées et la qualité du câblage.
Bruit moteur ou instabilitéAlimentation faibleUtilisez une alimentation externe pour moteur au lieu d’alimenter le moteur depuis GPIO.
Bruit moteur ou instabilitéComposants de protection manquantsUtilisez un driver moteur approprié et ajoutez des composants de protection comme une diode à recul variable si nécessaire.
Bruit moteur ou instabilitéFréquence incorrecteAjustez la fréquence PWM pour qu’elle corresponde au moteur et au circuit du pilote.
Erreurs de pigpioDémon qui ne fonctionne pasDémarrez ou redémarrez le démon pigpio.
Erreurs de pigpioConflits GPIOVérifiez si un autre programme utilise déjà la même broche GPIO.

Foire aux questions [FAQ]

Pourquoi la PWM est-elle importante sur Raspberry Pi alors que les broches GPIO sont uniquement numériques ?

La PWM permet aux broches GPIO Raspberry Pi de simuler un contrôle analogique en basculant rapidement les signaux entre états HAUT et BAS. Au lieu de modifier directement la tension, la PWM modifie le cycle de travail pour contrôler la livraison moyenne de puissance. Cela permet d’atténuer les LED, d’ajuster la vitesse du moteur, de contrôler la position des servomoteurs et de gérer les ventilateurs à l’aide de broches GPIO numériques standard.

Quand doit-on utiliser la PWM matérielle à la place de la PWM logicielle sur Raspberry Pi ?

La PWM matérielle est meilleure pour les applications nécessitant un timing stable et une génération d’impulsions précise, telles que les servos, les pilotes moteur, la sortie audio et la robotique. Parce que le matériel dédié contrôle le signal, il produit moins de gigue et utilise moins de ressources CPU. La PWM logicielle est généralement suffisante pour des tâches plus simples comme la gradation des LED ou les indicateurs d’état, où de petites erreurs de calage sont moins perceptibles.

Pourquoi une fréquence PWM incorrecte peut-elle causer des problèmes dans les projets Raspberry Pi ?

Différents appareils réagissent le mieux à différentes fréquences PWM. Si la fréquence est trop basse, les LED peuvent clignoter visiblement, les moteurs peuvent produire du bruit ou des mouvements brusques, et les servos peuvent devenir instables. Des fréquences très élevées peuvent également réduire la résolution des PWM ou augmenter les besoins de traitement. Choisir la bonne fréquence améliore les performances, la fluidité et la fiabilité.

Pourquoi les moteurs et servos ne devraient-ils jamais se connecter directement aux broches GPIO du Raspberry Pi ?

Les broches GPIO Raspberry Pi ne supportent que les signaux logiques 3,3V à faible courant et ne peuvent pas alimenter en toute sécurité les moteurs ou les servomoteurs directement. Les dispositifs à fort courant peuvent endommager les broches GPIO, créer des pics de tension ou provoquer un fonctionnement instable. Des pilotes externes, des MOSFET, des circuits H-bridge, des diodes flyback et des alimentations séparées aident à protéger le Raspberry Pi et à améliorer la fiabilité des PWM.

Pourquoi Arduino est-il souvent meilleur pour un contrôle précis de la PWM que Raspberry Pi ?

Les cartes Arduino sont conçues pour un contrôle matériel en temps réel et exécutent un firmware simple sans système d’exploitation multitâche. Cela permet un timing PWM plus prévisible, une latence plus faible et une meilleure stabilité pour les moteurs, servos et boucles de contrôle. Raspberry Pi est plus performant en réseau, applications Linux, systèmes IoT et automatisation intelligente, mais l’activité en arrière-plan Linux peut affecter la précision du timing PWM.