Operadores lógicos en Arduino

Para este post se tratará de analizar los operadores lógicos en Arduino, elementos muy importantes en programación, capaces de recrear la lógica del ser humano a partir de instrucciones escritas en el código de un programa.

 

En el lenguaje de programación Arduino, así como en cualquier otro lenguaje de programación (como Java) existen las llamadas estructuras de control.

La principal estructura de control, de la cual se derivan las demás es la estructura secuencial, donde todo las instrucciones se ejecutan una tras otra en orden descendente, de principio a fin.

Luego de la estructura secuencial, creo que la más utilizada es la estructura selectiva, el llamado if. Su funcionamiento es sencillo y su uso permite utilizar la lógica en la creación de algoritmos.

La sintaxis es básicamente la siguiente:

El código mostrado representa una estructura selectiva con instrucciones para cuando se cumple una condición y las instrucciones para cuando no se cumple la condición.

Pero, en ocasiones es necesaria que se cumpla más de una condición para lograr determinados resultados. Es aquí donde entran en juego los Operadores Lógicos.

En el siguiente cuadro se muestran los operadores más utilizados a la hora de programar.

Operadores lógicos en Arduino
Nota: Los símbolos de la derecha son utilizados exclusivamente en circuitos lógicos (electrónica). Son llamados compuertas lógicas y su funcionamiento es análogo a los operadores usados en programación.

En programación se usa básicamente las estructuras AND y OR y a partir de ellas se derivan las demás.

Veamos algunos ejemplos donde se usan los operadores lógicos.

  • Operador AND

Este operador permite validar 2 o más condiciones, las cuales se deben cumplir todas a la vez para que se ejecute el código que se escribe dentro de las llaves.

    • Operador OR

 Este operador permite que cuando cualquiera de las condiciones establecidas se cumpla, entonces se ejecuta el código entre las llaves. Solamente se necesita que al menos 1 sea verdadera para que se devuelva un valor true y se ejecute las instrucciones establecidas.

  • Operador NAND

Se cumple cuando ninguna de las instrucciones se cumple. Supongamos que hay 5 personas en una casa. Si se les pregunta si poseen un Arduino y NINGUNO de ellos tiene, entonces se ha cumplido una condición y el NAND devolverá un valor true.

En programación, esto se puede representar de dos formas, ambas utilizando la compuerta AND.

Caso 1:

El operador != se lee como diferente de. Si las dos condiciones establecidas son diferentes de true, entonces se entra al bloque de código entre llaves. Se podría decir que la expresión !=true, podría ser remplazada por ==false, lo cual sería perfectamente válido.

Caso 2:

En esta sintaxis se evalúan dos condiciones con el operador AND. Si ninguna de las dos se cumple, entonces el else entra en ejecución. Esto equivale a una NAND donde las condiciones, al no cumplirse todas a la vez, desencadenan una serie de instrucciones.

  • Operador NOR

De la misma forma como el NAND se deriva del operador AND, el NOR se deriva del OR y posee dos casos en los que puede decir que se utiliza. Se cumplirá cuando en algunas de las condiciones se devuelva un valor false.

Caso 1:

Si alguna de las condiciones no se cumple entonces se ejecuta el bloque entre las llaves. Esto es una NOR.

Caso 2:

Si alguna de las condiciones se cumple, se ejecuta entre las llaves, pero si no es así, entonces entra en ejecución el bloque else. Esto equivale a una NOR.

  • Operador NOT

Se puede expresar de dos maneras:

O bien…

En ambos casos se ejecutará el código entre las llaves cuando la condición sea falsa, es decir, solo funciona cuando hay una negación, cuando algo no se da.

***

Básicamente estos son los operadores más utilizados en programación. A partir de ellos nacen los algoritmos y de los algoritmos nacen los programas.

Espero que la información suministrada sea de utilidad para ustedes.

Saludos.

¿Te gustó? ¡Comparte!Share on LinkedInShare on FacebookTweet about this on TwitterEmail this to someoneShare on RedditShare on TumblrShare on Google+Pin on PinterestBuffer this page