Contagem Regressiva até Zero
Parte da seção Displays e sensores do Journey de Arduino da Coddy. Lição 4 de 24.
Assim como na varredura do servo, um laço for pode contar regressivamente: comece com um valor alto, continue enquanto o número for 0 ou maior e subtraia um a cada vez com n--:
for (int n = 5; n >= 0; n--) {
showDigit(n);
delay(1000);
}Isso mostra 5, 4, 3, 2, 1 e 0. Com n > 0, ele pararia em 1 e nunca mostraria 0.
Uma contagem regressiva deve acontecer uma vez, não repetidamente. O código em setup() é executado uma vez, então coloque a contagem regressiva ali e o que deve acontecer em 0 depois dela. loop() pode ficar vazio, e o 0 permanece no visor.
Desafio
FácilO buzzer está no pino 9. Faça uma contagem regressiva para o lançamento:
- em
setup(), faça a contagem regressiva de 5 até 0, um número por segundo - em 0, toque o buzzer com
tone(buzzerPin, 880, 1000) - deixe o 0 no visor
Pressione Executar e depois Verificar.
Experimente você mesmo
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// Um padrão por dígito, lido da direita para a esquerda: o último bit corresponde ao 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); // aceso
} else {
digitalWrite(segmentPins[i], HIGH); // apagado
}
}
}
const int buzzerPin = 9;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// faça a contagem regressiva de 5 até 0 aqui e, em seguida, acione o buzzer
}
void loop() {
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Displays e sensores
1Displays de Sete Segmentos
Display de Sete SegmentosPadrões de Dígitos em BytesContagem no DisplayContagem Regressiva até ZeroSimulador de DadosPratique por conta própria: Playground de Arduino