La LED qui respire
Ta LED ne clignote plus brutalement : elle s'éclaircit et s'assombrit en douceur, comme une respiration. Le secret s'appelle le PWM.
C'est l'effet qu'on voit sur les MacBook en veille, ou sur les enceintes Bluetooth qui s'appairent.
SunuMake Découverte
Tes premiers pas avec Arduino - 8 composants inclus.
Ce qu'il faut sortir du kit
Prépare tout avant de commencer : c'est plus agréable que de fouiller la boîte au milieu du câblage.
- 1Carte Arduino UNO
- 1Plaque d'essai (breadboard)
- 1LED
- 1Résistance 220 Ω
- 2Fils de connexion
Le schéma des branchements
Débranche toujours l'USB avant de modifier un câblage, et vérifie ce tableau ligne par ligne avant de rebrancher.
| On relie | à | en passant par |
|---|---|---|
| LED — patte longue (+) | Broche 9 | Résistance 220 Ω — broche ~ obligatoire |
| LED — patte courte (−) | GND | Rail bleu (−) |
Les étapes
- 1
Matériel
1 LED, 1 résistance 220 Ω, 2 fils. Attention : cette fois la LED doit être sur une broche marquée d'un tilde (~) sur la carte.
- 2
Repère les broches ~
Regarde ta carte Arduino UNO : certaines broches numériques ont un petit **~** devant le numéro (3, 5, 6, 9, 10, 11). Ce sont les seules capables de faire varier l'intensité. On va utiliser la broche 9.
- 3
Câble la LED
Patte longue de la LED → résistance → broche **9**. Patte courte → GND. Le montage est identique au projet n°1, sauf qu'on quitte la broche 13 (qui n'a pas de ~).
- 4
Téléverse et regarde
Copie le code, téléverse. Ta LED monte progressivement en intensité, puis redescend, en boucle. Aucun clignotement brutal : c'est fluide.
- 5
Change le rythme
Modifie le `delay(8)` : mets `2` (respiration rapide, stressée) ou `25` (respiration lente, apaisante). Tu contrôles l'émotion de ton objet avec un seul nombre.
Le programme à téléverser
Copie ce code dans l'IDE Arduino, branche ta carte en USB et clique sur le bouton « Téléverser » (la flèche en haut à gauche).
// La LED qui respire - SunuMake// analogWrite() ne connaît pas seulement 0 et 1 :// il accepte toutes les valeurs de 0 (éteint) à 255 (à fond).const int LED = 9; // une broche avec un ~ (PWM)void setup() { pinMode(LED, OUTPUT);}void loop() { // Montée : de 0 à 255, la LED s'éclaircit. for (int intensite = 0; intensite <= 255; intensite++) { analogWrite(LED, intensite); delay(8); } // Descente : de 255 à 0, la LED s'assombrit. for (int intensite = 255; intensite >= 0; intensite--) { analogWrite(LED, intensite); delay(8); }}Comment ça marche ?
Une broche numérique ne sait faire que deux choses : 0 V ou 5 V. Alors comment obtenir « à moitié allumé » ?
Astuce : on allume et on éteint très vite - des centaines de fois par seconde. Si la LED est allumée 20 % du temps, ton œil ne voit pas le clignotement, il voit une lumière faible. Si elle est allumée 90 % du temps, tu vois une lumière forte. Ce pourcentage de temps allumé s'appelle le rapport cyclique, et la technique s'appelle le PWM (modulation de largeur d'impulsion).
analogWrite(LED, 128) veut dire « allume la LED environ la moitié du temps ». L'échelle va de 0 à 255 parce que la valeur tient sur 8 bits (2⁸ = 256 valeurs possibles).
Seules les broches marquées ~ savent faire ça, parce qu'elles sont reliées à un circuit matériel dédié dans le microcontrôleur. C'est aussi ce circuit qui permettra plus tard de régler la vitesse d'un moteur ou l'angle d'un servomoteur.