Menu
CoddyTech

Mémoriser le mode

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

Un appui sur un bouton ne dure qu’une fraction de seconde, mais ce qu’il déclenche peut durer beaucoup plus longtemps. Pour continuer après avoir relâché le bouton, le sketch doit se souvenir de ce qu’il est en train de faire. Une variable qui sert à cela s’appelle un état ou un mode :

int mode = 0;   // 0 = éteint, 1 = clignotant

Divisez loop() en deux. D’abord, les entrées ne font que changer le mode. Ensuite, le reste de la boucle fait ce que le mode indique :

// 1. les entrées changent le mode
if (digitalRead(blinkButton) == LOW) {
  mode = 1;
}

// 2. le mode détermine ce qui se passe
if (mode == 1) {
  // faire clignoter avec millis()
} else {
  digitalWrite(ledPin, LOW);
}

Chaque nombre correspond à une chose que le sketch peut faire. Indiquez dans un commentaire ce que signifie chaque nombre. Un sketch peut avoir autant de modes que nécessaire : 0, 1, 2, 3 et plus encore.

challenge icon

Défi

Facile

Le bouton vert est sur la broche 2 et le bouton rouge sur la broche 3.

  • le bouton vert définit mode sur 1, le bouton rouge le définit sur 0
  • lorsque mode vaut 1, la LED sur la broche 13 clignote avec millis(), allumée pendant 500 ms et éteinte pendant 500 ms
  • lorsque mode vaut 0, la LED est éteinte

Appuie sur Run, appuie sur le bouton vert, relâche-le, puis appuie sur le bouton rouge. Ensuite, appuie sur Check.

Essayez vous-même

const int ledPin = 13;
const int blinkButton = 2;   // vert
const int offButton = 3;     // rouge

int mode = 0;   // 0 = éteint, 1 = clignotant

unsigned long previousMillis = 0;
int ledState = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(blinkButton, INPUT_PULLUP);
  pinMode(offButton, INPUT_PULLUP);
}

void loop() {
  // 1. les boutons ne font que changer le mode

  // 2. ensuite, faire ce qu’indique le mode
}
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