Uscire da un ciclo di istruzioni non appena la condizione diventa falsa

Salve a tutti, sono nuovo e avrei bisogno di un chiarimento riguardo la programmazione, forse magari è anche una domanda banale... ma non riesco a venirne a capo.
Io devo fare andare dei led in una certa sequenza quando un pin è HIGH e in un altra sequenza quando è LOW.
Ad esempio in un programma così:

int pin;

void setup() {

pinMode(11,INPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);

}

void loop() {

pin=digitalRead(11);

if(pin==HIGH){
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
delay(50000);
}

else if(pin==LOW){
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
delay(50000);
}
}

Se il pin passa da HIGH a LOW o viceversa devo aspettare che finisca il ciclo precedente e non cambia immediatamente come vorrei...
Posso mettere qualcosa al posto dell' IF che mi possa risolvere il problema? oppure altre soluzioni?
Grazie

@longotia: in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu hai già posto la stessa domanda QUI.

Non solo, in quel thread ti stanno già rispondendo ed è veramente poco cortese abbandonare una discussione e chi ti stava aiutando, per venire di qua a porre la stessa domanda come a significare ... "mica mi fido tanto, ora vado a verificare da un'altra parte". ::slight_smile:

Poi, NON avendolo tu ancora fatto, ti chiedo di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto :wink:) e di leggere con attenzione il REGOLAMENTO.

Infine, per rispetto verso chi ti stava già aiutando nell'altro thread, questo tuo thread viene chiuso e ti prego di continuare dove avevi cominciato (... e dove ti stanno rispondendo). Grazie.

Guglielmo

P.S.: Ah, ti ricordo che, in conformità al suddetto regolamento, punto 7, il codice DEVE essere racchiuso tra i tag CODE.