Menu
CoddyTech

Countdown bis null

Teil des Abschnitts Displays und Sensoren der Arduino-Journey von Coddy. Lektion 4 von 24.

Wie beim Servo-Sweep kann eine for-Schleife herunterzählen: bei einem hohen Wert beginnen, so lange weitermachen, wie die Zahl 0 oder größer ist, und jedes Mal mit n-- eins abziehen:

for (int n = 5; n >= 0; n--) {
  showDigit(n);
  delay(1000);
}

Das zeigt 5, 4, 3, 2, 1 und 0 an. Mit n > 0 würde die Schleife bei 1 stoppen und 0 nie anzeigen.

Ein Countdown sollte einmal stattfinden, nicht immer wieder. Code in setup() wird einmal ausgeführt, also kommt der Countdown dorthin und danach alles, was bei 0 passieren soll. loop() kann leer bleiben, und die 0 bleibt auf der Anzeige stehen.

challenge icon

Aufgabe

Einfach

Der Summer ist an Pin 9 angeschlossen. Erstelle einen Countdown für den Start:

  • zähle in setup() von 5 bis 0 herunter, eine Zahl pro Sekunde
  • bei 0 den Summer mit tone(buzzerPin, 880, 1000) ertönen lassen
  • die 0 auf der Anzeige stehen lassen

Drücke Run und dann Check.

Probier es selbst

const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8};  // a, b, c, d, e, f, g

// Ein Muster pro Ziffer, von rechts gelesen: Das letzte Bit entspricht Segment a.
//                     gfedcba
const byte digits[10] = {
  0b0111111,  // 0
  0b0000110,  // 1
  0b1011011,  // 2
  0b1001111,  // 3
  0b1100110,  // 4
  0b1101101,  // 5
  0b1111101,  // 6
  0b0000111,  // 7
  0b1111111,  // 8
  0b1101111   // 9
};

void showDigit(int n) {
  for (int i = 0; i < 7; i++) {
    if (bitRead(digits[n], i) == 1) {
      digitalWrite(segmentPins[i], LOW);   // leuchtet
    } else {
      digitalWrite(segmentPins[i], HIGH);  // aus
    }
  }
}

const int buzzerPin = 9;

void setup() {
  for (int i = 0; i < 7; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }

  // Hier von 5 bis 0 herunterzählen und dann den Summer ertönen lassen
}

void loop() {
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Displays und Sensoren

Übe selbstständig: Arduino-Playground