Creare ciclo con condizione di entrata differente da quella di uscita

Buongiorno a tutti! Sono nuovo sul forum, ed avrei necessità di un aiuto da qualche esperto.. Vi spiego il problema.. A casa ho un plastico ferroviario, e ho deciso di controllare la segnaletica con Arduino uno (R3). Ho acquistato 10 sensori Vishay CNY70 (che come saprete sono dei Fotoaccoppiatori a basso voltaggio) e ho alcuni semafori con led bicolore (rosso, verde). Io frequento il 5º anno all'ITIS Armellini di Roma, e seguo il corso di Informatica e Telecomunicazioni, quindi ho chiesto consiglio ai miei professori di Informatica e Elettronica per risolvere la questione, ma non sono riuscito a risolvere. Vi spiego: Ho intenzione di collegare 3 segnali (quindi 6 led) alle uscite digitali di Arduino, e di collegare 5 sensori alle entrate analogiche l per poter sfruttare al meglio le capacità di arduino. Il lavoro che deve svolgere arduino è: rendere rosso il primo segnale quando il sensore 1 viene eccitato; rendere il segnale 2 rosso, il segnale 1 giallo (quindi rosso e verde) quando il sensore 2 viene eccitato; rendere il segnale 3 rosso, il 2 giallo e l'1 verde quando il sensore 3 è eccitato; rendere il segnale 3 giallo, il 2 verde e l'1 verde quando il sensore 4 viene eccitato e tutti verdi quando il sensore 5 viene eccitato. Ora, ho chiesto alla prof di informatica che mi ha indirizzato sulla creazione di 5 cicli while uno dentro l'altro, impostando come condizione di entrata/uscita lo stato di un sensore.. La mia domanda è questa.. Come potete vedere, la condizione di entrata deve essere differente da quella di uscita, dato che nel loop ci entra se il sensore 1 si eccita, ma esce dal ciclo quando il sensore 2 si eccita, entrando nel secondo ciclo, ecc... Esiste un modo di creare questo tipo di condizione?? Vi ringrazio per il supporto, e spero di essere stato chiaro!!! :)

Ciao, prima di tutto, essendo il tuo primo post, ti chiederei di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ... Grazie.

Guglielmo

P.S. ... prova a cercare e studiare il concetto di "macchina a stati finiti" ... e immagina come applicarlo nel tuo caso ;) Un esempio [u]molto semplice[/u] di applicazione lo trovi QUI

Il Vishay CNY70 non è un fotoaccoppiatore ma un sensore a riflessione con range di rilevamento 0-5mm.

Immagino che tu intenda metterlo sotto le rotaie o di fianco ad esse in modo da rilevare il passaggio del convoglio.

Certo che 5mm sono pochini, sarebbe stato meglio il Vishay TCRT5000 con un range tra 0.2-15mm.

Vi ringrazio tanto, ho dato uno sguardo al sito proposto e sono riuscito a risolvere il problema..

Vi ringrazio tanto

Un saluto