Problema con strisce led

Buona sera, sono nuovissimo del forum e poco pratico di programmazione di arduino, ma sono sicuro che seguendo qua e la riuscirò a capirci qualcosa.

Passo subito alla mia domanda.

Vorrei ricreare un affetto giorno con delle strisce a led che si accendandano nel momento in cui il timer del trasformatore di arduino si accende fa il boot e poi inizia il programma bene ora diciamo che alle ipotetiche 08:00 si accende la striscia collegata al pin 4 e va incrementandosi fino al 40 % della sua luminosità se non erro da una scala da 0 - 255 fino a 110ca) be a questo punto si accende la striscia led collegata al pin 5 e anchesso cresce d'intensità fino a 110 mentre quella collegata al 4 va diminuendo a 60 (sempre secondo scala) bene il tutto per 5/6 strisce come posso gestirle??? io ho il codice per gestire una striscia, ma non riesco a capire come fare per gestirne diverse sovrapponendo i comandi di accensione e spegnimento.

Vi posto il codice che ho ricavato da un forum:

int ledPin = 11; // Dichiara il PIN di arduino incaricato di gestire il fading

void setup() {
// Routine di inizializzazione, obbligatoria ma nel nostro caso rimane vuota
}

void loop() {
// Esegue un aumento progressivo della luminosità da 0 a 255 (massimo) con step di 5 punti
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// Invia il valore al mosfet (0-255):
analogWrite(ledPin, fadeValue);
// Attende 30 millisecondi prima in modo da poter visualizzare l'effetto di dimmeraggio
delay(30);
}

// Esegue una diminuzione progressiva della luminosità da 255 a 0 (massimo) con step di -5 punti
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
// Invia il valore al mosfet (0-255):
analogWrite(ledPin, fadeValue);
// Attende 30 millisecondi prima in modo da poter visualizzare l'effetto di dimmeraggio
delay(30);
}
}

Devo gestire 5/6 strisce led per l'effetto alba tramonto in un acquario con i seguenti colori 1 striscia rossa una viola una bianca calda una blu e due bianco ghiaccio

Grazie per le risposte e gli "insulti" che arriveranno :slight_smile: :slight_smile: :slight_smile: :slight_smile:

Iniziando da una spruzzata di punteggiatura che non farebbe male...

int ledPin = 11;    // Dichiara il PIN di arduino incaricato di gestire il fading
// dichiari ulteriori pin validi PWM per gestire altri fading
int ledPin2 = 9;

void setup()  {}

void loop()  {
  // Esegue un aumento progressivo della luminosità da 0 a 255 (massimo) con step di 5 punti
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
    // Invia il valore al mosfet (0-255):
    analogWrite(ledPin, fadeValue); 
    analogWrite(ledPin2, fadeValue); 
    // Attende 30 millisecondi prima in modo da poter visualizzare l'effetto di dimmeraggio
    delay(30);                           
  }

Sostanzialmente se vuoi pilotare due strisce in maniera identica assieme. Se vuoi decidere in base al altre cose, che so ad esempio una variabile di tempo letta da un RTC, puoi utilizzare delle istruzioni "if"

http://arduino.cc/it/Reference/If

Fede

??? purtroppo di inglese ci capisco ben poco... comunque con un orologio e le istruzioni if dovrei riuscirci...

Hai altri dubbi?

Grazie x le correzioni... Non mi è chiaro peró come fare per far funzionare le strisce insieme... Ovvero mentre una esegue il comando l'altra indipendentemente ne esegue un'altro

Col ciclo if di cui sopra e magari senza delay() ma con millis()

e una cosa del genere??? potrebbe funzionare???

int ledPin = 11; // Dichiara il PIN di arduino incaricato di gestire il fading

void setup() {
// Routine di inizializzazione, obbligatoria ma nel nostro caso rimane vuota
}

void loop() {
// Esegue un aumento progressivo della luminosità da 0 a 255 (massimo) con step di 5 punti
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// Invia il valore al mosfet (0-255):
analogWrite(ledPin, fadeValue);
// Attende 30 millisecondi prima in modo da poter visualizzare l'effetto di dimmeraggio
delay(36000); // Con 36000 millisencondi, considerando che i cicli di aumento sono 51
// avrai circa mezz'ora perchè l'intensità luminosa arrivi al massimo
}

delay(25200000); // Questa pausa corrisponde a 7 ore, le luci rimarranno accese 7 ore
// per poi passare alla routine seguente che effettua il fade out

// Esegue una diminuzione progressiva della luminosità da 255 a 0 (massimo) con step di -5 punti
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
// Invia il valore al mosfet (0-255):
analogWrite(ledPin, fadeValue);
// Attende 35 secondi prima in modo da poter visualizzare l'effetto di dimmeraggio
delay(36000); // Anche qui impiegherà mezz'ora per spegnere i led
}
}

int ledPin = 12; // Dichiara il PIN di arduino incaricato di gestire il fading

void setup() {
// Routine di inizializzazione, obbligatoria
delay(18000) //Tempo di attesa di circa 15 minuti prima di iniziare l'azione di accensione seconda striscia led
}

void loop() {
// Esegue un aumento progressivo della luminosità da 0 a 255 (massimo) con step di 5 punti
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// Invia il valore al mosfet (0-255):
analogWrite(ledPin, fadeValue);
// Attende 30 millisecondi prima in modo da poter visualizzare l'effetto di dimmeraggio
delay(36000); // Con 36000 millisencondi, considerando che i cicli di aumento sono 51

}

delay(25200000); // Questa pausa corrisponde a 7 ore, le luci rimarranno accese 7 ore
// per poi passare alla routine seguente che effettua il fade out

// Esegue una diminuzione progressiva della luminosità da 255 a 0 (massimo) con step di -5 punti
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
// Invia il valore al mosfet (0-255):
analogWrite(ledPin, fadeValue);
// Attende 35 secondi prima in modo da poter visualizzare l'effetto di dimmeraggio
delay(36000); // Anche qui impiegherà mezz'ora per spegnere i led
}
}

Salve a tutti, sono nuovo del forum. Sto acquistando arduino e iniziando a leggere qualcosa sull'uso di questo meraviglioso oggetto.
Mi intrometto alla discussione, perchè anche io dovrei fare una plafoniera led per acquario che sia programmabile e dimmerabile.
Il tutto dovrebbe contenere un pannello lcd e dei pulsanti utili alla programmazione dell'accensione e dello spegnimento. Inoltre si potrebbe
anche inserire una sonda per rilevare la temperatura dell'acqua.... e leggerla sul pannello lcd.

Credo che con arduino si possa gestire una cosa del genere, ma ho bisogno di voi per capire ed impostare tutto.
Spero vogliate aiutarmi al conseguimento di questa sfida.... per me molto ardua. :~
Grazie.