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

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

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

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:






1 LED de 5 mm azul


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.

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

Autoevaluación

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