ETS
Plateforme ETSRessources, chapitres & exercices interactifs
?Se connecter
ARDUINO · workshop-supplementaire

Workshop supplémentaire Arduino

Exercice 1 – Faire clignoter le feu rouge (LED unique)

Consigne

Programme la carte pour que la LED s’allume et s’éteigne alternativement toutes les secondes, en boucle.

Matériel attendu (dans Tinkercad)

  • 1 LED rouge
  • 1 résistance de 220 Ω
  • 1 breadboard
  • Quelques fils de connexion
  • 1 carte Arduino

Connexions dans Tinkercad

  • Place la LED sur la breadboard.
  • Relie la patte longue (anode) à la broche 13 de l’Arduino à l’aide d’un fil.
  • Relie la patte courte (cathode) à une résistance de 220 Ω, puis connecte l’autre extrémité de la résistance à la ligne de masse (GND).
  • Relie enfin la ligne de masse de la breadboard à une broche GND de l’Arduino.

Code corrigé

int ledRouge = 13;

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

void loop() {
  digitalWrite(ledRouge, HIGH);
  delay(1000);
  digitalWrite(ledRouge, LOW);
  delay(1000);
}

Exercice 2 – Construire un vrai feu tricolore

Consigne

Crée un programme qui simule un feu de circulation simple :

  • La LED verte reste allumée pendant 3 secondes.
  • Puis la LED orange s’allume pendant 1 seconde.
  • Enfin, la LED rouge s’allume pendant 3 secondes. La séquence doit se répéter indéfiniment.

Matériel attendu (dans Tinkercad)

  • 1 LED rouge
  • 1 LED orange
  • 1 LED verte
  • 3 résistances de 220 Ω
  • 1 breadboard
  • Quelques fils de connexion
  • 1 carte Arduino

Connexions dans Tinkercad

  • Place les trois LED sur la breadboard.

  • Relie la patte longue de chaque LED à une broche numérique différente de l’Arduino :

    • Rouge → broche 13
    • Orange → broche 12
    • Verte → broche 11
  • Relie la patte courte de chaque LED à une résistance de 220 Ω, puis à la ligne de masse (GND).

  • Relie la ligne de masse de la breadboard à une broche GND de l’Arduino.


Code corrigé

int ledRouge = 13;
int ledOrange = 12;
int ledVerte = 11;

void setup() {
  pinMode(ledRouge, OUTPUT);
  pinMode(ledOrange, OUTPUT);
  pinMode(ledVerte, OUTPUT);
}

void loop() {
  digitalWrite(ledVerte, HIGH);
  delay(3000);
  digitalWrite(ledVerte, LOW);

  digitalWrite(ledOrange, HIGH);
  delay(1000);
  digitalWrite(ledOrange, LOW);

  digitalWrite(ledRouge, HIGH);
  delay(3000);
  digitalWrite(ledRouge, LOW);
}

Exercice 3 – Ajouter un bouton piéton

Consigne

Modifie le programme du feu tricolore pour qu’un appui sur le bouton déclenche immédiatement la séquence normale des feux (vert → orange → rouge), quel que soit le moment. Par défaut, le feu reste au vert tant que le bouton n’est pas pressé.

Matériel attendu (dans Tinkercad)

  • 1 LED rouge
  • 1 LED orange
  • 1 LED verte
  • 3 résistances de 220 Ω
  • 1 bouton poussoir
  • 1 résistance de 10 kΩ (pull-down)
  • 1 breadboard
  • Quelques fils de connexion
  • 1 carte Arduino

Connexions dans Tinkercad

  • Reprends les connexions des trois LED comme dans l’exercice précédent.
  • Place le bouton poussoir sur la breadboard en chevauchant la séparation centrale.
  • Relie une des pattes du bouton à la broche numérique 2 de l’Arduino.
  • Relie cette même patte à la masse (GND) via une résistance de 10 kΩ (pull-down).
  • Relie l’autre patte du bouton au 5 V de l’Arduino.

Ainsi, lorsque le bouton est relâché, la broche lit LOW ; lorsqu’il est appuyé, elle lit HIGH.


Code corrigé

int ledRouge = 13;
int ledOrange = 12;
int ledVerte = 11;
int bouton = 2;

void setup() {
  pinMode(ledRouge, OUTPUT);
  pinMode(ledOrange, OUTPUT);
  pinMode(ledVerte, OUTPUT);
  pinMode(bouton, INPUT);
}

void loop() {
  int etatBouton = digitalRead(bouton);

  // Feu vert
  digitalWrite(ledVerte, HIGH);
  int duree = (etatBouton == HIGH) ? 1000 : 3000;
  delay(duree);
  digitalWrite(ledVerte, LOW);

  // Feu orange
  digitalWrite(ledOrange, HIGH);
  delay(1000);
  digitalWrite(ledOrange, LOW);

  // Feu rouge
  digitalWrite(ledRouge, HIGH);
  delay(3000);
  digitalWrite(ledRouge, LOW);
}

Exercice 4 – Feu piéton + traversée sécurisée

Consigne

Complète le programme pour que :

  • Lorsque le feu voiture est vert ou orange, le feu piéton reste rouge.
  • Lorsque le feu voiture passe au rouge, la LED piéton rouge s’éteint et la LED piéton verte s’allume, permettant la traversée pendant quelques secondes.
  • Le même bouton que dans l’exercice précédent doit déclencher la traversée.

Matériel attendu (dans Tinkercad)

  • 3 LED pour les voitures (rouge, orange, verte)
  • 2 LED pour les piétons (rouge et verte)
  • 5 résistances de 220 Ω
  • 1 bouton poussoir
  • 1 résistance de 10 kΩ (pull-down)
  • 1 breadboard
  • Quelques fils de connexion
  • 1 carte Arduino

Connexions dans Tinkercad

  • Reprends les connexions du feu tricolore et du bouton de l’exercice précédent.

  • Ajoute deux LED supplémentaires pour le feu piéton :

    • LED piéton rouge → broche 10
    • LED piéton verte → broche 9
  • Branche chaque LED avec sa résistance de 220 Ω vers la masse.

  • La logique des connexions reste la même : anode (patte longue) vers la broche Arduino, cathode (patte courte) vers la résistance, puis vers GND.

Code corrigé

int ledRouge = 13;
int ledOrange = 12;
int ledVerte = 11;
int ledPietonRouge = 10;
int ledPietonVerte = 9;
int bouton = 2;

void setup() {
  pinMode(ledRouge, OUTPUT);
  pinMode(ledOrange, OUTPUT);
  pinMode(ledVerte, OUTPUT);
  pinMode(ledPietonRouge, OUTPUT);
  pinMode(ledPietonVerte, OUTPUT);
  pinMode(bouton, INPUT);
}

void loop() {
  int etatBouton = digitalRead(bouton);

  // Feu voiture vert + piéton rouge
  digitalWrite(ledVerte, HIGH);
  digitalWrite(ledPietonRouge, HIGH);
  delay((etatBouton == HIGH) ? 1000 : 3000);
  digitalWrite(ledVerte, LOW);

  // Orange voiture
  digitalWrite(ledOrange, HIGH);
  delay(1000);
  digitalWrite(ledOrange, LOW);

  // Rouge voiture + feu piéton vert
  digitalWrite(ledRouge, HIGH);
  digitalWrite(ledPietonRouge, LOW);
  digitalWrite(ledPietonVerte, HIGH);
  delay(3000);

  // Retour à l'état initial
  digitalWrite(ledPietonVerte, LOW);
  digitalWrite(ledPietonRouge, HIGH);
  digitalWrite(ledRouge, LOW);
}

Exercice 5 – Amélioration avec variateur de luminosité

Consigne

Modifie le programme du feu tricolore pour ajouter une veilleuse qui s’allume progressivement quand le feu passe au rouge, puis s’éteint lorsque la séquence redémarre au vert. L’effet doit être fluide et continu.

Matériel attendu (dans Tinkercad)

  • 3 LED pour les voitures (rouge, orange, verte)
  • 1 LED supplémentaire pour la veilleuse (par exemple blanche ou jaune)
  • 4 résistances de 220 Ω
  • 1 breadboard
  • Quelques fils de connexion
  • 1 carte Arduino

Connexions dans Tinkercad

  • Reprends les connexions du feu tricolore de l’exercice 2.

  • Ajoute une quatrième LED pour la veilleuse :

    • Connecte la patte longue à une broche PWM de l’Arduino (par exemple la broche 6, repérée par le symbole ~).
    • Connecte la patte courte à une résistance de 220 Ω, puis à la masse (GND).
  • La LED veilleuse doit pouvoir varier progressivement en intensité grâce à analogWrite().


Code corrigé

int ledVeilleuse = 6;  // Broche PWM
int ledRouge = 13;
int ledOrange = 12;
int ledVerte = 11;

void setup() {
  pinMode(ledVeilleuse, OUTPUT);
  pinMode(ledRouge, OUTPUT);
  pinMode(ledOrange, OUTPUT);
  pinMode(ledVerte, OUTPUT);
}

void loop() {
  // Feu vert
  digitalWrite(ledVerte, HIGH);
  analogWrite(ledVeilleuse, 0);
  delay(3000);
  digitalWrite(ledVerte, LOW);

  // Feu orange
  digitalWrite(ledOrange, HIGH);
  delay(1000);
  digitalWrite(ledOrange, LOW);

  // Feu rouge + veilleuse progressive
  digitalWrite(ledRouge, HIGH);
  for (int i = 0; i <= 255; i++) {
    analogWrite(ledVeilleuse, i);
    delay(5);
  }
  delay(3000);

  // Retour à l'état initial
  digitalWrite(ledRouge, LOW);
  analogWrite(ledVeilleuse, 0);
}
← Retour au module ARDUINO