Conto alla rovescia fino a zero
Fa parte della sezione Display e sensori del percorso Arduino di Coddy. Lezione 4 di 24.
Come nella rotazione del servo, un ciclo for può contare alla rovescia: inizia da un valore alto, continua finché il numero è 0 o maggiore e sottrai uno ogni volta con n--:
for (int n = 5; n >= 0; n--) {
showDigit(n);
delay(1000);
}Questo mostra 5, 4, 3, 2, 1 e 0. Con n > 0 si fermerebbe a 1 e non mostrerebbe mai 0.
Un conto alla rovescia dovrebbe avvenire una sola volta, non ripetersi continuamente. Il codice in setup() viene eseguito una volta, quindi inserisci lì il conto alla rovescia e ciò che deve accadere a 0 al termine. loop() può rimanere vuoto e 0 resta sul display.
Sfida
FacileIl buzzer è collegato al pin 9. Crea un conto alla rovescia per il lancio:
- in
setup(), fai il conto alla rovescia da 5 a 0, un numero al secondo - allo 0, fai suonare il buzzer con
tone(buzzerPin, 880, 1000) - lascia lo 0 sul display
Premi Run, poi Check.
Provalo tu
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// Un pattern per cifra, letto da destra: l'ultimo bit corrisponde al segmento 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); // acceso
} else {
digitalWrite(segmentPins[i], HIGH); // spento
}
}
}
const int buzzerPin = 9;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// conta alla rovescia da 5 a 0 qui, poi fai suonare il buzzer
}
void loop() {
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Display e sensori
1Display a sette segmenti
Display a sette segmentiSchemi delle cifre nei byteConta sul displayConto alla rovescia fino a zeroLancio dei dadiEsercitati da solo: Playground Arduino