Uso de condicionales en Arduino

Declarar condicionales es una de las herramientas más útiles en la programación de Arduino. Los condicionales permiten controlar el flujo de un programa, en función de ciertas condiciones que se pueden definir dentro del código.

Los condicionales verifican si una condición es verdadera o falsa. Si la condición es verdadera, se ejecuta el código dentro de la declaración condicional. En el caso contrario, la condición resulta falsa y el código no se ejecuta.

La sentencia condicional más utilizada en la prgramació en general y al programar en arduino es la sentencia if.

Condicional If en la programación de arduino

El código para la declaración de un condicional if en Arduino tiene la siguiente forma:

if (condición) {
   Código; 
}

La condición determinará si se ejecuta el código dentro del condicional.

Es decir, solo si se cumple la condición, se ejecuta la instrucción.

Por lo general, la condición verifica si una variable es menor, mayor o igual que un número determinado.

Cualquiera que sea la condición que se use, debe evaluarse como verdadera o falsa.

Si la condición es verdadera, el programa ejecutará el código dentro del condicional.

En caso contrario, la condición es falsa. El programa omitirá el código dentro del condicional y continuará en las siguientes líneas de código, después de la llave de cierre de dicho condicional.

En el siguiente ejemplo, se describe un condicional if que muestra en pantalla «x es menor que y» cuando se cumple dicha condición:

if (x < y) {
   Serial.println("x es menor que y");
}

La condición de este condicional if es x < y.

Supongamos que «x» es igual a 5, pero «y» es igual a 7.

5 es menor que 7, en consecuencia la declaración es verdadera, por lo que se ejecutará el código en el cuerpo del condicional.

La salida de este condicional es imprimir en pantalla «x es menor que y».

Si x es igual a 8, y la variable y es igual a 3. Entonces el condicional 8  < 3 es falso. Por lo tanto, se ignorará el código dentro del condicional y generará una salida.

Uso de operadores relacionales en Arduino

Al comparar dos o más datos dentro de una sentencia condicional, utilizamos los operadores relacionales.

Los operadores relacionales más comunes en Arduino son el (=), (>) y (<). Dichos operadores son los más utilizados para definir una condición dentro de una sentencia condicional if.

En la siguiente lista, te mostramos todos los operadores relacionales que puedes usar al declarar condicionales dentro de un código de programación de Arduino:

  • 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 es diferente a y

 

Condicional If Else en arduino

If else es otra forma condicional de la programación de Arduino ampliamente utilizada.

A continuación se describe el uso del condicional If else en Arduino:

if (condición) {
   código; // se ejecuta si la condición es verdadera
}
else{
   código; // se ejecuta en caso contrario, si es falsa
}

De igual forma como if evalúa que se cumpla una condición, para ejecutar una parte del código, if else evalúa primero la condición.

Si resulta verdadera, se ejecutará el código dentro del cuerpo del if. Sin embargo en caso contrario si la condición es falsa, se ejecutará un segundo bloque dentro del else.

Condicional If else if en Arduino

Otro condicional utilizado en Arduino es if else if. Éste permite evaluar dos condiciones adicionales.

A continuación la forma correcta en el que se debe utilizar el condicional if else if en Arduino:

if (condición 1) {
 código  // Se ejecuta si la condición 1 es verdadera
} 
else if (condición 2) {
  código // Se ejecuta solo si la condición 1 es falsa y la condición 2 es verdadera
}

Esta forma del condicional evalúa primero la validez de la condición 1. Si es verdadera, se ejecutará el código dentro del if.

En caso contrario si la condición 1 es falsa, se pasa a evaluar la condición 2 dentro de else if. Si la condición 2 es verdadera, se ejecutará el código dentro de else if.

If else if, es similar a utilizar dos declaraciones if, pero con cierta diferencia.

If else if ejecuta únicamente una sección a la vez, si es verdadera. Se ejecuta el código dentro de if o dentro de el else if.

En muchos casos si se usan dos declaraciones if, ambas se ejecutarán, si ambas condiciones fueran verdaderas.

Condicionales if anidados en Arduino

Los condicionales pueden estar anidados, es decir, uno dentro del otro. Múltiples if anidados permiten evaluar múltiples condiciones y ejecutar diferentes salidas cuando se cumple una de las condiciones.

Una declaración if anidada es lo mismo que «si x es verdadero, ejecuta éste código, entonces si «y» y «z» son verdaderos, ejecuta esta otra sección del código».

Por ejemplo, un condicional if anidado permite evaluar si un sensor está transmitiendo datos antes de leerlos.

El siguiente código usa una instrucción if anidada para ver si un sensor de temperatura está enviando datos al Arduino antes de verificar si la temperatura está por encima o por debajo de un valor de umbral:

int input = digitalRead(sensorPin);

if (input == HIGH) {
   digitalWrite(ledPin, HIGH)
   if(temp < 20) {
      Serial.print("Tamperatura baja");
   }	
   if(temp > 20){
      Serial.print("Temperatura elevada");
   }
}

El sensor de temperatura, representado por sensorPin lee el estado del voltaje digitalRead() y registra un valor de temperatura, que luego se almacena dentro de la variable input.

Una vez el sensor envía los datos recibidos al Arduino, si sensorPin es alto, input almacenará un valor alto.

El primer if verifica el valor almacenado dentro de input. Si input tiene un valor alto, el Arduino ejecuta la declaración if y acciona el 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 está por debajo de los 20 grados, se ejecutará el código en la primera declaración If anidada y se mostrará el mensaje «Temperatura baja».

Si la temperatura supera los 20 grados, se ejecutará la segunda instrucción if anidada y se imprimirá «Temperatura elevada».

En este ejemplo, las declaraciones if anidadas solo se evalúan cuando el sensor envía datos al Arduino.

Espero que este artículo te ayude a usar instrucciones condicionales en el Arduino.

Deja un comentario

programar en arduino logo

En este sitio aprenderas a programar en Arduino de forma gratuita a través de sencillos tutoriales y distintos proyectos.