Fade in, fade out

Buonasera a tutti. Non so se sono nella giusta sezione. Se ho sbagliato, vi prego di scusarmi.
Speriamo di riuscire a risolvere il mio problema. Il circuito prevede l'accensione di due led, in maniera alternata, e simulando una dissolvenza. E fin qui, nessun problema. Ora viene il difficile... Io voglio ottenere il seguente effetto: mentre il primo Led si spegne, sempre in dissolvenza, l'altro si deve accendere (sempre in dissolvenza). Io, invece, mi trovo nella condizione che, alla fine di ogni ciclo, i LED sono entrambi accesi (dopo il primo ciclo) o entrambi spenti (dopo il secondo).
Allego, di seguito, lo SKETCH:

#define LEDP 9
#define LED_PIN 11
int i=0;
int x=0;

void accendi() 
{for (i=0; i<200; i++)
	{analogWrite(LED_PIN, i);
  	 delay(30); }
}

void spegni()
{for(i=200; i>=0; i--)
	{analogWrite(LED_PIN, i);
    	 delay(35);}
}

void accendi1()
{for(x=0; x<255; x++)
  	{analogWrite(LEDP, x);
   	 delay(30);}
}
void spegni1()
{for (x=255; x>=0; x--)
 	{analogWrite (LEDP, x);
    	 delay(30);}
}
void setup()
{
	pinMode (LED_PIN, OUTPUT);
	pinMode (LEDP, OUTPUT);
}

void loop() {
accendi();
accendi1();
spegni();
spegni1();
delay (300);
}

Dallo sketch, si evince che i PIN interessati sono il 9 e l'11 digitali.
Grazie a chi vorrà aiutarmi.

cioè intenti che contemporaneamente uno si deve accendere e l'altro si deve spegnere?

andreaber, si! Intendo che uno si deve accendere e l'altro si deve spegnere, in contemporanea.

ho provato a mixare i codice di accensione e spegnimento, ma c'è comunque un momento in cui sono entrambi accesi o entrambi spenti.

Nello stesso ciclo for da 0 a 255 a un pwm dai "i" all'altro "255-i"

ciao Sagittario_74

o fai come dice icio oppure devi rivedere la gestione del programma...un for() è "bloccante" fino alla sua conclusione quindi verrà eseguito solo quanto al suo interno e nulla più...nel tuo caso sei costretto a metterci un delay() all'interno perchè altrimenti il for() sarebbe eseguito così rapidamente che non te ne accorgeresti. In alternativa quindi potresti usare degli if() che verificano se devi accendere o spegnere ed il tempo passato; al loro interno incrementi e decrrementi il valore dei fade da eseguire...così puoi gestirti i tempi di sfasamento tra i due led.

Ok. la soluzione di icio, la provo subito e vediamo come va. L'implementazione degli if, ho provato a farla ma, o sbaglio qualcosa o qualcosa non va perchè un led resta sempre acceso. Mi faresti un esempio di sketch come lo pensi tu, con gli if?

Se cerchi
Aiutateci ad aiutarvi
E
La pappa è fatta

Ne avrai vantaggio

La soluzione più semplice è puramente elettronica: sullo stesso pin metti due LED, ognuno con la sua resistenza in serie, uno verso il positivo e uno verso massa. Con Arduino scollegato si accenderanno entrambi a metà luminosità.

Posto che un "for" è bloccante, puoi comunque usare un solo for per le accensioni e un altro per gli spegnimenti, mettendo i nell'analogWrite di un LED e 255-i nell'analogWrite dell'altro.

Grazie per la tua inutile risposta. Alla fine ho provato soluzioni diverse, come le ho pensate, fino a che ho trovato il bandolo della matassa. Ho risolto il problema, e di certo non con il tuo aiuto. Invece di essere acido, dovresti cercare di aiutare chi, come me, si trova in difficoltà, ai primi approcci con questa fantastica piattaforma. Aiuti come il tuo servono solo a far desistere i neofiti.

Ti ringrazio @DATMAN. Ho risolto il problema, via Software, ma di certo proverò anche la tua soluzione. Magari mi dà un miglior effetto dissolvenza.

... perdona ma NON sono d'accordo con il tuo commento nei confronti dell'utente Standardoil ... ti ha semplicemente indicato due discussioni (Aiutateci ad aiutarvi e La pappa è fatta) in cui si trova tantissimo codice già fatto che è d'aiuto in casi come il tuo ... se invece di prenderla come l'hai presa, gli avessi dato retta e cercato, in area Software, le due discussioni ... avresti trovato varie cosi che ti potevano essere utili ora e che ti sarebbero potute essere utili nel futuro.

Quindi ... diamoci una calmata e moderiamo i termini che ... nessuno è stato "acido", anzi ... ha cercato di darti le giuste indicazioni.

Guglielmo

Mi scuso. Non pensavo fossero discussioni, ma semplici prese di posizione.
chiedo scusa a @standardoil.

... posso capirlo ... Standardoil ha un modo tutto suo di dare un titolo alle discussioni, spesso, a dir poco, ... piuttosto stravagante :grin: ... ma si, sono tutte sue discussioni piuttosto educative che sono in area Software :wink:

Guglielmo

Che va anche bene che lo scrivo, cosa cercare

Visto che alcune sono in stiky...

Quindi dovrebbero essere "ghiotte" per chi inizia

E comunque
"aiutateci ad aiutarvi"
oltre ad essere in stiky ha anche un titolo che non è ne bizzarro ne difficile da comprendere

In effetti è vero: non sembra nemmeno un titolo dei miei
E questo dimostra che un titolo serio non è molto influente, semmai sono i titoli "pazzi" che attirano

Comunque:

Grazie
Stimo molto i tuoi complimenti

Che poi...

Se lo OP avesse seguito i miei consigli avrebbe trovato un esempio di quello che voleva fare

Ma devo ammettere che si tratta di un esempio forse "troppo complesso"
Sia per quanto riguarda gli obiettivi: un simulatore di albe e tramonti con controllo lineare della luminosità e della tinta della luce

Che per quanto riguarda la programmazione:
Definizione di strutture descriventi lo stato desiderato
Array di tali strutture per descrivere per punti l'evoluzione della luce
Funzioni di interpolazione per interpolare (appunto) lo stato "istantaneo" dell'evoluzione tra due stati descrittivi e restituisce una struttura
Fuunzione di esecuzione, che accetta in ingresso una struttura

Insomma
Un bel lavoro ma un po' pesante per un principiante

Quindi oggi ho aggiunto un altro esempio

Meno performante, ma più comprensibile