Faire varier l’intensité lumineuse d’une LED avec un Arduino repose sur une idée simple : exploiter le signal PWM pour simuler un véritable variateur électronique. Cette méthode ouvre la voie à des éclairages d’ambiance, des effets réalistes pour le modélisme, ou encore des tests de drivers LED de puissance.
Derrière ce principe se cachent pourtant des notions très concrètes : fréquence, rapport cyclique, limites de courant, choix des broches, drivers externes, alimentation. En maîtrisant ces points, un simple Arduino Uno devient le cœur d’un système d’éclairage piloté avec une grande finesse.
| Élément clé | Synthèse |
| Objectif 🎯 | Modifier l’intensité lumineuse d’une LED grâce au signal PWM d’un Arduino. |
| Principe PWM | La LED varie de luminosité selon la durée pendant laquelle la sortie reste à l’état HIGH dans chaque cycle. |
| Matériel | Arduino + LED + résistance + câblage simple. |
| Utilisation | Régler la valeur PWM (0 à 255) pour obtenir une luminosité réglable. |
Arduino PWM LED : principe, fréquence et rapport cyclique expliqués
La modulation de largeur d’impulsion, ou PWM (Pulse Width Modulation), permet à un Arduino de contrôler l’intensité lumineuse d’une LED en faisant varier le rapport cyclique d’un signal carré. La broche passe très vite de 0 V à 5 V, mais la LED, elle, « voit » une moyenne de lumière dépendant du temps passé à l’état haut.
Sur Arduino Uno ou Nano, la PWM repose sur une horloge de 16 MHz et sur plusieurs minuteries (timers). Ces timers génèrent un signal périodique dont la fréquence et la résolution déterminent la finesse de variation et le confort visuel.

Fréquence PWM Arduino : que regardent vraiment vos LED ?
Sur un Arduino Uno / Nano, la fréquence PWM par défaut se situe autour de 488 Hz à 490 Hz pour la plupart des broches. Cette fréquence suffit pour une variation d’intensité LED sans scintillement visible dans la majorité des usages domestiques ou en modélisme.
ArduinoArduino et domotique : automatiser sa maison pour pas cherLes valeurs typiques sont les suivantes :
- Broches PWM disponibles : 3, 5, 6, 9, 10, 11.
- Fréquence par défaut broches 3, 5, 6, 9, 10, 11 : ~488–490 Hz.
- Horloge : 16 MHz, prédiviseur 64, résolution 8 bits.
La fréquence se calcule selon la formule :
Fréquence PWM = Horloge / Prédiviseur / Pas
Exemple : 16 000 000 Hz / 64 / 510 ≈ 490,196 Hz
Une LED réagit très vite et perçoit chaque impulsion. L’œil humain, en revanche, fusionne les impulsions au-delà d’environ 100 Hz. Un signal aux alentours de 500 à 1000 Hz convient déjà pour un éclairage à variation fluide.
Résolution PWM : 8 bits sur Arduino, pourquoi 0–255 ?
Sur Uno et Nano, la PWM s’appuie sur des timers en 8 bits. Le rapport cyclique varie donc de 0 à 255, soit 256 niveaux possibles d’intensité lumineuse. Le code utilise la fonction analogWrite(pin, valeur), où valeur désigne le niveau :
0: LED totalement éteinte.255: LED à pleine puissance (dans la limite du courant autorisé).- Valeur intermédiaire (ex : 128) : environ 50 % du rapport cyclique.
Certaines applications exigent une granularité plus fine, par exemple pour des effets de fondu très progressifs ou des éclairages professionnels. Dans ce cas, des drivers externes 12 bits comme le TLC5947 offrent 4096 niveaux (0–4095) et améliorent considérablement la précision perçue, surtout aux faibles intensités.
Broches PWM Arduino Uno, Nano, Leonardo, Micro et Mega : que choisir pour vos LED ?
Chaque carte Arduino dispose d’un ensemble de broches PWM reliées à des timers spécifiques. Bien choisir les broches évite des conflits avec d’autres fonctions (Servo, bibliothèques, communication) et permet d’optimiser les performances de votre variateur de LED.

Vue d’ensemble des fréquences PWM par carte
| Carte Arduino | Broches PWM | Fréquence par défaut | Remarques |
|---|---|---|---|
| Uno / Nano | 3, 5, 6, 9, 10, 11 | ≈ 488–490 Hz | Horloge 16 MHz, PWM 8 bits |
| Leonardo / Micro | D3, D5, D6, D9, D10, D11, D13 | D3/D11 ~ 976 Hz, autres ~ 490 Hz | D13 PWM utile pour LED embarquée |
| Mega 2560 | Nombreuses, dont 44, 45, 46 | D44/D45/D46 ~ 490 Hz | Parfait pour projets multi-canaux |
Sur Uno / Nano, la fréquence de base des timers est :
- Broches 3, 9, 10, 11 : base 31 250 Hz.
- Broches 5 et 6 : base 62 500 Hz.
Les prédiviseurs disponibles sur les timers (1, 8, 64, 256, 1024) permettent de décliner plusieurs fréquences utiles. Sur certaines broches, les fréquences modifiables sont par exemple :
- Broches 5/6 : 62 500 Hz, 7 812,5 Hz, 976,56 Hz, etc.
- Broches 9/10 : 31 372,55 Hz, 3 921,16 Hz, 490,20 Hz.
- Broches 3/11 : 31 372,55 Hz, 3 921,16 Hz, 980,39 Hz, 490,20 Hz, 245,10 Hz, 122,55 Hz, 30,64 Hz.
Quand ajuster la fréquence PWM pour vos LED ?
La fréquence par défaut d’environ 490 Hz convient déjà pour la plupart des LED de signalisation ou d’éclairage d’ambiance. Un changement de fréquence apporte un avantage dans quelques cas ciblés :
- Projet vidéo / photo : une fréquence trop basse entraîne un effet de bandes ou de scintillement sur l’image. Une fréquence plus élevée (4 kHz, 31 kHz) réduit ce problème.
- Audio, moteurs, ventilateurs : certaines fréquences générent un sifflement audible. Modifier la fréquence permet parfois de sortir de la zone audible.
- LED de puissance avec drivers spécifiques : certains drivers affichent une plage de fréquence PWM recommandée.
Un réglage autour de 500–1000 Hz reste souvent suffisant pour varier l’intensité des LED sans scintillement visuel dans un environnement standard.

Limiter le courant : protéger Arduino et LED pendant la variation PWM
Une LED se comporte comme une diode. Au-delà d’une certaine tension, le courant augmente très vite. Sans résistance de limitation ou driver de courant, la LED grille ou provoque un courant excessif sur la broche Arduino.
Les broches d’un Arduino ne délivrent qu’un courant limité à quelques milliampères (en pratique, on reste souvent entre 10 et 20 mA par broche, avec une petite marge de sécurité). Les LED de puissance exigent bien davantage, parfois plusieurs centaines de milliampères.
Schéma minimal : Arduino + LED + résistance
Pour une simple LED d’indication, un schéma très courant repose sur :
- Une broche PWM de l’Arduino (ex : D9).
- Une résistance série adaptée (220 Ω, 330 Ω, 1 kΩ selon la LED et la luminosité souhaitée).
- Une LED standard (rouge, verte, blanche, etc.).
- Le retour vers le GND de l’Arduino.
La tension de sortie d’une broche Arduino est de 5 V en niveau haut. La chute de tension typique d’une LED varie selon la couleur :
- LED rouge / jaune : ~2,0 V.
- LED blanche / bleue : ~3,0–3,4 V ou plus.
La résistance se calcule en fonction du courant visé :
R = (Valim – VLED) / ILED
Un réglage trop agressif épuise la broche Arduino. Une résistance légèrement plus élevée diminue la luminosité mais offre une marge confortable.
LED de puissance : pourquoi utiliser un MOSFET ou un driver dédié ?
Pour des LED de forte puissance (spots, modules 1 W, 3 W, rubans 12 V, etc.), un Arduino ne fournit pas suffisamment de courant. On ajoute alors un étage de puissance :
- Module MOSFET (jusqu’à plusieurs ampères, typiquement 5 A par canal pour certains modules 8 canaux).
- Driver de courant LED avec entrée PWM (par exemple AL8805, TLC5947, drivers commerciaux prêt à l’emploi).
- Convertisseur de tension si la LED est alimentée en 12 V, 24 V, ou plus (coût approximatif autour de 5 € pour un module simple).
Le schéma type devient alors :
Arduino (signal PWM) → Driver / MOSFET → LED de puissance → Alimentation adaptée
L’Arduino pilote seulement le signal de commande. Le courant principal circule dans le circuit de puissance, dimensionné pour les LED utilisées.
Drivers PWM pour LED : choisir le bon composant pour votre projet
Plus un projet d’éclairage se complexifie, plus le choix d’un driver PWM ou d’un module dédié devient stratégique. Plusieurs références couvrent des besoins différents : courant maximal, nombre de canaux, résolution, tension d’alimentation.
Modules MOSFET, AL8805, TLC5947, PCA9685 : qui fait quoi ?
| Composant | Type | Caractéristiques clés | Usage typique |
|---|---|---|---|
| Module MOSFET (8 canaux, 5 A) | Transistor de puissance | Pilotage jusqu’à plusieurs ampères, commande par signal 5 V | Rubans LED 12/24 V, LED de puissance multi-canaux |
| AL8805 | Driver de courant LED | Courant jusqu’à ~350–700 mA, entrée PWM 0–2,5 V, alim 6–36 V | LED de puissance individuelle ou en série |
| TLC5947 | Driver 24 canaux, 12 bits | 4096 niveaux, commande série, courant par canal constant | Projets d’éclairage multi-LED, éclairage décoratif avancé |
| PCA9685 | Contrôleur 16 canaux PWM | Alim jusqu’à 6 V, fréquence PWM réglable | Servomoteurs, LED basse tension, éclairage décoratif simple |
Le choix se fait selon trois axes :
- Courant par canal : LED standard ou LED de puissance.
- Nombre de canaux : simple variateur ou installation multi-zones.
- Résolution : 8 bits suffisent pour des effets simples ; 12 bits offrent des transitions plus délicates, surtout à faible luminosité.
LED RVB et modélisme : variations de couleurs et d’ambiance
Les LED RVB (rouge, verte, bleue) reposent sur trois LED regroupées dans un même boîtier. En pilotant séparément chaque couleur par PWM, on obtient un mélange de teintes très large. Plusieurs formats sont courants, notamment :
- LED RVB 5 mm à quatre broches (anode ou cathode commune).
- LED RVB 5050 pour rubans et modules.
Chaque couleur nécessite sa propre résistance série ou son propre canal de driver, car la tension de seuil et le courant recommandé varient d’une couleur à l’autre.
Gestion de la couleur par PWM
Une LED RVB connectée à trois broches PWM reçoit trois rapports cycliques indépendants. Par exemple :
- Rouge :
analogWrite(R, 200) - Vert :
analogWrite(V, 50) - Bleu :
analogWrite(B, 0)
Ce réglage produit une teinte tirant vers l’orange. En jouant sur les trois canaux, on compose tout un nuancier de couleurs adapté à un décor, à une maquette ou à une animation lumineuse.
« Avec quelques broches PWM seulement, une maquette HO prend vie : lever de soleil progressif, éclairage de quais, phares de locomotives. Le réalisme vient souvent de transitions lentes plutôt que d’effets spectaculaires. »
Pour le modélisme, des LED très petites, souvent autour de 3 V, se prêtent bien à des lumières de bâtiments ou d’enseignes miniatures. Un contrôle par PWM permet d’ajuster la luminosité pièce par pièce, d’ajouter un clignotement ou un effet de scintillement réaliste.
Alimentation, convertisseurs de tension et protection des LED
Un Arduino s’alimente généralement en 5 V (ou via Vin/USB), tandis que les LED de puissance et rubans LED utilisent fréquemment du 6 V, 12 V, 24 V et au-delà. Un convertisseur de tension devient souvent nécessaire pour adapter l’alimentation globale du système.
Le coût d’un convertisseur DC-DC basique se situe autour de 5 €, pour des puissances raisonnables. Un tel module accepte une tension d’entrée plus élevée (par exemple 24 V) et la convertit en une tension adaptée à vos LED ou à l’Arduino.
Architecture typique d’une installation d’éclairage pilotée par Arduino
Une architecture cohérente s’articule généralement autour de :
- Une alimentation principale (ex : 12 V ou 24 V).
- Un convertisseur DC-DC pour fournir un 5 V stable à l’Arduino.
- Des drivers ou MOSFET pour alimenter les LED depuis la tension principale.
- Des câbles et connecteurs dimensionnés pour le courant maximal.
La structure globale peut se comparer à un tableau de répartition en électricité domestique. De la même manière qu’un tableau électrique pour la maison distribue la puissance vers différents circuits, un montage à base d’Arduino distribue la puissance lumineuse vers divers canaux LED via des drivers et des MOSFET.
Protection des LED : courant, polarité, surtension
Une LED supporte mal :
- Un courant excessif.
- Une inversion de polarité prolongée.
- Des sursauts de tension lors de commutations.
Les contre-mesures les plus courantes comprennent :
- Une limitation de courant : résistance ou driver de courant.
- Un dispositif d’antipolarité : diode en série, protection par MOSFET, connecteurs codés.
- Un filtrage de l’alimentation : condensateurs, respect des longueurs de câbles, masse commune soignée.
Le schéma général « PWM → driver → MOSFET → LED » assure une bonne séparation entre la partie logique (Arduino) et la partie puissance. Chaque étage dispose de composants adaptés à son rôle.
Finesse de variation : 0–100 % vers 0–255 ou 0–4095
Dans de nombreux projets, l’utilisateur manipule une intensité de 0 à 100 % dans l’interface (boutons, potentiomètres, application). L’Arduino doit alors convertir ce pourcentage en valeur PWM adaptée :
- Pour la PWM interne 8 bits : 0–255.
- Pour un driver 12 bits : 0–4095.
La conversion s’exprime aisément par un calcul proportionnel :
valeurPWM = pourcentage × valeurmax / 100
Exemples :
50 % → 127 (sur 8 bits), 2047 (sur 12 bits)
25 % → 64 (sur 8 bits), 1023 (sur 12 bits)
La sensation de luminosité suit une courbe plutôt logarithmique que linéaire. Un pas constant en PWM ne produit pas un pas constant en intensité perçue. Pour des transitions particulièrement suaves, on applique parfois une courbe de correction (gamma) sur la valeur PWM pour compenser la perception humaine.
Penser votre installation comme un tableau électrique pour LED
Un projet PWM LED un peu avancé comporte souvent plusieurs canaux, chacun avec ses LED, ses drivers, son câblage et parfois des protections dédiées. La structure s’apparente à un tableau de distribution miniature.
Certaines solutions du commerce proposent des modules pré-équipés pour faciliter cette organisation, à la manière d’un tableau électrique pré-équipé. De la même façon, des cartes intégrant MOSFET, borniers à vis et connecteurs simplifient l’assemblage et la maintenance d’un réseau de LED géré par Arduino.
ArduinoPiloter un relais 230 V avec Arduino en sécurité : 5 erreurs à éviterLe parallèle se retrouve également dans l’idée de modularité. Un module driver LED évoque un disjoncteur ou un contacteur spécialisé dans un tableau électrique Schneider : chaque bloc remplit une fonction bien définie et l’ensemble forme un système cohérent.
En traitant votre projet d’éclairage comme une petite installation électrique organisée, avec des canaux clairement identifiés, des alimentations séparées et des protections adaptées, vous exploitez tout le potentiel du PWM Arduino pour piloter vos LED avec précision et fiabilité.





