Menu
CoddyTech

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.

challenge icon

Desafío

Fácil

El 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() {
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Pantallas y sensores

Practica por tu cuenta: Playground de Arduino