Sentencia if-then-else

En esta lección aprenderás codificar el orden en que se ejecutan las sentencias de un programa cuando se requiere hacer una selección con la estructura if then else

Estructura selectiva 

En la solución de muchos problemas se deben ejecutar acciones diferentes  dependiendo del valor de los datos. Las estructuras de selección las utilizamos cuando la solución requiere tomar una decisión para realizar un proceso. Las estructuras selectivas pueden ser simple (if) o doble (if then else) 

If then else

La estructura if then else ejecuta una cierta acción cuando se cumple una determinada condición

Figura 1. Diagrama de flujo de la sentencia if then else

Cómo puedes ver en la figura 1, la sentencia if then evalúa una condición, si  el resultado es verdadero entonces ejecuta ciertas instrucciones, si el resultado es falso, ejecuta las instrucciones de la sentencia else que son otras instrucciones diferentes.  Veamos ahora la sintaxis de la estructura for:

Sintaxis 

if (condición) {
instrucción1;
}
else {
instrucción2;
}

Parámetros

condición – Cualquier expresión relacional o lógica 

instrucción  –  La  operación o conjunto de operaciones que se van a realizar 

Observa el siguiente video, te ayudará a comprender la lógica de la sentencia if then else y su aplicación con un ejemplo:

Después de ver el video, revisemos un poco las instrucciones que se presentaron en el ejemplo.

La siguiente instrucción obtienen el estado de un botón conectado a un pin de la tarjeta Arduino y es asignado a una variable buttonState 

buttonState=digitalRead(buttonPin);

La variable  es utilizada para crear la condición que evalúa el estado del botón,  si el estado del botón es HIGH,  la condición es verdadera y se  envía el valor HIGH para encender el led, si la condición es falsa, se envía el valor LOW para apagar el led

if (buttonState == HIGH ) {    
digitalWrite(ledPin, HIGH)
}
else {
digitalWrite(ledPin, LOW);
}

Como puedes ver,   el ejemplo del if then else selecciona el camino a seguir dependiendo de si se cumple una condición o no.  

Manos a la obra

Armando Circuitos

Ahora que ya comprendiste la lógica de la sentencia if then else, vamos a realizar  una práctica que consiste en la construcción y programación de un circuito electrónico electrónico que lea el voltaje de un potenciómetro conectado al pin A0 de la tarjeta Arduino UNO, si el valor de la lectura es mayor a un voltaje de 2.5 (valor 512 en el potenciómetro)  un led de color rojo, si la lectura es menor enciende un  un led azul.  Figura 2

Figura 2. Encendido de un led rojo o azul dependiendo la lectura del potenciómetro

En este caso,  vamos a configurar el potenciómetro como entrada en el pin A0, el led azul se configura como salida al pin 8 y el led rojo como salida en el pin 7 de la tarjeta Arduino. 

Materiales

Los materiales que necesitas para realizar la práctica son:

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. Recuerda que el ánodo de cada  led va conectado a la resistencia y el cátodo a la tierra.

Figura 3. Figura 3 Diagrama esquemático del circuito electrónico para encender un led azul o un led rojo con el voltaje de un potenciómetro

Programación del circuito electrónico

Captura el código del programa en el IDE de Arduino. Recuerda escribir  tu el código para aprender la codificación.

/* Manual de programación con Arduino
* Práctica: Uso de la sentencia if then else
* Objetivo: Leer voltaje con un potenciómetro,
* si el voltaje es mayor que 2.5 enciende led azul
* de lo contrario enciende el led rojo
* Fecha: noviembre 2020
* Autor: Milagros Pacheco Castañeda
*/

int ledAzul =8;
int ledRojo = 7;
float valorSensor; // valor leído del potenciómetro (0-1023)
float voltajeSensor; // Voltaje sensor
void setup()
{
pinMode(ledAzul, OUTPUT);
pinMode(ledRojo, OUTPUT);
Serial.begin(9600);
}

void loop()
{
valorSensor=0;
valorSensor = analogRead(A0); // Lee el valor del potenciómetro
voltajeSensor = valorSensor * 5.0 / 1023; // calcula voltaje
if(voltajeSensor > 2.5) // evalúa la condición
{
// condición verdadera enciende led Azul
digitalWrite(ledAzul,HIGH);
digitalWrite(ledRojo,LOW);
Serial.print(voltajeSensor);
Serial.println(" LED azul Encendido");
}
else
{
// condición falsa enciende led rojo
digitalWrite(ledAzul,LOW);
digitalWrite(ledRojo,HIGH);
Serial.print(voltajeSensor);
Serial.println("LED rojo Encendido");
}
}

Observa que el valor devuelto por la función analogRead(A0) se almacena en la variable valorSensor. Este valor es utilizado para calcular el voltaje y almacenarlo en la variable voltajeSensor.  El voltaje se compara en la condición de la sentencia if then. Dependiendo del valor de la condición se ejecuta una de las siguientes opciones: 

  • True – se envía HIGH a través del pin 8 para encender el led azul,
  • False – se envía  HIGH a través del pin 7 para  encender el led rojo .

Compila, depura y sube el sketch a la tarjeta Arduino UNO. 

Funcionamiento del circuito electrónico

Puedes revisar el funcionamiento del circuito en la siguiente simulación. Para ver el monitor serial recuerda dar clic sobre el botón Código y después clic sobre el botón Monitor en serie.

Mueve la perilla del potenciómetro y analiza los valores que el monitor serial de Arduino. Observa cómo dependiendo del valor del voltaje se enciende un led. ¿Cuándo se enciende el led azul? ¿Con qué valores se enciende el led rojo?el led azul ?. 

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

logo-autoevaluación

Autoevaluación


para aprender más

Para aprender más

Prometec. (s/f). Introducción a la programación con Arduino. https://www.prometec.net/intro-programacion/

Joyanes Aguilar L. (2008) Fundamentos de programación. México: McGraw Hill. https://combomix.net/wp-content/uploads/2017/03/Fundamentos-de-programaci%C3%B3n-4ta-Edici%C3%B3n-Luis-Joyanes-Aguilar-2.pdf