Menu
CoddyTech

Choisir avec switch

Fait partie de la section Gestion du temps sans delay du Journey Arduino de Coddy. Leçon 8 sur 18.

Lorsqu’une variable peut avoir plusieurs valeurs et que chaque valeur nécessite son propre code, une chaîne de if et de else if devient longue. switch fait la même chose et se lit comme une liste :

switch (zone) {
  case 0:
    // s’exécute lorsque zone vaut 0
    break;
  case 1:
    // s’exécute lorsque zone vaut 1
    break;
  default:
    // s’exécute lorsqu’aucun case ne correspond (facultatif)
    break;
}

switch passe au case dont le numéro correspond et exécute les lignes qui suivent. break quitte le switch. Si tu oublies un break, la carte continue aussi avec les lignes du cas suivant, ce qu’on appelle une chute en cascade.

Ici, le potentiomètre est divisé en quatre zones. analogRead() renvoie une valeur de 0 à 1023, et la division par 256 donne un nombre entier : 0 pour le quart inférieur, puis 1, 2 et 3 en haut. Chaque zone affiche sa propre couleur sur la LED RGB.

challenge icon

Défi

Facile

Transforme le bouton en sélecteur de couleur avec switch :

  • zone 0 : rouge (déjà écrit)
  • zone 1 : vert
  • zone 2 : bleu
  • zone 3 : blanc (les trois allumés)

Utilise setColor() et termine chaque case par break;. Appuie sur Run, tourne le bouton, puis Check.

Essayez vous-même

const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void setColor(int red, int green, int blue) {
  digitalWrite(redPin, red);
  digitalWrite(greenPin, green);
  digitalWrite(bluePin, blue);
}

void loop() {
  int zone = analogRead(A0) / 256;   // 0, 1, 2 ou 3

  switch (zone) {
    case 0:
      setColor(HIGH, LOW, LOW);   // rouge
      break;
    // ajoutez les zones 1, 2 et 3 ici
  }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Gestion du temps sans delay

Entraînez-vous par vous-même : Playground Arduino