Sentencia de iteración for

En esta lección aprenderás a codificar  la sentencia  iterativa for para repetir instrucciones  un número determinado de  veces

Estructura iterativas

En la vida cotidiana, existen problemas que su solución requiere que ciertas instrucciones u operaciones se repitan una y otra vez utilizando datos diferentes.   Las estructuras que repiten las instrucciones se conocen como bucles y se llama iteración al hecho de repetir. En esta sección veremos la estructura  iterativa  for.

for

La estructura for repite  las acciones del cuerpo de un bucle un número específico de veces, controlando de modo automático el número de iteraciones. 

El diagrama de flujo de la sentencia for se muestra en la figura 1.

Figura 1. Diagrama de la sentencia for.

Como puedes observar,  la sentencia comienza con un valor inicial, lleva un incremento y termina con un valor final. La sintaxis de la estructura for es la siguiente:

Sintaxis

for (inicialización; condición; incremento) {
// instrucciones;
}

Parámetros

inicialización – se integra por la inicialización de una  una variable tipo entero que se inicializa con un valor numérico y que  funciona como un contador para llevar el número de repeticiones

condición –  una expresión relacional que compara el valor de la variable contador con el valor final al que debe de llegar.

incremento – el valor que incrementa o decrementa la variable que funciona como contador.

En la siguiente imagen (Figura 2) se desglosa cada uno de los parámetros de la sintaxis  de la sentencia for:

Figura2. Parámetros de la sentencia for

Ahora que ya conoces la sintaxis de la sentencia for, observa el siguiente video para comprender la lógica de su funcionamiento.

Después de  observar en el video  la lógica de la sentencia for, vamos a realizar  una práctica que consiste en la construcción y programación de un circuito electrónico  que encienda  5 leds con diferentes secuencias. El primer  led se conectará al pin 2 y el último led al pin 6. (Figura 3).

Figura 3. Conexión de 5 leds a la tarjeta Arduino UNO

En este circuito, la tarjeta Arduino enviará el valor  HIGH (1)  a cada uno de los leds  que se encuentran conectados,  por lo que  debemos configurar como salida cada pin, desde el pin 2 al 6.  La instrucción de configuración de los pines  en la función setup del programa utilizando la sentencia for sería:

for (pinLed=2; pinLed<=6; pinLed++){ // pinLed = 2, hasta llegar al 6, incrementa 1 
pinMode(pinLed,OUTPUT); // Configura desde el pin 2 hasta el pin 6 como salida
}

Una vez configurados los pines del 2 al 6,  procedemos realizar las secuencias de encendido de los leds. Revisa la tabla siguiente que describe cada una de las secuencias y cómo codificar la sentencia for:

Cómo puedes observar,  en  la sintaxis de la sentencia for cambian los datos de la inicialización, de la condición y el incremento, con estos cambios se logra las diferentes secuencias de encendido.

Manos a la obra

Armando Circuitos

Ahora que ya conoces cómo configurar los pines digitales de tu tarjeta Arduino con la sentencia for y cómo crear secuencias de encendido,  vamos a realizar una práctica que consiste en la construcción y programación de un circuito electrónico que encienda  leds con diferentes secuencias.

 

Materiales

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

Figura 4 Diagrama esquemático del circuito electrónico para encender leds con diferentes secuencias

Programación del circuito electrónico

Captura el código del programa en el IDE de Arduino.  Recuerda realizar tu mismo la codificación para aprender la sintaxis de la sentencia for.

/* Manual de programación con Arduino
* Práctica: Uso de la sentencia for
* Objetivo: Encender 5 leds con cuatro secuencias diferentes
* 1: Enciende led x led desde el primero al último
* 2: Apaga led x led desde el último al primero
* 3: Parpadean leds pares
* 4: Parpadean leds nones
* Fecha: noviembre 2020
* Autor: Milagros Pacheco Castañeda
*/

int pinLed;
void setup()
{
Serial.begin(9600); // Activa monitor serial
for (pinLed=2; pinLed<=6; pinLed++){ // pinLed = 2, hasta llegar al 6, incrementa 1
pinMode(pinLed,OUTPUT); // Configura el desde el pin 2 hasta el 6 como salida
} // fin for
}

void loop()
{
// Primera secuencia prender led x led
for (pinLed=2; pinLed<=6; pinLed++) { // pinLed = 2, hasta llegar al 6, incrementa 1
digitalWrite(pinLed,HIGH); // Enciende cada led
delay (500);
Serial.print (pinLed);
Serial.println (" prendido");
} // fin for
// Segunda secuencia apagar led x led del último al primero
for (pinLed=6; pinLed>=2; pinLed--){ // pinLed = 6, hasta llegar a 2, decrementa 2
digitalWrite(pinLed,LOW); // Apaga cada led
Serial.print (pinLed);
Serial.println (" apagado");
delay (500);
}
// Tercera secuencia parpadean los leds pares
for (pinLed=2; pinLed<=6; pinLed+=2){ // pinLed = 2 hasta llegar a 6, incrementa 2
digitalWrite(pinLed,HIGH);
delay (250);
digitalWrite(pinLed,LOW);
delay (250);
} //fin for
// Cuarta secuencia parpadean los leds nones
for (pinLed=5; pinLed>=3; pinLed-=2){ // pinLed = 5 hasta llegar a 3, decrementa 2
digitalWrite(pinLed,HIGH);
delay (250);
digitalWrite(pinLed,LOW);
delay (250);
} //fin for
} // fin loop

Observa cómo en cada sentencia for la inicialización, condición y el incremento cambia, lo que permite que cada secuencia de encendido de los leds sea diferente.

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

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 observa cómo se encienden los leds en cada secuencia. 

Si en tu navegador no se muestra la simulación, ingresa al enlace https://www.tinkercad.com/embed/hjfRRiLiFgM?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