Arduino: Cuenta atrás por pantalla

04 Imprime por pantalla una cuenta atras

El entorno de desarrollo de Arduino nos permite, además programar y grabar nuestro programa, obtener determinada información imprimiendola por pantalla gracias a la conexión serie. Para ello desde el software veremos que el botón mas a la derecha con el nombre de Serial Monitor, al pulsarlo se abrirá una ventana en la que aparecerán los diferentes datos que hayamos querido que se imprimiesen.

En este caso es una simple cuenta atrás que se inicia en el número 3 y termina en el 0 con la palabra «Despegue ! «, al finalizar la secuencia parpadea un led y suena el buzzer.

3 comentarios en “Arduino: Cuenta atrás por pantalla”

  1. Hola buenas.
    Me ha gustado tu trabajo,necesitaba algo así.
    Tengo una duda,¿como hago para parar el bucle despues de despege?
    He puesto un break despues del delay,pero se repite el tres,he probado hacer un while y un do while en diferentes sitios con el break,pero no funciona.

    1. Hola,

      Basta con que añadas un while(true); antes de terminar el void loop:

      void loop()
      {
      //El código que quieras.
      while(true);
      }

      Así el loop sólo se ejecutará una vez.

      Saludos.

  2. Muy buenas,gracias por la respuesta.
    Esta es la mdificacion que he realizado para poder verlo en una LCD.
    Igual el orden no es el correcto pues estoy aprendiendo,pero funciona.

    // Se inicializan las constantes (variables cuyo valor no cambiara durante la ejecución del programa) y se le asignan los números de pin.
    #include
    #include
    LiquidCrystal_I2C lcd(0x3F, 16, 2);
    const int buzzerPin = 9;
    const int ledPin = 13;

    void setup()
    {
    lcd.begin();

    // Turn on the blacklight and print a message.
    lcd.backlight();
    // Se asignan los pines.
    pinMode(ledPin, OUTPUT);
    pinMode(buzzerPin, OUTPUT);

    // Se ajusta la salida de datos del puerto serie a 9600 baudios.
    Serial.begin(9600);
    }

    void loop()
    {
    // Se inicializa un array de tipo char (texto/string) con los valores que se mostraran por el puerto serie.
    // El asterisco aun no tengo claro que función tiene, pero sin él da error la compilación.
    char* cuentaAtras[] = {«Despegue!», «1», «2», «3»};

    // Se inicia un bucle que va marcha atrás de modo que a cada vuelta obtenemos que i vale: 3, 2, 1 y 0.
    for( int i=3; i>=0; i– )
    {
    // Se imprime en pantalla el valor del array que corresponda a la vuelta del for.
    Serial.println(cuentaAtras[i]);
    lcd.print(cuentaAtras[i]);

    // Además, cuando el valor del array contenga la palabra «Despegue!» se encenderá el ledPin y a continuación el buzzerPin con sus tiempos correspondientes.
    if( cuentaAtras[i] == «Despegue!» )
    {
    digitalWrite(ledPin, HIGH);
    delay(800);
    digitalWrite(buzzerPin, HIGH);
    digitalWrite(ledPin, LOW);
    delay(200);
    digitalWrite(buzzerPin, LOW);
    }
    else
    {
    delay(1000);
    lcd.clear();
    }
    }
    if( int i=1){
    while(true);
    }
    }

Escriba aquí su comentario