Lampeggio indipendente LED + crossfade

Maubarzi, grazie per l'interessamento.
Praticamente mi serve che i due Led facciano un crossfade tra di loro, ma che ognuno di essi rimanga acceso per tempi differenti, ad esempio il led rosso 1 minuto e quello rosa 2 minuti.
Nel primo codice pistato funziona tutto ma i led restano accesi per lo stesso tempo, nel secondo "dovrebbero" restare accesi per tempi differenti, invece il led rosa non si accende neanche

Quindi il fade ha lo stesso tempo in accensione che in spegnimento e sempre lo stesso per entrambi i led?
Quello che cambia è solo il tempo di accensione?
Lo spegnimento è uguale all'accensione?
Quindi, dopo la partenza assieme, i due led si dovrebbero sfalsare, giusto?

Vediamo un po' il codice.

#define colour_delay 200            //Define the delay between changing colours in ms
#define time_at_colour 100           //Time to stay on a colour in ms
#define time_at_colour2 500

...

  led_delay = (colour_delay - time_at_colour) / 255; // (200 - 100) / 255 = 100 / 255 = 0,...
  led_delay2 = (colour_delay - time_at_colour2) / 255; // (200 - 500) / 255 = -300 / 255 ...

Già questi valori mi paiono un po' sballati.

  if(millis() - TIME_LED >= led_delay){
    TIME_LED = millis();
    LED();
  }

if(millis() - TIME_LED >= led_delay2){
    TIME_LED = millis();
    LED2();
  }

Quì scatta il precedente suggerimento su TIME_LED2
Perchè, assumiamo che led_delay assuma valori sensati e sia inferiore a led_delay2
Quando è rispettata la condizione del primo if, lancia LED() e mette TIME_LED = millis() quindi automaticamente non è rispettata la if successiva perchè si è aggiornato TIME_LED e quindi LED2 non scatta mai perchè si riparte dallo stesso riferimento e arriverà sempre prima il primo if.
Se invece fosse led_delay2 quello inferiore, scatterebbe prima il secondo if reimpostando sempre TIME_LED, in questo caso sarebbe il primo if a non essere mai eseguito.

Ci siamo fino a qui?

Maurizio

Sì, adesso inizia a schiarirsi.
Il listato originale prevede 6 led che devono fare cross fade in sequenza tra di loro.
Quindi fade in led1, led1 acceso n secondi, fade out led1 fadein led2......
Però a me interessa che un led resti acceso più di un altro, il tempo di fade mi va bene che sia uguale per tutti.
Per il listato che ho postato con due soli led per semplificare mi interessa che il led rosa resti acceso più tempo di quello rosso.

Allora prova a modificare lo sketch in base a quello che ho scritto nel post precedente e poi ripartiamo l'analisi da li.
Ok?
Così ci avviciniamo in modo incrementale alla possibile soluzione.

Maurizio

Maurizio, ho apportato le modifiche che hai detto e in effetti le cose sono cambiate, i led si accendono ma è cambiato il tempo di fade; il tempo di accensione è rimasto invariato.
Per la modifica che serve a me credo di aver risolto con il contatore, devo solo fare una prova "a banco" e poi ti dico il risultato.
Grazie comunque per i suggerimenti, sei stato di grande aiuto