Descripción:
Los ciclos en programación son importantes y necesarios, una vez que se entienden son excelentes para trabajar con acciones repetitivas que pueden potencializarse con otros ciclos o condiciones.
Estos ciclos son una de las primeras herramientas en la resolución de problemas en programación, por ello iniciamos con este ciclo for.
Contenido/Competencias:
- Programa aplicaciones para sistemas automatizados.
- CE9 Diseña modelos o prototipos para resolver problemas, satisfacer necesidades o
demostrar principios científicos - CG6.1 Elige las fuentes de información más relevantes para un propósito específico y
discrimina entre ellas de acuerdo a su relevancia y confiabilidad - OM1 Actualizarse respecto a las mejores prácticas en su especialidad o área de
trabajo
El Plan:
Vamos a construir un prototipo sencillo para jugar con los ciclos, creando secuencias de encendido y apagado para una serie de 8 LEDs conectados a nuestro Arduino, todo esto usando ciclos FOR.
Hardware:
| Descripción | Cantidad | Notas |
|---|---|---|
| Arduino UNO | 1 | Compatible |
| Resistencia | 8 | 330 Ohms |
| LED | 8 | Cualquier color |
| Cables | Varios |
Software:
- Arduino IDE o Editor de preferencia
- Arduino UNO o Simulador (Proteus VSM, TinkerCAD)
Recursos:
- http://www.tinkercad.com
- Archivo Proteus (Opcional)
Diagrama:

Desarrollo Teórico
Estructura de FOR
La estructura de un ciclo for es:
for (indice; condición; incremento){
// Contenido a repetir n-veces
}
indice- Es una variable por lo general entera que va contando las repeticiones del ciclo o bucle.
condición- Es una condición que mientras se cumpla (sea Verdadero) seguirán repitiéndose los
incrementos.
- Es una condición que mientras se cumpla (sea Verdadero) seguirán repitiéndose los
incremento- La forma en la que cada iteración del ciclo va a modificar la variable.
Si necesitamos que se repita un ciclo de 1 a 10 los parámetros serían los siguientes:
-
indice
Necesitamos declarar una Variable (cualquier nombre) y le ponemos un valor inicial
int i=1 -
condición
Declaramos la condición para repetirse mientrasi<=10; Mientrasisea menor o igual a 10 el ciclo trabajará. -
incremento
Determinamos como vamos a modificar la variable cada iteración.- i=i+1
- i++
Tendríamos algo así:
for(int i=1;i<=10;i++){
}
Vamos a ponerlo en práctica con algo conocido. En practicas anteriores para activar los puertos del 2 al 9 como salidas usábamos este código:
void setup()
{
pinMode(2,OUTPUT); // Activa pto 2 como salida
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}
Si la serie de pasos la queremos hacer en un ciclo For se requiere que el índice inicie en 1, se repite el ciclo mientras sea menor o igual a 9, incrementando de uno en uno.
void setup(){
for(int pin=2;pin<=9;pin=pin++){
pinMode(pin,OUTPUT);
}
}
Desarrollo:

Conecta un LED a cada GPIO del 2 al 9, y programa una secuencia de encendido iniciando del 2 al 9, apagando todos los LEDs.
Encender Todos los LEDs al mismo tiempo
una vez configurado todos los puertos como salida, como en el codigo anterior, vamos a prender todos los LEDs en un cilo FOR, el codigo completo seria:
void setup(){
for(int val=2; val<=9; val++){
pinMode(val,OUTPUT);
}
}
void loop()
{
// Ciclo FOR de encendido
for(int x=2; x<=9; x++){
digitalWrite(x,HIGH);
}
}
el ciclo recorre los LEDs uno a uno prendiendolos, es tan rapido el Arduino, que vemos encenderse todos al mismo tiempo.
Encender y Apagar la serie de LEDs
Con el ciclo que se agrago para encender todos los LEDs del 2 al 9, vamos a darle un tiempo de encendido de 500mS y despues apagarlos todos de una vez. Terminando esperamos otros 500mS.
void setup(){
for(int val=2; val<=9; val++){
pinMode(val,OUTPUT);
}
}
void loop()
{
// Ciclo FOR de encendido
for(int x=2; x<=9; x++){
digitalWrite(x,HIGH);
}
// Espera de 500mS
delay(500);
// Ciclo FOR de apagado
for(int x=2; x<=9; x++){
digitalWrite(x,LOW);
}
// Espera de 500mS
delay(500);
}
Encender uno a uno y apagar la serie de LEDs
En el ejemplo anterior se encendian practicamente todos los LEDs al mismo tiempo y despues hay una espera de 500mS para apagar, si cambiamos el tiempo de espera dentro del ciclo cambiaremos la forma en la que encienden los LEDs.
void setup(){
for(int val=2; val<=9; val++){
pinMode(val,OUTPUT);
}
}
void loop()
{
// Ciclo FOR de encendido
for(int x=2; x<=9; x++){
digitalWrite(x,HIGH);
// Espera de 500mS entre cada LED
delay(500);
}
// Ciclo de apagado
for(int x=2; x<=9; x++){
digitalWrite(x,LOW);
}
// Espera de 500mS
delay(500);
}
Cambio de sentido en el ciclo FOR
Terminando el ciclo de encendido, apágalos en secuencia inversa al encendido con el mismo retardo.
Para esto necesitamos cambiar las condiciones del ciclo, necesita iniciar en 9 repitiendo el ciclo hasta llegar al 2, los incrementos son negativos. Quedaria la logica como
for(int x=9; x>=2; x--)
void setup(){
for(int val=2; val<=9; val++){
pinMode(val,OUTPUT);
}
}
void loop()
{
// Ciclo FOR de encendido
for(int x=2; x<=9; x++){
digitalWrite(x,HIGH);
// Espera de 500mS
delay(500);
}
// Ciclo de apagado
for(int x=9; x>=2; x--){
digitalWrite(x,LOW);
delay(500);
}
// Espera de 500mS
delay(500);
}
Ciclo FOR con diferentes incrementos
El ciclo FOR es muy versátil, También podemos usar incrementos de distintos valores, hay que tener cuidado de que el ciclo haga lo que tiene que hacer, que se puedan cumplir las condiciones para terminar el ciclo en el momento que se necesite terminar, y no se lleguen a dar ciclos infinitos por no cumplir con la condición para término del ciclo.
en este caso los incrementos y decrementos seran de 2 en 2. observa las dos difecencias, el cambio en el incremento del ciclo y la linea para prender o apagar el LED extra.
void setup(){
for(int val=2; val<=9; val++){
pinMode(val,OUTPUT);
}
}
void loop()
{
// Ciclo FOR de encendido
for(int x=2; x<=9; x=x+2){
digitalWrite(x,HIGH);
digitalWrite(x+1,HIGH);
// Espera de 500mS
delay(500);
}
// Ciclo de apagado
for(int x=9; x>=2; x=x-2){
digitalWrite(x,LOW);
digitalWrite(x-1,LOW);
delay(500);
}
// Espera de 500mS
delay(500);
}
Conclusiones:
Juega con las opciones del ciclo FOR, tiene una infinidad de usos que cuando se combinan con otros ciclos o condicionales nos van a permitir crear secuencias y acciones únicas.
El ciclo FOR es una de las herramientas más comunes y usadas en la programación, apréndela, juega con ella y ve sus posibilidades.