Nella seconda versione che hai postato, lumi la inizializzi, la aumenti/diminuisci a seconda del tasto del remote.
Ma poi NON la usi, non c'e' più nessun analogWrite (r1, lumi); !!!
un consiglio, per fare debug e vedere da te dove stai passando nel programma.
Nella setup, come prime istruzioni aggiungi:
delay(1000);
Serial.begin(9600);
Questo permette di inviare dei dati al monitor di arduino IDE
Ora nel modo0:
void modo0()
{ if (PP==HIGH)
{ analogWrite (r1, lumi);
analogWrite (g1, lumi);
analogWrite (b1, lumi);
analogWrite (r2, lumi);
analogWrite (g2, lumi);
analogWrite (b2, lumi);
Serial.print("Modo 0: lumi="); Serial.println(lumi);
}
else
{ analogWrite (r1, 0);
analogWrite (g1, 0);
analogWrite (b1, 0);
analogWrite (r2, 0);
analogWrite (g2, 0);
analogWrite (b2, 0);
Serial.print("Modo 0: spento");
}
}
Altro suggerimento, creati anche una costante per il numero di modi:
const K_MAXMODI=3;
nel codice:
if(modo <3) => diventa if(modo<K_MAXMODI)
anche nell'altro punto
modo = 3; => diventa modo=K_MAXMODI;