Pues tienes varios problemas en el código.
He reconvertido tu código a C (tengo los arduinos conectados a 1000 cosas y por no toquetearlos…);
#include <stdio.h>
int led = 13;
int arrayDelay[] = {100, 200, 300, 400, 500, 600, 700, 800, 900, 999};
int main() {
int delaysito;
while(1==1){
for(delaysito = 1; delaysito <= 10; delaysito ++) {
printf("%d", arrayDelay[delaysito]);
printf("\n");
}
printf("Segunda parte\n");
for(delaysito = 10 ; delaysito == 10; delaysito -=1) {
printf("%d", arrayDelay[delaysito]);
printf("\n");
}
}
}
Esta es la salida que obtengo:
Nikola:pruebas pepe$ gcc -o kk codigoweb.c
Nikola:pruebas pepe$ ./kk
Primera parte
200
300
400
500
600
700
800
900
999
0
Segunda parte
0
Primera parte
200
300
400
500
600
700
800
900
999
0
Segunda parte
0
Problemas:
-Los vectores, en programación, no van de 1 a N, sino de 0 a N-1
int arrayDelay[] = {100, 200, 300, 400, 500, 600, 700, 800, 900, 999};
son 10 elementos, pero se cuentan como 0,1,2,3,4,5,6,7,8,9
-los for funcionan desde el valor inicial (antes del primer punto y coma, y eso sólo se ejecuta una vez), condición de parada (que se ejecuta en todas las iteraciones) e incremento (positivo o negativo y se ejecuta en todas las iteraciones, excepto la primera). En el primer for, lo hace casi bien, va desde el elemento 1 (aunque debería ser el 0) hasta el 10 (que debería ser el 9). Si quieres recorrer el vector entero, deberías hacer;
for(delaysito = 0; delaysito < 10; delaysito ++)
En el segundo for, le asignas valor 10, y le dices que la condicion de parada sea que delaysito sea 10, con lo que sólo entra la primera iteración, luego ya no se cumple y sale del for. Si lo que quieres es que vaya de 10 a 0, deberías poner;
for(delaysito = 10; delaysito >= 0; delaysito--)
CONCLUSIÓN; sí te está haciendo el loop, pero tienes fallos en tu código y no hace lo que quieres que haga, jeje
Creo que quieres que te haga algo similar a esto;
int led = 13;
int arrayDelay[] = {100, 200, 300, 400, 500, 600, 700, 800, 900, 999};
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
for(int delaysito = 0; delaysito < 10; delaysito ++) {
digitalWrite(led, HIGH);
delay(arrayDelay[delaysito]);
digitalWrite(led, LOW);
delay(arrayDelay[delaysito]);
}
for(int delaysito = 10 ; delaysito >= 0; delaysito -=1) {
digitalWrite(led, HIGH);
delay(arrayDelay[delaysito]);
digitalWrite(led, LOW);
delay(arrayDelay[delaysito]);
}
}