No consigo salir de un bucle.

Buenas!! Escribo porque tengo un problema.
Estoy programando una lampara con Arduino y unos cuantos leds. Tiene distintos modos de iluminación, entre ellos un rainbowCycle().
Para cambiar de modo hay que pulsar un botón conectado al pin 6, todo va genial hasta que llego a este modo rainbowCycle().
El problema es que no vuelve a cambiar de modo cuanto llega a este anteriormente mencionado, ya que entra en un bucle for del cual no es fácil salir.
No sé si me he explicado bien, adjunto el código de arduino de este modo.
Muchas gracias de antemano.

void rainbowCycle(uint8_t wait){
uint16_t i, j;

for(j=0; j<256*5; j++) {
for(i=0; i < leds.numPixels(); i++) {
setPixel(i, Wheel(((i * 256 / leds.numPixels()) + j) & 255));
}
leds.show();
delay(50);
delay(wait);
}
}

uint32_t Wheel(byte WheelPos){
WheelPos = 255 - WheelPos;
if(WheelPos < 85) {
return leds.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
return leds.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return leds.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

Saludos.

Primero, por favor pon el código de acuerdo al punto 7 de las Normas del foro.

Después, pon el código completo porque con eso que has puesto no hacemos nada. No sabemos ni siquiera que librería usas (y hacer clarividencia tiene otro precio).

Por otro lado no hay ningún lazo for() del cual no sea fácil salir, ya que se sale con un break o termina solito cuando llega al limite de la variable de control (salvo que haya algún error de programación, claro).

Saludos

PD: qué valores pones en "wait"?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.