← Retour au chapitre

Étape 3 / 3

Exo 2-3 : LED externe & SOS Morse

Câbler une LED sur breadboard, puis encoder SOS en morse.

Chapitres précédents non terminés
Pour un apprentissage optimal, termine d'abord : Breadboard et schémas

La LED intégrée c'est pratique, mais elle est fixée sur la carte. Pour un vrai projet, tu veux pouvoir placer tes LEDs où tu veux — sur une breadboard, dans un boîtier, sur un robot.

Règle d'or : une LED externe a TOUJOURS besoin d'une résistance en série pour limiter le courant. Sans elle, la LED grille en quelques secondes.

Matériel nécessaire

Schéma du circuit

Arduino pin 8 → LED (anode → cathode) → résistance 220Ω → GND

Pin 8 → LED → R 220Ω → GND

Pin 8220Ω

Montage pas à pas

Arduino UNO + breadboard + LED rouge + résistance 220Ω + 2 câbles.

++151015202530abcdeabcdefghijfghij151015202530++
100%

Code : LED externe sur pin 8

C'est quasi le même code que Blink, mais on utilise la pin 8 au lieu de 13.

int ledPin = 8;

void setup() {
pinMode(ledPin, OUTPUT);
}

void loop() {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}

Bonne pratique : utilise une variable (ledPin) pour le numéro de pin. Si tu changes de pin, tu modifies une seule ligne au lieu de chercher partout dans le code.

Projet : SOS en Morse

Le code Morse transforme les lettres en signaux courts (points) et longs (traits). On va l'utiliser pour faire "parler" notre LED.

S · · ·    O — — —    S · · ·
SOS
int led = 8;
int dot = 200;     // Durée d'un point
int dash = 600;    // Durée d'un trait (3x le point)
int gap = 200;     // Pause entre signaux
int letterGap = 400; // Pause entre lettres

void setup() {
pinMode(led, OUTPUT);
}

void loop() {
// S : · · ·
blink(dot); blink(dot); blink(dot);
delay(letterGap);

// O : — — —
blink(dash); blink(dash); blink(dash);
delay(letterGap);

// S : · · ·
blink(dot); blink(dot); blink(dot);
delay(2000);
}

void blink(int duration) {
digitalWrite(led, HIGH);
delay(duration);
digitalWrite(led, LOW);
delay(gap);
}

Concept clé : on a créé une fonction blink(duration) pour éviter de copier-coller le même bloc de code. C'est la factorisation — un principe fondamental en programmation.

À toi : complète les durées du morse

Indique les bonnes valeurs en millisecondes pour respecter les proportions du code Morse.

Durée d'un point (court)

En millisecondes — court signal

Durée d'un trait (long)

En millisecondes — 3x le point

Pause entre les lettres

En millisecondes — 2x le point

Défis bonus

Défi 1 : Encode ton prénom en Morse

Utilise le tableau Morse ci-dessus et crée une séquence de blink() pour chaque lettre.

Défi 2 : 2 LEDs en alternance

Ajoute une 2e LED sur la pin 9 et fais-les clignoter en alternance (quand l'une s'allume, l'autre s'éteint).

À retenir

  • LED externe = toujours une résistance en série (220Ω pour 5V).
  • Utilise des variables pour les numéros de pin — un seul endroit à modifier.
  • Crée des fonctions pour éviter la répétition de code.
  • Le Morse illustre la notion de séquence d'instructions — chaque action s'exécute dans l'ordre.

🧠 Récapitulatif du chapitre 5

  • L'Arduino UNO a 14 pins digitales, 6 pins analogiques, et des pins d'alimentation.
  • setup() s'exécute 1 fois, loop() tourne en boucle infinie.
  • pinMode, digitalWrite et delay sont les 3 fonctions de base.
  • LED externe = toujours une résistance en série pour protéger la LED.
  • Créer des fonctions et des variables rend le code plus propre et maintenable.

Au prochain chapitre, tu découvriras les boucles et les tableaux pour automatiser des séquences complexes.

Valide cette étape quand tu as terminé la lecture et la manipulation.

← Exo 1 : Blink — LED intégrée Aller au quiz du chapitre →

Electro-Lab - support pédagogique Arduino (MVP).

IFOSUP Wavre - Cours Drones et Robotique.