problema con il while

buonasera.... ho un problema con il ciclo while. praticamente vorrei fare in modo che quando nessuno di due pulsanti è premuto sul monitor seriale venga scritto una frase mentre quando premo uno dei due pulsanti venga scritto un' altra frase. lo sketch è questo ma non funziona perché sul monitor seriale viene scritto sempre la prima frase.

int pulsante=7;
int pulsante1=8;
void setup(){
pinMode(pulsante,INPUT);
pinMode(pulsante1,INPUT);
Serial.begin(9600);
}
void loop(){
pulsante=0;
pulsante1=0;
while(pulsante==0 && pulsante1==0){
int p=digitalRead(pulsante);
int p1=digitalRead(pulsante1);
Serial.println("sono nel while");
delay(1000);
}
delay(1000);
Serial.println("sono uscito dal while");

}

Due cose ...

  1. ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

  2. non è che le variabili "pulsante" e "pulsante1" si aggiornano da sole eh ! ... per aggiornarle devi leggere sempre lo stato del pin con la digitalRead() :wink:

Guglielmo

Edit: per il punto 1 mi sono sovrapposto con Nid69ita :smiley:

stai facendo moooolta confusione tra pulsante/pulsante1 che sono i numeri dei pin con p/p1 che sono i valori letti da quei pin.
Fai una bella cosa, prima di tutto dichiara pulsante e pulsante1 const byte:
const byte pulsante=7;  // invece di intcosi trovi subito l'errore perché il compilatore ti segnalerà errore quando fai pulsante=0;

const byte pinPulsante=7;
const byte pinPulsante1=8;
int valP,valP1;
void setup()
{ delay(1000);
  pinMode(pinPulsante,INPUT);
  pinMode(pinPulsante1,INPUT);
  Serial.begin(9600);
}

void loop()
{ valP=0;
  valP1=0;
  while(valP==0 && valP1==0)
  { valP =digitalRead(pinPulsante);
    valP1=digitalRead(pinPulsante1);
    Serial.println("sono nel while");
    delay(200);
  } 
  delay(1000);
  Serial.println("sono uscito dal while");
}

okey.. grazie

danielelamanna:
okey.. grazie

Si, ma fai quanto ti ho richiesto nel mio post #1 ...

Guglielmo

Si provvedo subito