En este post aprenderás a usar las estructuras de control en Arduino if, for, while, do while, switch.

If else

Instrucción if es una estructura de control en la que se entra a ejecutar una porción de código, si se da una condición determinada, para ello se comprueba la condición que va entre paréntesis, si la condición no se cumple salta la porción de código que afecta el if y sigue con el resto del programa.

*si usamos un igual en la condición hay que recordar que debemos usar el doble igual ==.

else esta instrucción se puede poner a continuación de un if y significa “si no”, si no se da la condición del if entonces ejecuta la porción de código del else. Aquí te dejo el vídeo donde te explico las instrucciones if, else, for, while switch.

Programa ejemplo:

if (condition1) {

// ejecutar esta porción de código

}

else {

  // ejecutar esta porción de código

}

Pongamos un ejemplo para que lo veas más claro:

if (luminosidad <= 220) { // comprobamos condición y //abrimos llave del if

digitalWrite (bombilla, HIGH); // activamos la salida //bombilla

} // cerramos la llave del if

else { // si no es cierta la condición del if ejecutamos la //porción del código  else

digitalWrite (bombilla, LOW); // apagamos la salida bombilla

       } // cerramos la llave de else

for

Este bucle se usa para ejecutar una porción de código, un número determinado de veces, para ello en la cabecera se deben definir tres campos

for (declaración de variable local; condición; incremento variable)

Declaración de variable local: definimos una variable local (tipo, nombre y valor inicial, es decir solo existirá en este bucle que nos servirá para controlar el número de veces que se repite el bucle.

Condición: definimos que condición será necesaria para que se ejecute el bucle comprobando el valor de la variable local.

Incremento de variable: cada vez que se cumple la condición y se entra al bucle se incrementa esta variable.

Veamos un ejemplo para que lo entiendas mejor:

Vamos a hacer que en un determinado momento del programa un led colocado en el pin 5 parpadee (500ms ON, 500ms OFF) 10 veces.


Programa ejemplo:

for (int x=0; x<10; x++) { //cabecera del bucle for

digitalWrite(5,HIGH);//ponemos la salida 5 donde está //conectado el led a 5voltios

delay(500);// esperar medio segundo con el led encendido

digitalWrite(5,LOW);//poner la salida 5 donde esta conectado //el led a 0 voltios

delay(500);// esperar medio segundo con el led apagado

}

Curso Arduino

Si quieres convertirte en un experto en Arduino pincha el siguiente botón

While

Este tipo de bucle nos permite ejecutar la porción de código encerrada en el interior de sus llaves  mientras la condición descrita en su cabecera sea cierta.

while (condición){

Código a ejecutar

}


Programa ejemplo:

En el siguiente ejemplo puedes observar como el led conectado al pin 2 se mantiene encendido mientras el pulsador conectado al pin 3 esta activo a nivel alto (HIGH), previamente hemos definido una variable llamada estadoPulsador que guarda su estado.

while (estadoPulsador==TRUE){ //cabecera del bucle while

digitalWrite(2,HIGH);//encendemos el led

estadoPulsador=digitalRead(3);//leemos si esta pulsado

}

do while

Este bucle es muy parecido al anterior salvo que la condición necesaria para su ejecución se comprueba al final, por lo que siempre se ejecutara al menos una vez.

En el siguiente ejemplo puedes ver como el led conectado al pin 2 se enciende medio segundo, después de apaga medio segundo y asi sucesivamente hasta que se pulse el pulsador conectado al pin 3 , en el que es comprobado su valor en la parte del while, en ese momento sale del bucle y continua ejecutando el resto del programa.


Programa ejemplo:

do {// cabecera del bucle do

digitalWrite(2,HIGH);// encendemos el led

delay(500);//esperamos medio segundo

digitalWrite(2,LOW);//apagamos el led

delay(500);//esperamos medio segundo

estadoPulsador = digitalRead(3);//leemos el estado del //pulsador

} while (estadoPulsador == true);//comprobamos si se ha //pulsado

Para asentar lo que has aprendido aquí te propongo este ejercicio.

Ejercicio:

Realizaremos un programa en el que leeremos el valor de un (potenciómetro) , puedes usar el valor que quieras, yo en este caso he usado uno que tenía a mano de 47kΩ y encenderá 4 leds dependiendo de donde se encuentre situado, es decir:

Esquema de conexión encendido proporcional de led  según posición del potenciometro.
Esquema de conexionado

-Posición a cero , led 1,2,3 y 4 apagados

-Posición en el primer cuarto de recorrido led 1 encendido resto apagados

-Posición en el segundo cuarto de recorrido led 1 y 2 encendidos resto apagados

-Posición en el tercer cuarto de recorrido led 1,2 y 3 encendidos led 4 apagado

-Posición en el último cuarto del recorrido led 1,2,3 y 4 encendidos.

A continuación te dejo el programa, que también podrás descargar para cargarlo en tu Arduino.