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.
Aufgabe
EinfachDer 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() {
}
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
1Sieben-Segment-Anzeigen
Sieben-Segment-AnzeigeZiffernmuster in BytesZählen auf der AnzeigeCountdown bis nullWürfel-SimulatorÜbe selbstständig: Arduino-Playground