
Estructuras de Control en Arduino
Generalmente requerimos que en un sketch o programa de Arduino la ejecución de cierto código se realice bajo ciertas condiciones o características. Es decir, puede ser que necesitemos que algunas instrucciones se ejecuten o no, bajo ciertas condiciones. Es mas, podrías ser que requerimos que parte del código se ejecute un número determinado de veces o se repita su ejecución bajo ciertas condiciones. Todo lo anterior es posible, gracias a las sentencias o estructuras de control en Arduino.
Este tipo de sentencias son la base de cualquier lenguaje de programación que indique ser estructurado. Algunos ejemplos de lenguajes mas comunes o populares son Java, cualquier lenguaje basado en C, Pascal, Basic, etcétera. También, este tipo de sentencias o estrucutras de control te las puedes encontrar en algunos lenguajes de programación de Robots o controladores lógicos programables con Arduino.
Se considera que con este tipo de programación se logran programas mas eficientes y confiables. Asimismo, puede ser mas fácil encontrar errores de lógica y darle mantenimiento. Debido a que el IDE de Arduino se basa en C, es también un lenguaje de programación estructurado.

Tabla de contenidos
Estructuras de control condicionales en Arduino
Las estructuras de control en Arduino, se utilizan en casos donde se requiere comprobar si cierta condición o condiciones se cumplen (Cierto o True) o no se cumplen (Falso o False). Generalmente, se programa de tal forma que si la condición se cumple se ejecuta cierto código identificado. Es decir, se coloca el código dentro de llaves de apertura y cierre ({, }). Si no se cumple la condición, no se ejecuta el código dentro de las llaves y se ejecuta el que se encuentre después de la llave de cierre o que se indique.
Bloque if
Generalmente, la sentencia condicional mas común es if e if/else. En el caso de usarse sólo if, se valida si la condición es verdadera y se ejecuta el código dentro de las llaves, de no cumplirse, simplemente no se ejecuta. La sintaxis es la siguiente:
if (condición) {
instrucciones a ejecutar en caso de que sea verdadera
}
Si queremos que en el caso de que no se cumpla la condición se ejecute cierto código en especial, se agrega la sentencia else, como se muestra a continuación:
if (condición) {
instrucciones a ejecutar en caso de que sea verdadera la condición
}
else {
instrucciones a ejecutar en caso de que no sea verdadera la condición
}
Si se requieren evaluar diferentes condiciones y ejecutar código especifico para el caso en que se valida cada una, se recurre a else if, como se muestra a continuación:
if (condición1) {
instrucciones a ejecutar en caso de que sea verdadera la condición1
}
else if (condición2) {
instrucciones a ejecutar en caso de que no sea verdadera la condición2
}
.
.
.
else if (condiciónN) {
instrucciones a ejecutar en caso de que no sea verdadera la condiciónN
}
else {
instrucciones a ejecutar en caso de que no sea verdadera ninguna condición de las anteriores
}
Bloque switch
Otra sentencia de control que permite ejecutar código en particular, al cumplirse diversas condiciones es switch. Con la estructura else if, en cada condición se puede validar una o mas variables diferentes. En el caso de switch, se valida una variable y se indica que hacer en cada caso o valor que pueda tener. Su forma general es:
switch (variable) {
case valor1:
instrucciones que se ejecutan si la variable tiene el valor 1
break;
case valor2:
instrucciones que se ejecutan si la variable tiene el valor 2
break;
default:
instrucciones que se ejecutan si la variable no tuvo el valor de los case considerados
}
Primero, con la estructura de control switch, se indica la variable a analizar, en el caso anterior sería variable. En segundo lugar, frente a la palabra case, se indica el valor que se debe considerar en la valoración.
Si la variable tiene ese valor, se ejecutará el código que se encuentre después de los dos puntos. Si la variable no tiene el valor1, se analiza si tiene el valor2. De ser cierto se ejecuta el código después de los dos puntos del segundo caso. De no cumplirse se analizar si tiene el valor del tercer caso, con la misma lógica.
Si no se cumple ningún caso, se ejecutará el código que se encuentre después de la sentencia default. Se debe notar que al final de cada caso y antes de indicar el que sigue se inserta la instrucción break.
Esto debido a que si se cumplió un caso, no vale la pena analizar los casos restantes. La instrucción break genera que se salga de la estructura switch y se ejecute el código que se encuentra después de la lave de cierre.
En el caso de Arduino, sólo se puede usar la estructura de control switch con variables enteras, aunque otros lenguajes de programación si permiten tipos diferentes al entero. También, se recomienda no manejar mas de 10 casos.
Conclusiones sobre estructuras de control en Arduino
Para concluir, aprendiste que las sentencias o estructuras de control permiten dar orden a un programa. También, las estructuras de control en Arduino permiten elegir código que ha de ejecutarse bajo ciertas condiciones.
Asimismo, estas sentencias ayudan a identificar fácilmente errores de lógica y en un futuro, facilitan el mantenimiento y/o actualización de un programa. Ahora ya puedes desarrollar programas y proyectos con mayor grado de complejidad.