ciclo while con due pulsanti

problema: ho due pulsanti, fintanto che premo (e tengo premuto) il pulsante 1 l'oggetto fa una cosa, se premo (e tengo premuto) il pulsante 2 l'oggetto ne fa un'altra, se non premo alcun pulsante l'oggetto non fa nulla...

con un solo pulsante è sufficiente un semplice ciclo while:

while(digitalRead(pulsante1) == HIGH){
    fai qualcosa;
}

come strutturo invece il codice per il problema sopra descritto, bastano due while in serie (purtroppo fino a sabato non ho arduino sotto mano per verificare)? e come evito problemi nel caso premessi entrambi in pulsanti?

Grazie a chiunque volesse aiutarmi...

hai dato troppo poche "notizie2 su quello che vuoi fare, e se al rilascio del pulsante tutto deve tornare allo stato precedente,

es: se fai while (digitalRead (1)== HIGH ) digitalWrite (13,HIGH);

in caso che premi il pulsante si accende il led (sull'arduino) ma poi rimane sempre acceso se non scrivi qualcosa che al rilascio di un pulsante lo fa spegere.

uhmm... quel "fai qualcosa" è riferito ad uno stepper, se premo il pulsante A ruota in senso orario, se premo il pulsante B in senso antiorario, se non premo alcun pulsante (o rilascio quello che sto premendo) si ferma e se ne sta fermo...

(per pilotare uno stepper non basta solo l'arduino ma ci va una scheda aggiuntiva sperando che non ci confondiamo con un servo)

di solito qualsiasi schedina che pilota uno stepper ha minimo due ingressi di comando STEP e DIR

sullo STEP ci va un impulso che fa girare lo stepper di un poco (di solito gli stepper con 200 impulsi fanno una rotazione completa)

DIR se viene messo a massa fa girare in un senso se viene messo al piu fa girare nell'altro senso

capisce che se ad ogni premuta di pulsante il motore si muove quasi nulla

una cosa che potresti fare (mi e venuta a mente al volo) è modificare il programmino

Blink without Delay facendolo lampeggiare velocemente (e da quio ricavi in treno di impulsi

con 2 if dovrebbe funzionare senza scomodare librerie

lo stepper si muove senza problemi (ho uno shield) avanti ed indietro... vorrei però controllarne i movimenti tramite pulsanti

Basta fare 2 while con ciascuna uno dei 2 pulsanti.

La cosa che non hai considerato é cosa deve fare lo sketch se premi entrambi i pulsanti? Entrambi in questo caso vuol dire anche con mezzo secondo di distanza.

Ciao Uwe

ok, quindi dici che due while in serie vanno bene... il discorso dei pulsanti premuti contemporaneamente è più per mania di controllo che non per reali esigenze... immagino che appunto prenda il sopravvento il pulsante premuto per primo, magari per pochi decimi di secondo...