Expresiones relacionales

En esta lección aprenderás a codificar y evaluar expresiones relacionales   para realizar  comparaciones que  se requieran al  hacer en tus programas de Arduino.

Operadores relacionales 

Los operadores relacionales de Arduino que utilizaremos  se presentan en la Tabla 1

OperadorOperaciónEjemplo
==igual que a == b
!=no es igual a a != b
>mayor que a > b
<menor quea < b
<=menor que o iguala <= b
>=mayor que o iguala >= b

Tabla1. operadores relacionales de Arduino

Expresiones relacionales

Las expresiones  relacionales son aquellas  que permiten  comparar dos valores, pueden ser números, caracteres alfanuméricos, constantes o variables. Algunos ejemplos de expresiones relacionales  se muestran en la Tabla 2:

Expresión DescripciónExpresiónDescripción
a > b¿Es a mayor que b?3 >= 6 + 7¿ Es 3 menor o igual que 6+7?
b < c¿Es b menor que c?‘M’ > ‘m’¿Es ‘M’ mayor que ‘m’?
a >= cEs a mayor o igual que c?´Hola’ == ´hola’¿Es ‘Hola igual a ‘hola’?

Tabla 2. Expresiones relacionales

Evaluación de expresiones relacionales

El resultado de evaluar una operación relacional es un falso o un verdadero. Para comprender cómo se evalúa una expresión relacional, vamos a ver el siguiente video:

Analiza los siguientes ejemplos donde se desglosan los pasos que se realizan para evaluar las expresiones relacionales:

Ejemplo 1Ejemplo 2Ejemplo 3
A=6
b=10
(A*2) > (B*2)
12 > (B*2)
12 > 10
FALSO
x=2
y=3
(2 * 3 / 1 + 5 ) >= (x + 3) / (1 + y)
(6/1+5) >= (3+3) / (1+3)
(6+5) >= 6 /
11 >= 1.25
TRUE
(2 + 3) / (1 + 5) != (2 + 3) * 2

5 / (1+ 5) != 5 * 2
5 / 6 != 10
0.8333 != 10
TRUE

Tabla 3. Evaluación de expresiones relacionales

Ahora que ya comprendimos la lógica y cómo se evalúan las expresiones relacionales vamos a hacer un ejemplo:

Se desea programar un circuito que encienda un LED cuando el resultado de una expresión expresión relacional sea verdadero (1) y que se apague cuando sea falso (0);

Figura 2 Conexión de un LED al pin 5 de la tarjeta Arduino UNO

Para realizar diferentes expresiones relacionales, se declaran las variables a y b de tipo entero, x y y de tipo char y cadena1 y cadena2 de tipo string como sigue:

a = 5;
int b = 3;
int c = 2;
char x ='M';
char y ='m';
String cadena1="Hola";
String cadena2="hola";

En este caso  la tarjeta Arduino puede enviar al LED  dos valores:  HIGH (1) si es un verdadero  y LOW (0) si es falso,  entonces debemos configurar el pin de entrada. La instrucción de configuración del pin 5 digital sería:

pinMode(3, INPUT); // configura el pin 3 de entrada

En el programa se proporciona la expresión relacional para ser evaluada. Para encender el LED, en lugar de proporcionar el valor HIGH (1) o LOW (0) en la función digitalWrite, se proporciona la expresión relacional.  El resultado de la evaluación proporcionará un verdadero (1) y enciede el LED, o un falso (0) y apaga el LED.  La codificación de la  función digitalWrite sería:

digitalWrite(3,(a>b));

Es importante señalar que el resultado de la expresión relacional dependerá de los valores con los que se haya inicializado las variables. 

Manos a la obra

Armando Circuitos

Ahora que ya conoces cómo codificar y evaluar expresiones  relacionales,  vamos a realizar una práctica que consiste en la construcción y programación de un circuito electrónico que encienda un led cuando el resultado sea verdadero y apagado cuando el resultado sea falso .

 

Materiales

Si no te acuerdas o deseas repasar las características técnicas y funcionamiento de alguno de los componentes electrónicos, puedes dar clic sobre su imagen para consultar su información. 

Construcción del circuito electrónico

Realiza las conexiones del circuito electrónico que se muestra en el diagrama esquemático de la Figura 3. Observa que el ánodo del led va conectado a la resistencia.

Figura 3. Diagrama esquemático del circuito electrónico con un led.

Programación del circuito electrónico

/* Manual de programación con Arduino
* Práctica: Codificación y evaluación de expresiones relacionales
* Objetivo: Programa que enciende un led con expresiones relacionales
* Fecha: noviembre 2020
* Autor: Milagros Pacheco Castañeda
*/

int a = 5;
int b = 3;
int c = 2;
char x ='M';
char y ='m';
String cadena1="Hola";
String cadena2="hola";

void setup() {
pinMode(3, OUTPUT);
Serial.begin(9600);
}

void loop() {

Serial.print("¿Es a mayor que b? ");
Serial.println (a > b);
digitalWrite(3,(a>b));
delay(1000);

Serial.print("¿Es b menor que c? ");
Serial.println (b < c);
digitalWrite(3,(b<c));
delay(1000);

Serial.print("¿Es a mayor o igual que c? ");
Serial.println (a >= c);
digitalWrite(3,(a >= c));
delay(1000);

Serial.print("¿ Es a menor o igual que b+c? ");
Serial.println (a <= b+c);
digitalWrite(3,(b <= b+c));
delay(1000);

Serial.print("¿Es a igual que b? ");
Serial.println (a == b);
digitalWrite(3,(a == b));
delay(1000);


Serial.print("¿Es b no igual que c? ");
Serial.println (b != c);
digitalWrite(3,(b != c));
delay(1000);


Serial.print("¿Es a igual que b+c? ");
Serial.println (a == b+c);
digitalWrite(3,(a == b+c));
delay (1000);


Serial.print("¿Es a+c mayor o igual b+c? ");
Serial.println (a+c >= b+c);
digitalWrite(3,(a+c >= b+c));
delay(1000);

Serial.print("¿Es 'M' mayor que 'm'? ");
Serial.println (x > y);
digitalWrite(3,(x > y));
delay(1000);

Serial.print("¿Es 'M' menor que 'm'? ");
Serial.println (x < y);
digitalWrite(3,(x < y));
delay(1000);

Serial.print("¿Es 'M' igual que 'm'? ");
Serial.println (x == y);
digitalWrite(3,(x == y));
delay(1000);

Serial.print("¿Es 'Hola mayor o igual a 'hola'? ");
Serial.println (cadena1 >= cadena2);
digitalWrite(3,(cadena1 >= cadena2));
delay(1000);

Serial.print("¿Es 'Hola igual a 'hola'? ");
Serial.println (cadena1 == cadena2);
digitalWrite(3,(cadena1 == cadena2));
delay(1000);

Serial.print("¿Es 'Hola' no igual a 'hola'? ");
Serial.println( cadena1 != cadena2);
digitalWrite(3,(cadena1 != cadena2));
delay(1000);

}

Observa como  cada expresión relacional  es usada como parámetro de la función digitalWrite, y al ser  evaluada determina el valor que envía la tarjeta Arduino a través del pin 5 al led (HIGH-encendido, LOW-apagado).

Funcionamiento del circuito electrónico

Prueba el funcionamiento de tu circuito electrónico. Verifica que el circuito funcione como la simulación que se muestra a continuación. Presiona el botón Iniciar simulación y da un clic el botón monitor serial  para observa el resultado de cada expresión relacional.  Dependiendo del resultado el led se enciende o se  apaga . 

Si en tu navegador no se muestra la simulación, ingresa al enlace www.tinkercad.com/embed/3oJWmQpUsrz?editbtn=1

Armando Circuitos

Autoevaluación

para aprender más

Para aprender más

 

Creatividad codificada (2018) Tipos de datos y operadores en Arduino. https://creatividadcodificada.com/arduino/tipos-de-datos-y-operadores-en-arduino/

Spark Electrónica. (2017). Arduino Basics: Operadores comparativos o relacionaleshttps://sparkelectronica.wordpress.com/2017/08/02/arduino-basics-operadores-comparativos-o-relacionales/