Saltar al contenido

La sentencia If Else en Arduino en Español - Condicionales

¡Bienvenido al tercer capítulo de este curso de Arduino completo en español! En el  tutorial anterior vimos cuales son los diferentes tipos de datos básicos y qué es y cómo crear una variable. Hoy vas a aprender a utilizar la sentencia if else en Arduino y además te enseñaremos varios ejemplos.

If Else en Arduino - Cómo funciona

A continuación tienes la estructura básica de una sentencia if else en Arduino. Su funcionamiento es el siguiente. Si la condición 1 se cumple, se ejecutan las instrucciones que hay dentro del if. En cambio, si la condición 1 no se cumple, comprueba la condición 2. Si ésta se cumple, se ejecutan todas las instrucciones que hay dentro del else if. Si la condición 2 tampoco se cumple, se ejecuta lo que hay dentro del else.

/*
 * if(condición 1){
 *  instrucciones 1;
 * }
 * else if(condición 2){ 
 *  instrucciones 2;
 * }
 * else{
 *  intruscciones 3;
 * }
 */

Cosas a tener en cuenta

  • Puedes comparar todas las condiciones que necesites, no hay ningún limite. Para ello simplemente agrega tantos else if como necesites. 
  • No es obligatorio utilizar siempre la sentencia else if ni la sentencia else. Si por ejemplo solo necesitas comprobar una condición, no necesitas usar el else if
  • Una vez se cumple una condición, se ejecutan las intrucciones que hayan dentro de dicho if o else if y ya no se comprobarán el resto de condiciones.

Ejemplo de la sentencia if en Arduino

Para este primer ejemplo hemos creado dos variables de tipo entero. ¿Cómo funciona este programa? Su funcionamiento es el siguiente: si la variable_1 es igual a la variable_2, se ejecutan las instrucciones que hay dentro del if, es decir, se enciende un LED que tenemos conectado. Si no se cumple dicha condición, se ejecutan las instrucciones dentro del else, es decir, se apaga el LED.

Como puedes ver en el código de abajo, la variable_1 guarda un 5 y la variable_2 un 10, por lo tanto no son iguales, y el LED quedará apagado. Si hacemos que las dos variables guarden el mismo valor, sea el que sea, se cumplirá la condición del if, y por lo tanto el LED se encenderá.

const int LED = 13;
int variable_1 = 5;
int variable_2 = 10;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(variable1 == variable2){
    digitalWrite(LED, HIGH);
  }
    
  else{
    digitalWrite(LED, LOW);
  }
}

Operadores relacionales

Operadores relacionales

En la imagen anterior tienes en la columna izquierda todos los operadores que se pueden utilizar para comparar dos valores, los cuales pueden estar guardados en una variable o no. En la columna de la derecha se encuentra el significado de cada operador.

Si te has dado cuenta, el operador == tiene dos símbolos de igualdad. Esto es así porque un solo símbolo de igualdad es el operador de asignación, utilizado comúnmente para asignarle un valor a una variable.

If anidados en Arduino

¿Qué es un if anidado? Básicamente es un if dentro de otro if. También puede ser una sentencia if else completa dentro de otro if. Vamos a verlo con un ejemplo para que lo entiendas a la perfección.

const int LED = 13;
int variable_1 = 10;
int variable_2 = 10;
int variable_3 = 1;

void setup() {
  // put your setup code here, to run once:
  pinMode(LED, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(variable_3 > 0){
      if(variable1 == variable2){
        digitalWrite(LED, HIGH);
      }
        
      else{
        digitalWrite(LED, LOW);
      }
  }
}

Como puedes ver, la sentencia if else que hemos utilizado en el primer ejemplo ahora está dentro de otra sentencia if que comprueba si el valor de la variable_3 es mayor que 0.

Puesto que el valor de variable_3 es 1, es decir, si es mayor que 0, se cumple la primera condición. A continuación, se comprueba si la variable_1 es igual a la variable_2. Como en este caso es así, ya que ambas almacenan el valor 10, se enciende el LED.

Si por ejemplo el valor de variable_3 fuera -5, no se cumpliría la primera condición. Por lo tanto ya no se ejecutarían las instrucciones que hay dentro de la primera sentencia if. Esto quiere decir que no se comprobaría si la condición 2 (variable_1 == variable_2) es verdadera o no.