Las sentencias condicionales son una de las herramientas más útiles en la programación de
Arduino. Permiten controlar el flujo de un programa en función de cierta condiciones que puedes definir en el código.

 Las sentencias condicionales son como un test – comprueban si una condición es verdadera o no. Si la condición es verdadera, el código dentro de la sentencia condicional se ejecuta. Si la condición es falsa, el código no se ejecuta. La sentencia condicional más utilizada es la sentencia if.

 SENTENCIAS IF

Las sentencias if suelen colocarse en la sección loop(), donde se evalúan una vez en cada ciclo del bucle.

 El código de una sentencia if tiene el siguiente aspecto:

La condición es lo que determina si el código en el cuerpo se ejecuta. Normalmente la condición se escribe para comprobar si una variable es menor, mayor o igual que algún número. Cualquiera que sea la condición utilizada, debe evaluarse a un valor verdadero o falso.

Si la condición es verdadera, el programa entrará en las llaves y ejecutará el código dentro del cuerpo. Si la condición es falsa, el programa se salta el código y continúa con la línea de código después de la llave de cierre.

Por ejemplo, dale un vistazo a esta sentencia if que imprime “x es menor que y” en el monitor serie cuando x es menor que y:

La condición de esta sentencia if es x < y. Digamos que x es igual a 2 e y es igual a cuatro. 2 < 4 es una declaración verdadera, por lo que el programa entrará en las llaves y ejecutará el código en el cuerpo. El código del cuerpo imprimirá en serie “x es menor que y” en el monitor serie.

Si x es igual a 10 e y es igual a cuatro, 10 < 4 es una declaración falsa, por lo que el programa omitirá el código en las llaves y no se imprimirá nada en el monitor serial.

OPERADORES RELACIONALES

Los operadores relacionales son muy útiles para escribir sentencias condicionales. Los operadores relacionales se usan para comparar dos o más números o variables. Por ejemplo,
igual a, mayor que y menor que son algunos operadores relacionales comunes. Son la forma más común de establecer la condición en una sentencia if.

A continuación se muestra una lista de todos los operadores relacionales que se pueden utilizar en las sentencias condicionales:

x > y: x es mayor que y

x < y: x es menor que y

x >= y: x es mayor o igual que y

x <= y: x es menor o igual que y

x == y: x es igual a y

x != y: x no es igual a y

Si la comparación da como resultado una sentencia verdadera, se ejecutará el cuerpo de la sentencia condicional.

SENTENCIAS IF ELSE

Otra sentencia condicional útil es la sentencia if else. Así es como se escribe una sentencia if else:

Al igual que las sentencias if, las sentencias if-else evalúan primero la condición. Si la condición es verdadera, se ejecutará el código dentro del cuerpo del bloque if. Si la condición es falsa, se ejecutará el código del bloque else.

 SENTENCIAS IF ELSE IF

 La sentencia if- else if permite comprobar dos condiciones. Este es el código de una sentencia if-  else if:

El programa comprueba primero la condición 1 en la sentencia if. Si es verdadera, se ejecuta el código en el cuerpo de la sentencia if, y luego el programa sale de todo el bloque if else if.

 Si la condición 1 es falsa, el programa comprueba la condición 2 en el bloque else if. Si la condición 2 es verdadera, se ejecuta el código dentro del cuerpo de la sección else if, luego el programa sale del bloque if- else if.

 La sentencia if- else if es similar a tener dos sentencias if, pero hay una sutil diferencia. If else if sólo ejecuta un bloque – el bloque if o el bloque else if. El primer bloque que tiene una condición verdadera se ejecuta. Con dos sentencias if, ambas se ejecutan si las dos condiciones son verdaderas.

 SENTENCIAS IF ANIDADAS

 Las sentencias if pueden anidarse, o colocarse unas dentro de otras. Las sentencias if anidadas le permiten comprobar múltiples condiciones y realizar diferentes acciones cuando una de ellas es verdadera. Una sentencia if anidada es como decir “si x es verdadera, realiza esta acción, y luego si y y z son verdaderas, realiza esta otra acción”.

 Las sentencias if anidadas se utilizan con frecuencia cuando se trabaja con sensores. Por ejemplo, una sentencia if anidada puede comprobar si un sensor está transmitiendo datos antes de leerlos. El código siguiente utiliza una sentencia if anidada para ver si un sensor de temperatura está enviando datos al Arduino antes de comprobar si la temperatura está por encima o por debajo de un valor umbral:

El estado de tensión del sensorPin se lee con una función digitalRead() y el valor se almacena en la variable de entrada. Cuando el sensor está enviando datos al Arduino, el sensorPin estará alto, por lo que input tendrá un valor alto almacenado en él.

 La primera sentencia if comprueba el valor almacenado en input. Si input tiene un valor alto, el Arduino entra en la sentencia if y ejecuta la función digitalWrite() para enviar una señal alta al ledPin.

 Las siguientes dos sentencias if están anidadas dentro de la primera sentencia if. Si la temperatura es inferior a 20 grados, se ejecutará el código de la primera sentencia if anidada y se imprimirá “¡Baja temperatura!” en el monitor serie.

 Si la temperatura es superior a 20 grados, la segunda sentencia if anidada se ejecutará y se imprimirá “¡Alta temperatura!” en el monitor serie. En este ejemplo, las sentencias if anidadas sólo se evalúan cuando el sensor está enviando datos al Arduino.

Scott Campbell. How to use conditional statements in Arduino programming. Circuit Basics. https://www.circuitbasics.com/how-to-use-conditional-statements-in-arduino-programming/