Far eseguire istruzioni contemporaneamente

Ciao io su internet ho trovato questo codice per comandare una striscia led RGB
(Arduino Code | RGB LED Strips | Adafruit Learning System)

// Colore turbolenza! collegare un LED ai pin PWM RGB come indicato
// Nelle #defines
// Dominio pubblico, buon divertimento!
 
#define REDPIN 5
#define GREENPIN 6
#define BLUEPIN 3
 
#define FADESPEED 5      // rendono questo superiore a rallentare
 
nulla di setup ()  {
  pinMode ( REDPIN , OUTPUT );
  pinMode ( GREENPIN , OUTPUT );
  pinMode ( BLUEPIN , OUTPUT );
}
 
 
vuoto ad anello ()  {
  int r , g , b ;
 
  // Dissolvenza dal blu al viola
  per  ( r =  0 ; r <  256 ; r ++)  { 
    analogWrite ( REDPIN , r );
    delay ( FADESPEED );
  } 
  // Svanire dal viola al rosso
  per  ( b =  255 ; b >  0 , b -)  { 
    analogWrite ( BLUEPIN , b );
    delay ( FADESPEED );
  } 
  // Svanire dal rosso al giallo
  per  ( g =  0 ; g <  256 ; g ++)  { 
    analogWrite ( GREENPIN , g );
    delay ( FADESPEED );
  } 
  // Svanire dal giallo al verde
  per  ( r =  255 ; r >  0 ; r -)  { 
    analogWrite ( REDPIN , r );
    delay ( FADESPEED );
  } 
  // Dissolvenza dal verde al Teal
  per  ( b =  0 ; b <  256 ; b ++)  { 
    analogWrite ( BLUEPIN , b );
    delay ( FADESPEED );
  } 
  // Svanire dal verde acqua al blu
  per  ( g =  255 ; g >  0 ; g -)  { 
    analogWrite ( GREENPIN , g );
    delay ( FADESPEED );
  } 
}

In pratica i pin dell'arduino erogano una tensione come ho indicato nel grafico allegato (spero sia chiaro).
Bene io volevo sapere se è possibile far eseguire all'arduino un'altra serie di istruzioni quando il pin del led blu dell'RGB eroga una tensione maggiore di 0V. Sto progettando un presepe e mi serve che quando cala la notte si accendano le stelle e le luci del paese ma non tutto contemporaneamente, devono essere comandate da un codice che dia loro una sequenza.

Vi ringrazio in anticipo !

Devi eliminare l'istruzione delay ed utilizzare al suo posto la millis. Delay blocca il codice e non puoi fare altro nel contempo. Con millis invece puoi concatenare una sequenza di condizioni per non bloccare il codice nel loop e contemporaneamente eseguire compiti diversi.

Inizia studiando l'esempio "BlinkWithoutDelay" allegato all'IDE e poi leggiti anche questo mio articolo sulla programmazione dei compiti con millis.

No, non puó eseguire 2 istruzioni contemporaneamente ma puó farlo uno dopo l'altra velocemente che non vedi la differenza di tempo.

Come dice Leonardo la temporizzazione devi farla totalmente con millis() e non con delay().

Ciao Uwe

Ok grazie mille darò un'occhiata

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

:grin: :grin: :grin:

Ma dove lo hai preso questo codice ? ? ? ?

bellissime le funzioni

nulla di setup ()

vuoto ad anello ()

Secondo me aveva il traduttore automatico attivo. :sob:

si scusate era acceso e non me ne sono accorto

nid69ita:
Secondo me aveva il traduttore automatico attivo. :sob:

Ecco perchè non mi compilava! :grin: :grin: