Brunello:
non puoi usare la stessa variabile tempoCorrente nei due if
Altrimenti il secondo if >=5000 non te lo esegue mai perche' lo cambi ogni 3000 mS
Esatto, ne deve usare un'altra
Che ne so sotto tempo corrente dove è dichiarato scrivi:
unsigned long tempoCorrente1=0;
e usalo correttamente uno in un if e uno in un altro
Semplicemente studia quello che ti ha linkato Gugliemo per capire benissimo millis!
Millis è il tempo dall'accensione di Arduino calcolato in ms. Tu questo tempo lo puoi gestire come ti pare poi Ovviamente siccome NON LO PUOI ALTERARE, ovvero non lo puoi mandare a zero oppure sottrargli qualcosa, devi studiare con altre variabili un modo per renderlo utile. Mentre il delay tu gli dici come è, a millis non puoi dirlo.
Vedi per esempio BlinkWithoutDelay
https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay