Problema ricezione segnale IR

Salve a tutti!
Volevo chiedervi una mano su un problema che non mi ha fatto chiudere occhio!
Sto realizzando una semplice lampada RGB. Evito di spiegarvi nel dettaglio tutto il codice che ho già scritto perchè è davvero molto!
Il problema che ho è il seguente:

Attraverso il mio telecomando attivo un determinato effetto che in base al numero che premo mi predisporrà la medesima quantità di colore da poter scegliere(es. premo 4, avrò 4 colori).
La gestione dei colori avviene in 2 modi:
1)Con le freccette su e giù imposto la luminosità di un colore tra Rosso, Verde e Blu e premo invio per confermare
2)Se premo invio da telecomando e tutti e 3 i colori sono = 0 allora verra scelto un colore casuale

Il problema è che ogni volta, scegliendo anche quantità di colori diversi, premo invio per un colore random e anche il successivo viene scelto casualmente. Dopo un pò ho capito che è dovuto al fatto che premendo per troppo tempo(parlo anche di un quarto di secondo!) il pulsante invio, arduino è come se dovesse prima elaborare quel treno di "invio" e poi il resto.

Ho provato di tutto: via software impostando il valore da leggere ad 1 invece del codice del tasto invio, delay ovunque, ho seguito anche lo schema del'IR con un condensatore più grande e una resistenza più alta, ecc...ma nulla

Penso che posso aggirare il tutto solo via software, come posso fare?

Grazie mille!

Secondo me devi triggerare le azioni non sullo stato del valore di tasto ricevuto ma al suo cambiare.

nel senso ricevi 20 volte il codice di ENTER l' azione deve avvenire solo la prima volta e le altre volte ignorate.
Questo si fa con una variabile di stato dove viene memorizzato il valore se EMTER premuto o no.

Ciao Uwe

Ti ringrazio per l'interessamento!

Purtroppo ci ho già provato in vari modi ma nulla da fare!

Giusto per esserne certi, vediamo se ho capito cosa intendi(lo scrivo in maniera schematica):

pulsante = segnale ricevuto

do{
if(pulsante == pulsante ok)
pulsante = 0; //non è un valore valido
RiconosciPulsantePremuto(); //Richiama la funzione per il riconoscimento del pulsante premuto
}while(pulsante != ok);

Intedevi una cosa del genere?

Grazie ancora per l'aiuto!