Operadores lógicos if ... else Arduino

La sentencia if … else en Arduino comprueba la condición y si es verdadera, se ejecuta el bloque de código entre llaves. Sin llaves, sólo se ejecutará una línea de código después de la declaración condicional. Le recomendamos que utilice siempre llaves, porque así es más difícil cometer un error en su programa. Veamos las condiciones, el orden de las condiciones y los operadores de comparación del Arduino con ejemplos.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • LED y resistencia de 220 Ohm;
  • protoboard;
  • cables de conexion.

Descripción de los operadores if else Arduino

Arduino if se utiliza con operadores de comparación para comprobar la veracidad de las condiciones. Los paréntesis agrupan lógicamente varias líneas en un solo bloque. Código de ejemplo que comprueba si el valor de una variable supera un número determinado:

    if (water > 100) { digitalWrite(12, HIGH); digitalWrite(10, LOW); }

    if (water < 100) { digitalWrite(12, LOW); digitalWrite(10, HIGH); }

La construcción if..else da más control sobre el programa que una sola sentencia if. Permite definir acciones no sólo para el caso en que la expresión sea verdadera, sino también para el caso contrario (cuando el valor de la expresión sea falso):

    if (water > 100) { digitalWrite(12, HIGH); digitalWrite(10, LOW); }

    else { digitalWrite(12, LOW); digitalWrite(10, HIGH); }

La construcción if..else varias condiciones

En Arduino IDE, else puede ir seguido de otro if, creando toda una cadena de comprobaciones. La comprobación se ejecutará hasta que se encuentre una expresión verdadera. En este caso, se ejecutará el bloque de código que sigue a la condición:

    if (water > 100) { digitalWrite(12, HIGH); digitalWrite(10, LOW); }

    else if (water > 200) { digitalWrite(12, LOW); digitalWrite(10, HIGH); }

    else if (water > 300) { digitalWrite(12, HIGH); digitalWrite(10, HIGH); }

    else { digitalWrite(12, LOW); digitalWrite(10, LOW); }

Si no se encuentra ninguna expresión verdadera, se ejecutará el último bloque else (si existe). Una construcción else if puede estar sin un bloque else final y viceversa. Se permite un número ilimitado de ramas else if en Arduino IDE.

Operadores de comparación en Arduino IDE

No confunda el signo igual ‘=’ con el operador de comparación ‘==’. El uso de un signo igual en una sentencia if condicional puede dar un resultado diferente en programa. if (y = 100) no es lo mismo que if (y==100). Un signo igual es un operador de asignación que establece el valor de una variable a 40 , no comprueba si la variable es igual a 100.

Operadores de comparación Arduino IDE

x == y (x es igual a y)
x != y (x no es igual a y)
x < y (x es menor que y)
x > y (x es mayor que y)
x <= y (x es menor o igual que y)
x >= y (x es mayor o igual que y)

Operadores lógicos (not, and, or) Arduino

! (not) lógico NOT, negación
&& (and) AND lógico
|| (or) lógico OR




Conclusión. El orden de las condiciones juega un papel importante a la hora de optimizar e intentar hacer el código más rápido. La cuestión es que las expresiones/valores lógicos se comprueban de izquierda a derecha, y si la primera comprobación hace que la expresión no sea válida, se detiene la comprobación posterior de las condiciones. En el ejemplo, si la condición water > 100 es falsa, ya no se comprueba el valor de la siguiente value > 100.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *