Introduction
Bienvenue dans votre premier projet PWM (Modulation de Largeur d’Impulsion) ! Dans ce tutoriel, nous allons construire un circuit simple qui fait varier l’intensité d’une LED de manière progressive, de l’extinction à la pleine luminosité et inversement. C’est un projet classique pour débutants avec Arduino qui vous apprend à utiliser analogWrite() pour contrôler la luminosité, la vitesse d’un moteur, ou tout dispositif réagissant à une tension moyenne variable.
Nous utiliserons Velxio, un simulateur de circuits en ligne avec un support analogique précis (SPICE). Aucun matériel nécessaire — juste votre navigateur ! Vous pouvez suivre, modifier le code et voir les résultats instantanément.

Présentation du circuit
Examinons les composants et le câblage de ce projet.
Composants
| Composant | Quantité | Remarques |
|---|---|---|
| Arduino Uno | 1 | Le cerveau de l’opération |
| LED (n’importe quelle couleur) | 1 | Nous utiliserons une LED bleue |
| Résistance (220 Ω) | 1 | Résistance de limitation de courant (non représentée sur le schéma mais recommandée) |
| Fils de connexion | 2 | Pour les branchements |
Câblage
- Anode de la LED (patte longue) → Connecter à la broche 9 de l’Arduino (une broche compatible PWM).
- Cathode de la LED (patte courte) → Connecter à GND sur l’Arduino.
Important : Utilisez toujours une résistance de limitation de courant (généralement 220 Ω à 1 kΩ) en série avec la LED pour éviter de la griller. Dans le simulateur Velxio, le modèle de LED inclut une résistance interne, mais dans la réalité, vous devez en ajouter une.
Voici le câblage en détail :
- Fil 1 (bleu) : De la broche 9 de l’Arduino à l’anode (A) de la LED.
- Fil 2 (noir) : De la cathode (C) de la LED à GND de l’Arduino.
C’est tout ! Seulement deux connexions. La broche 9 de l’Arduino peut produire un signal PWM, que nous utiliserons pour faire varier la luminosité de la LED.

Explication du code
Ouvrez l’éditeur de code dans Velxio. Vous verrez le sketch Arduino suivant :
// Fade LED with PWM
// Smoothly fade LED brightness
const int LED_PIN = 9; // PWM pin
int brightness = 0;
int fadeAmount = 5;
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
analogWrite(LED_PIN, brightness);
brightness += fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(30);
}
Comment ça fonctionne
LED_PIN = 9: Nous utilisons la broche 9 car elle supporte le PWM (marquée d’un~sur l’Arduino Uno).brightness: Cette variable contient la valeur PWM actuelle (0 à 255). 0 = éteint, 255 = pleine luminosité.fadeAmount: De combien la luminosité change à chaque boucle. Positif = devient plus lumineux, négatif = devient plus sombre.setup(): Configure la broche de la LED en sortie.loop():analogWrite(LED_PIN, brightness)produit le signal PWM.brightness += fadeAmountaugmente ou diminue la luminosité.- La condition
ifvérifie si la luminosité a atteint 0 ou 255. Si c’est le cas, elle inverse la direction en rendantfadeAmountnégatif. delay(30)ralentit la variation pour que vous puissiez la voir.
Concepts clés
- PWM (Modulation de Largeur d’Impulsion) : Une technique où la broche numérique s’allume et s’éteint rapidement. La tension moyenne (et donc la luminosité de la LED) dépend du rapport cyclique (temps allumé vs temps éteint).
analogWrite()définit le rapport cyclique. analogWrite(): Accepte des valeurs de 0 (toujours éteint) à 255 (toujours allumé).pinMode(): Configure la broche en sortie (ou entrée).delay(): Met le programme en pause pendant des millisecondes. Sans cela, la variation serait trop rapide pour être vue.
Problèmes courants et conseils de débogage
-
La LED ne s’allume pas ?
- Vérifiez que la LED est correctement connectée (anode sur la broche 9, cathode sur GND).
- Assurez-vous que le code est téléversé (cliquez sur le bouton Run dans la barre d’outils).
- Vérifiez que
LED_PINcorrespond à la broche réellement utilisée.
-
La LED reste à pleine luminosité ?
- Assurez-vous d’utiliser une broche compatible PWM (3, 5, 6, 9, 10, 11 sur Uno). La broche 13 n’est pas PWM.
- Vérifiez que
analogWrite()est appelée, et nondigitalWrite().
-
La variation est trop rapide ou trop lente ?
- Ajustez la valeur de
delay(30). Plus grande = variation plus lente. - Modifiez
fadeAmountpour contrôler la taille du pas (par exemple, 1 pour très lisse, 10 pour plus rapide).
- Ajustez la valeur de
-
Le simulateur ne répond pas ?
- Utilisez le bouton Reset dans la barre d’outils du canevas.
- Rafraîchissez la page si nécessaire.

Extensions suggérées
Une fois que vous maîtrisez la variation de base, essayez ces défis :
- LEDs multiples : Ajoutez deux LEDs supplémentaires sur les broches 10 et 11. Faites-les varier en séquence ou à des vitesses différentes.
- Contrôle par bouton : Ajoutez un bouton poussoir pour démarrer/arrêter la variation.
- Contrôle de vitesse par potentiomètre : Utilisez un potentiomètre pour ajuster la vitesse de variation (remplacez
delay(30)par une variable lue depuis une entrée analogique). - LED RGB : Utilisez une LED RGB et faites varier différentes couleurs en contrôlant trois broches PWM.
- Moniteur série : Affichez la valeur de luminosité sur le moniteur série pour le débogage.
Essayez par vous-même !
Prêt à voir le résultat en action ? Ouvrez l’exemple en direct dans Velxio :
👉 Lancer l’exemple de variation d’intensité LED
Vous pouvez modifier le code, changer la vitesse de variation, ou même ajouter de nouveaux composants. Le simulateur fonctionne entièrement dans votre navigateur — aucun téléchargement, aucune installation.
Bonne variation !