Arduino Forum

International => Italiano => Software => Topic started by: agarest on Feb 22, 2016, 11:03 am

Title: Avviare programma diverso in base al tasto premuto all'avvio
Post by: agarest on Feb 22, 2016, 11:03 am
Buongiorno a tutti,
probabilmente è un argomento già trattato ma ho cercato ovunque e non ho trovato nulla, probabilmente non so bene cosa cercare.

In pratica io vorrei caricare in Arduino uno sketch contenente 2 programmi diversi (non molto articolati) e poi far si che si avvii un programma o l'altro in base a quale tasto (ingresso digitale) tengo premuto all'accensione di Arduino.

E' possibile da fare? Se si come?
A me è venuto in mente di poter mettere un controllo dell'ingresso digitale del pulsante nel void setup e da li richiamare un void loop diverso in base allo stato dell'ingresso oppure usare un ciclo for...
Come potrei fare?


Grazieee!!!
Title: Re: Avviare programma diverso in base al tasto premuto all'avvio
Post by: nid69ita on Feb 22, 2016, 11:08 am
Nel setup() come dici tu controlli l'input.
Metti una variabile con valore 1 oppure 2 a seconda di quale funzione deve fare.
Poi nella loop() un semplice if su quella variabile. eventualmente puoi anche "spezzare" il programma in funzioni void

esempio:

Code: [Select]
byte QualeFunz=0;
...
void setup()
{ ... decido quale programma, QualeFunz varrà 1 o 2 a seconda
}

void loop()
{ if(QualeProgramma==1)
  { programmaA();
  }
  else
  { programmaB();
  }
}

void programmaA()
{  ...
}
void programmaB()
{  ...
}


Title: Re: Avviare programma diverso in base al tasto premuto all'avvio
Post by: agarest on Feb 22, 2016, 12:21 pm
Ottimo, grazie mille!
Funziona perfettamente!

Buona giornata!
Title: Re: Avviare programma diverso in base al tasto premuto all'avvio
Post by: uwefed on Feb 22, 2016, 05:37 pm
Se il pin di scelta deve essere controllato solo all'acensione puoi anche chiamare la funzione nel setup e all interno fare un ciclo eterno con while(1) o con for() come lo fa loop()

serve comunque un loop() vuoto.
Ciao Uwe