Una de las primeras necesidades que surgen cuando estamos aprendiendo a programar es la repetición de una parte de nuestro código en el programa. Para ello tenemos la estructura de control for en arduino, vamos a ver la forma práctica de usarla.
Con la estructura for, podremos hacer que una parte de nuestro programa se repita una cantidad de veces determinada, esto se le suele conocer también con el nombre de bucle.
La sintaxis de la estructura for en arduino es la siguiente:
for (indice; condición; incremento)
{……….
……….}
Para ello necesitaremos tres cosas:
- El índice, es una variable que irá almacenando el número de repeticiones del bucle.
- Una condición que cuando se cumpla, haga terminar el bucle y que el resto de programa siga ejecutándose a continuación.
- El incremento que modificará el índice en cada repetición del bucle.
La estructura for, repetirá un numero de veces las instrucciones que tengamos entre las llaves que vienen a continuación.
Ejemplo de uso de bucle for con un Arduino
Para entender su funcionamiento vamos a ver un ejemplo sencillo y explicarlo paso a paso:
El efecto a conseguir es este:
El ejemplo consiste en conectar 5 led a las salidas de un arduino y ir encendiendo y apagándolos consecutivamente, creando un efecto desplazamiento de luz a través de los mismos.
Se han conectado 5 leds a los pines 3 al 7 a través de su correspondiente resistencia de 220Ω y por el otro terminal a masa o 0V.
El código a ejecutar será el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
int indice=3; // declaro la variable que me sirve de indice void setup() { pinMode(3,OUTPUT); // configuramos los puertos usados como salidas pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); } void loop() { for (indice=3; indice<=7; indice++) { // bucle que se repite desde valor indice 3 hasta 7 de uno en uno digitalWrite(indice,HIGH); // enciendo led conectado al pin indice digitalWrite(indice-1,LOW); // apago el led anterior delay(500); // pequeño retardo para poder verlo mejor } digitalWrite(7,LOW); // apago el ultimo led antes de volver a empezar } |
En primer lugar, declaro una variable llamada indice (aunque podríamos llamarla con cualquier nombre) que me sirve de contador del bucle. La declaración de la variable también podríamos haberlo hecho en el bucle for (int indice=3; …. pero me ha parecido mas sencillo hacerlo así, de momento.
La variable es del tipo entero por eso lleva delante int, este tipo de variable puede almacenar un numero de valor entre -32769 y 32767. Hay otros tipos de variable que se verán mas adelante.
En setup() configuramos los pines de arduino conectados a los led como salidas. Aquí podríamos usar también un bucle para no configurar las salidas una a una y lo dejo como ejercicio para el lector para practicar.
Ahora vamos con el bucle:
Como vemos, la estructura for en arduino se compone de una variable (en nuestro caso indice), seguido de una condición a cumplir, (en nuestro caso que indice sea menor o igual a 7) y el incremento (con ++ incrementamos indice en uno, seria equivalente a indice=indice+1).
Mientras se cumpla la condición, se ejecutarán las lineas de código que hay entre las llaves a continuación, e incrementara el indice en 1 como lo hemos programado.
Con las sucesivas pasadas del bucle, se irá incrementando la variable indice hasta que ya no se cumpla la condición, por que el valor de la variable indice sera 8, el bucle no se ejecutará, saltará la parte incluida entre llaves y continuará la ejecución del resto del programa.
El resto del programa es simple, una vez llegado al último led que hemos encendido, solo nos queda apagarlo y el programa volverá a ejecutarse con la función loop().
Y hasta aquí este post dedicado a los fundamentos en la programación en Arduino, seguiremos mas adelante en otros post avanzando con otros comandos y estructuras.
Si quieres conseguir los componentes para el montaje de este ejemplo puedes adquirir aquí un kit arduino para principiantes con todo lo necesario para montar este y otros muchos ejemplos que iremos viendo más adelante.

Recibe los artículos directamente en tu email el día de la publicación.
Garantía 100% libre de spam.
Considero magnífico el ejemplo utilizado para la explicación del bucle For. Muchas gracias don Francisco por compartir el conocimiento,
Gracias
Pequeña modificación para «el coche fantástico»
int indice=3; // declaro la variable que me sirve de indice
void setup() {
pinMode(3,OUTPUT); // configuramos los puertos usados como salidas
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop() {
for (indice=3; indice=3; indice–) { // bucle que se repite desde valor indice 7 hasta 3 de uno en uno
digitalWrite(indice,HIGH); // enciendo led conectado al pin indice
digitalWrite(indice+1,LOW); // apago el led anterior
delay(50); // pequeño retardo para poder verlo mejor
}
}
Gracias por tu aportacion.
Muy claro y explicito muchas gracias.