problema di base

salve, stavo facendo alcune prove e mi sono accorto di una cosa.Premetto che sono un neofita e stò sicuramente postando una stupidaggine ma ho inserito il codice qui sotto e appena mando il codice ad arduino(nano) il led fa un lampaggio veloce e poi procede con il suo tempo impostato.A cosa è dovuto il lampeggio veloce iniziale?Premetto che fa la stessa cosa anche cambiando i tempi.

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);


}

// the loop function runs over and over again forever
void loop() {

  digitalWrite(13,LOW);   // turn the LED on (HIGH is the voltage level)
  delay(3000);              // wait for a second
  digitalWrite(13, HIGH);    // turn the LED off by making the voltage LOW
  delay(3000);              // wait for a second
}

---nota del moderatore: mi raccomando, attenzione al linguaggio che si usa, grazie. - gpb01

Dovrebbe essere un segno di vita del bootloader. Puoi toglierlo, se è proprio necessario, ma devi riflashare il bootloader, cosa non esattamente semplice se hai appena iniziato e, soprattutto, potenziamente pericolosa: potrebbe rendere il tuo microcontrollore un bel fermacarte.

non è possibile farlo via software modificando il programma?magari cambiando uscita …non saprei

ais26: non è possibile farlo via software modificando il programma?magari cambiando uscita ...non saprei

Se colleghi un LED esterno (... mi raccomando, con la sua resistenza in serie) ad un altro pin, puoi fare quello che vuoi. Il LED sulla scheda (... collegato al pin 13), in fase di accensione, è controllato dal bootloader e quindi, su quello, NON puoi fare nulla senza modificare il bootloader (... cosa non certo per chi inizia).

Guglielmo

grazie mille a tutti per la cortesia, in sotanza devo solo cambiare l'indirizzo dell'uscita.Ora ho un altro problemino, visto che quella uscita programmata avrà tempi lunghi(parliamo di un irrigatore) ho la necessità premendo un altro pulsante(input) di eccitare una uscita per un determinato tempo.Leggevo nei vari post che una volta che arduino effettua una pausa(delay) non esegue nessun altro comando.COme posso risolvere il problema quindi di eccitare una altra uscita se arduino stà gia' eseguendo un delay.Le mie uscite devono quindi risultare indipendenti l0una dall'altra.Spero di essere stato chiaro.

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(1, OUTPUT);


}

// the loop function runs over and over again forever
void loop() {

  digitalWrite(1,LOW);   // turn the LED on (HIGH is the voltage level)
  delay(3000);              // wait for a second
  digitalWrite(1, HIGH);    // turn the LED off by making the voltage LOW
  delay(3000);              // wait for a second
}

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

Grazie tante Guglielmo mi studio la cosa.....