Mi potete aiutare con il mio sketch?

Un saluto al forum. :-)

Dunque, al mio sketch ho aggiunto un codice che mi permette di avere sul mio modellino dei carabinieri 1/24 l'accensione degl'indicatori direzionali (mettere le frecce! :-D) Però il seguente codice che ho inserito:

  digitalWrite(frecce, 1);
  delay(300);
  digitalWrite(frecce, 0);
  delay(300);

mi crea problemi; infatti i led gialli delle frecce si accendono e spengono solo dopo che il ciclo dei lampeggianti blu è terminato.

Io vorrei che funzionasse tutto contemporaneamente ai lampeggianti blu. Ho letto che si può usare l'istruzione millis(), ma siccome ho appena iniziato ad usare Arduino, non so come stilare il codice con questa nuova istruzione.

Mi potete aiutare per favore? Grazie. :-)

Il seguente è lo sketch che ho creato e caricato nel Attiny85 (montato nel modellino):

int ledBlu_1 = 4; //pin attiny85 che corrisponde al pin 13 Arduino
int ledBlu_2 = 3; //pin attiny85 che corrisponde al pin 12 Arduino
int frecce = 2;     //pin attiny85 che corrisponde al pin 11 Arduino


void setup() {
  pinMode(ledBlu_1, OUTPUT);
  pinMode(ledBlu_2, OUTPUT);
  pinMode(lfrecce, OUTPUT);
}


void loop() {
  
  //indicatori direzionali
  digitalWrite(frecce, 1);
  delay(300);
  digitalWrite(frecce, 0);
  delay(300);
  
  //lampeggianti blu

  //primo led
  //prima volta
  digitalWrite(ledBlu_1, 1);
  delay(30);
  digitalWrite(ledBlu_1, 0);
  delay(400);
  //secondo led
  digitalWrite(ledBlu_2, 1);
  delay(30);
  digitalWrite(ledBlu_2, 0);
  delay(400);
  //primo led
  //seconda volta
  digitalWrite(ledBlu_1, 1);
  delay(30);
  digitalWrite(ledBlu_1, 0);
  delay(400);
  //secondo led
  digitalWrite(ledBlu_2, 1);
  delay(30);
  digitalWrite(ledBlu_2, 0);
  delay(30);
  //una volta veloce primo led
  digitalWrite(ledBlu_1, 1);
  delay(30);
  digitalWrite(ledBlu_1, 0);
  delay(400);
  //accende e spegne insieme i ledBlu_1 2 ledBlu_2
  digitalWrite(ledBlu_1, 1);
  digitalWrite(ledBlu_2, 1);
  delay(30);
  digitalWrite(ledBlu_1, 0);
  digitalWrite(ledBlu_2, 0);
  delay(400);
}

prova a guardare questo esempio ;)

doppiozero: prova a guardare questo esempio ;)

Grazie per il link.

Quindi dovrei riscrivere tutto lo sketch o mi basta aggiungere l'istruzione millis() nel mio? Grazie.

lo devi riscrivere, aggiungere millis() e basta non serve a nulla ;)

doppiozero: lo devi riscrivere, aggiungere millis() e basta non serve a nulla ;)

Quindi non devo sostituire nella? Devo semplicemente aggiungere l'istruzione millis()? Ma devo usare anche l'if? Scusa se faccio tutte ste domande, ma non mi è tanto chiaro. :-) Mi puoi indicare tu qualcosina? Grazie.

Devi a studiarti come si usa la millis() prima QUI, poi QUI ed infine leggi anche QUI e QUI ... vedrai che ti sarà tutto più chiaro ;)

Guglielmo

ok. grazie.