Eseguire due void loop in un unico codice con arduino uno

Salve, volevo provare a chiedere a questo forum perché vedo che molta gente trova le risposte alle proprie domande e ne avrei qualcuna anche io. sto cercando di creare un codice che permette l'accensione e lo spegnimento di 3 led e di una striscia led in dissolvenza. il punto è che per questo codice ho voluto utilizzare un tempo calcolato da arduino utilizzando la funzione millis(), ma unendo le due parti mi dava diversi problemi e ho cercato online se si potessero creare una sottospecie di 2 void loop per eseguire da una parte il tempo che scorre e visualizzarlo sul monitor seriale mentre l'altro eseguiva la parte di codice in cui accende e spegne i vari led e striscia led. sto riscontrando vari problemi perché mi fa partire il conteggio del tempo ma nessun led si accende o spegne e non viene tenuto minimamente conto il conteggio del tempo. se potete aiutarmi vi ringrazio immensamente e vi allego il codice che ho creato nel caso qualcuno notasse errori molto gravi che mi sono sfuggiti.

int led1 = 2;
int led2 = 3;
int led3 = 4;

#define RED_LED_PIN 11
#define GREEN_LED_PIN 10
#define BLUE_LED_PIN 9

const unsigned long duratanotte = 60000; 
const unsigned long duratagiorno = 420000; //durata giorno 420.000 (7 min)
unsigned long tempoinizio = 0;
int valorefadeSL = 0;
int valorefadeL = 255;
unsigned long tempotrascorso = 0;

void setup() {
 pinMode (led1, OUTPUT);
 pinMode (led2, OUTPUT);
 pinMode (led3, OUTPUT);
 tempoinizio = millis(); //inizializzo il tempo (millis tiene conto del tempo da quando viene avviato il programma)
Serial.begin (9600);
Serial.print(tempoinizio);
delay(1000);
}


void loop() {
 
  tempotrascorso = millis() - tempoinizio; // Calcolo del tempo trascorso
  Serial.print("Tempo trascorso: ");
  Serial.print(tempotrascorso);
  Serial.println(" millisecondi");

  delay(100); 
 }

 void codiceprincipale(){

  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);

  digitalWrite(11, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(9, HIGH);

 
  if (tempotrascorso < 60000){

    for (valorefadeSL = 0 ; valorefadeSL < 255; valorefadeSL++){

      analogWrite (11, valorefadeSL);
      delay(100);
      analogWrite (10, valorefadeSL);
      delay(100);
      analogWrite (9, valorefadeSL);
      delay(100);
    }

    for (valorefadeL = 255 ; valorefadeL > 0; valorefadeL--){

      analogWrite (2, valorefadeL);
      delay(100);
      analogWrite (3, valorefadeL);
      delay(100);
      analogWrite (4, valorefadeL);
      delay(100);
    }
  }

  if (tempotrascorso > 60000){

      for(valorefadeSL = 255 ; valorefadeSL > 0; valorefadeSL--){

      analogWrite (11, valorefadeSL);
      delay(100);
      analogWrite (10, valorefadeSL);
      delay(100);
      analogWrite (9, valorefadeSL);
      delay(100);
      }

      for (valorefadeL = 0 ; valorefadeL < 255; valorefadeL++){

      analogWrite (2, valorefadeL);
      delay(100);
      analogWrite (3, valorefadeL);
      delay(100);
      analogWrite (4, valorefadeL);
      delay(100);
      }
    }

   tempoinizio = millis();
}

:warning:
Ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato.
Grazie.

A quanto detto da UKHeliBob aggiungo ...

... cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO della sezione Italiana del forum, (... e, per evitare future possibili discussioni/incomprensioni, prestando sempre molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

P.P.S.: Evitate di utilizzare la traduzione automatica fatta dal browser ... vi impedisce di capire la lingua della sezione dove andate a scrivere ...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.