Uscita impulsiva per 3 secondi

Come promesso carico il codice e spiego il funzionamento...

Chiaramente lo sketch inizialmente è stato preso dagli esempi di futura elettronica da dove ho acquistato la simpatica shield 6IN/6OUT/6Analog e l'ho manipolato:

La scheda è in continuo ascolto sulla seriale e in base ai caratteri ricevuti compie delle azioni,ad esempio:

se digito sulla serile monitor dell'IDE arduino 1.03 :

"O1" arduino accende il relè n.1 sulla scheda ma bensì relativo al pin7
"O2" arduino accende il relè n.2 sulla scheda ma bensì relativo al pin8 ...etc..etc fino al relè n.6

"I1" arduino controlla lo stato dell'ingresso fisico n.1 sulla scheda ma bensì relativo al pin 2 digitale
"I2" arduino controlla lo stato dell'ingresso fisico n.2 sulla scheda ma bensì relativo al pin 3 digitale

Io ho cercato di implementare grazie all'aiuto di Leo e gpb01 un'altra funzione ovvero :

"J1" arduino accende il rele n.1 sulla scheda per 2 secondi e poi la spegne
"J2" arduino accende il rele n.2 sulla scheda per 2 secondi e poi la spegne etc..etc..

Ora ho incontrato un problema...ovvero se invio due comandi consecutivi tipo "J1 J2" il sistema non risponde in multitasking bensì accende prima il Relè 1,dopo due secondi spegne il Relè 1,
poi accende il relè 2,dopo due secondi spegne il Relè 2...

Io volevo usare millis() proprio per evitare i ritardi nel codice...come posso fare ???
Il problema potrebbe essere legato ai Switch-Case creati ??

Grazie se avete ancora la pazienza di seguirmi...vi ringrazio già in anticipo...