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
}
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:
-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.