Cuenta regresiva hasta cero
Parte de la sección Pantallas y sensores del Journey de Arduino de Coddy. Lección 4 de 24.
Al igual que en el barrido del servomotor, un bucle for puede contar hacia atrás: empezar por un número alto, seguir mientras el número sea 0 o más y restar uno cada vez con n--:
for (int n = 5; n >= 0; n--) {
showDigit(n);
delay(1000);
}Esto muestra 5, 4, 3, 2, 1 y 0. Con n > 0, se detendría en 1 y nunca mostraría 0.
Una cuenta regresiva debe ocurrir una sola vez, no una y otra vez. El código en setup() se ejecuta una vez, así que pon allí la cuenta regresiva y lo que deba ocurrir al llegar a 0. loop() puede quedarse vacío, y el 0 permanece en la pantalla.
Desafío
FácilEl zumbador está conectado al pin 9. Haz una cuenta regresiva para el lanzamiento:
- en
setup(), cuenta hacia atrás de 5 a 0, un número por segundo - al llegar a 0, haz sonar el zumbador con
tone(buzzerPin, 880, 1000) - deja el 0 en la pantalla
Pulsa Run y después Check.
Pruébalo tú mismo
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// Un patrón por dígito, leído desde la derecha: el último bit corresponde 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); // encendido
} else {
digitalWrite(segmentPins[i], HIGH); // apagado
}
}
}
const int buzzerPin = 9;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// haz una cuenta regresiva de 5 a 0 aquí y luego haz sonar el zumbador
}
void loop() {
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Pantallas y sensores
1Displays de siete segmentos
Display de siete segmentosPatrones de dígitos en bytesCuenta en el displayCuenta regresiva hasta ceroLanzador de dadosPractica por tu cuenta: Playground de Arduino