Go Down

Topic: contatore (Read 2 times) previous topic - next topic

tuxduino

Se ciò che vuoi è stampare pippo quando contatore vale zero è molto semplice: togli print("pippo") da dove si trova ora e aggiungi nel ciclo questo test:

if (contatore == 0) { Serial.print("pippo"); }

AMBUSH

Già fatto ma poi non incrementa più, cioè fa pippo premo fa 1 e resta sempre e solo 1 anche se ripremo  non aumenta

superp

Come dice giustamente tux, il problema col tuo codice sta qua
Code: [Select]

if (val == HIGH) { 
     currentState = 1;
}
else {
     currentState = 0;
     Serial.println("Pippo");
}

quando premi il pulsante val  è = HIGH e quindi entri e setti currentState ad 1, ma al prossimo giro, se il pulsante non è premuto,  setti currentState a 0 e stampi Pippo! praticamente ricominci da capo. Io lascerei stare currentState e incrementerei il contatore alla pressione del pulsante. Utilizzerei old_counter per memorizzare il vecchio valore del contatore e stamperei il valore di contatore solo se maggiore di old_counter.
per capirci:
Code: [Select]

void loop(){
old_counter = contatore;
if(digitalRead(pulsante)){
contatore +=1;
}
if(contatore > old_counter){
Serial.println(contatore);
}
delay(250);
}

se poi vuoi stampare pippo al primo giro, la modifica è facile facile. che ne pensi?
N.
"The question is not whether intelligent machines can have emotions, but whether machines can be intelligent without any emotions"

AMBUSH

Grazie :-)

e nel caso volessi mettere un pulsante che decremeta? e un'altro che mi riporta a pippo?

superp

:) su, su, un po di iniziativa!!  :)
comincia a fare ipotesi che se ne parla tutti insieme  ;)
N.
"The question is not whether intelligent machines can have emotions, but whether machines can be intelligent without any emotions"

Go Up