Explicacion de For

Hola chicos.

Es la primera vez que comento y tenia algunas dudas respecto a la estructura de “FOR”.

Es acerca de un ejemplo de uso de leds,switches y arrays.

1.-

Lo que he logrado comprender en esta estructura es que a la variable index se le va a sumar de 1 en 1,hasta llegar a ser menor de 4 con lo cual termina una especie de bucle.
Mi duda es que si a medida que va contando ,va asignando los OUTPUTS correspondientes, que pasa con el 4 y el 5 , ya que for nos indica < 4.

Como se pueden asignar el 4 y el 5 si se especifíca un limite con lo cual detener el bucle?

int inputPins = {2,3,4,5};
int ledPins = {10,11,12,13};

void setup()
{
for(int index = 0; index < 4; index++)
{
pinMode(ledPins[index], OUTPUT);
pinMode(inputPins[index], INPUT);
digitalWrite(inputPins[index],HIGH);
}
}

Simplemente los elementos en esos índices no son tomados en cuenta.

Todo índice de array inicia en cero, siendo 3 el último en uno de 4 elementos.

Si el tamaño no es constante, se puede determinar mediante la siguiente operación:

sizeof(ledPins) / sizeof(int) // Solo aplica si sus elementos son del tipo int

Se paso por alto el código que no esta puesto como debe ser.

Según lo que leo en esta parte

va asignando los OUTPUTS correspondientes, que pasa con el 4 y el 5

entiendo que tomas en cuenta esto

{2,3,4,5}

cuando lo que sucede con un array es esto

int inputPins[] = {2,3,4,5};// declaración y asignación de array
int inputPins[4]; // declaración de array

inputPins[0] = 2; //Asignando a la posición 0 el valor 2
inputPins[1] = 3; //Asignando a la posición 1 el valor 3
inputPins[2] = 4; //Asignando a la posición 2 el valor 4
inputPins[3] = 5; //Asignando a la posición 3 el valor 5

index hace referencia a la posición dentro del array y va desde 0 hasta el tamaño del array menos 1

Es así porque si mi array es de 4 posiciones estas serán la posición 0, 1, 2 y 3.

For recorre desde la posición 0 hasta 3 y en esta parte

pinMode(ledPins[index], OUTPUT);

ledPins[index] index sera un número comprendido desde 0 hasta 3 Como ejemplo que sea el 2

y ledPins[2] sera igual a

inputPins[2] = 4; //Asignando a la posición 2 el valor 4

el valor 4 que es el valor del pin 4 en arduino Supongo.

Entonces la sentencia queda asi en el caso que for tenga a index con valor de 2 durante la ejecucion.

pinMode(ledPins[index] , OUTPUT); pinMode(ledPins[2] , OUTPUT); pinMode(4 , OUTPUT);

Espero sea de ayuda esto y no canse o confunda al lector.