Go Down

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

leo72


Quote
Anch'io sono per la forma contratta, difatti ad esempio io una bool la testo falsa con if(!variabile), la preferisco a if(variabile == false).


:smiley-eek:

Forse intendevi dire che preferisci if (!variable) ?

E' quello che ho scritto.  :P

tuxduino

Ah, hai ragione. E dire che l'ho letta e riletta  :smiley-roll-blue:

AMBUSH

Ciao


il problema è: non cambiare il numero del contatore se il pulsante resta premuto
soluzione ( secondo me ) : conservare lo stato del pulsante.

ok, ma come?

potete darmi qualche dritta su come evolvere lo sketch? ( NO SOLUZIONE )

sono entrato in confusione.

tuxduino

Devi usare una variabile per memorizzare lo stato del pulsante nel precedente ciclo di campionamento:

Code: [Select]

int prevButtonState;


Poi all'interno di loop, ma sottoposto al controllo di millis() per non campionare lo stato del pulsante troppo spesso (vedi il più volte citato blink without delay), usi una logica tipo questa:

Code: [Select]

currButtonState = digitalRead(buttonPin);

if (currButtonState != prevButtonState) {    // il pulsante ha cambiato stato
    if (currButtonState == HIGH) {
        // il pulsante è passato da LOW a HIGH
    }
    else {
        // il pulsante è passato da HIGH a LOW
    }
    prevButtonState = currButtonState;    // aggiorna per il prossimo ciclo
}


Cosa scrivere al posto dei commenti lo decidi tu in base a come vuoi che il sistema si comporti. Ad esempio se il pulsante è attivo basso (LOW quando premuto) e vuoi incrementare il contatore al suo rilascio, scriverari contatore++ al posto del commento "da LOW a HIGH".

AMBUSH

Grazieeeeeeeeeeeeeee  :)

Stavo facendo una cosa del genere però non avevo messo  prevButtonState = currButtonState;    // aggiorna per il prossimo ciclo e quindi non mi veniva

grazie a tutti




tuxduino


AMBUSH

Ciao ragazzi

sicuramente dovrei aprire un nuovo topic ma poichè quello che sto per chiedere è quasi collegato al mio contatore posto qui  ( in caso apro un nuovo topic )  :P

è possibile misurare la variazione di un angolo con Arduino? se sì con quale oggetto?

Io stavo pensado a questa fantastica follia. Poichè si tratta di misurare l'angolo di un oggetto fisso al centro ma che ruota per brevi archi in senso orario o antiorario pensavo di collegarci un potenziometro e leggere i vari valori di tensione ( ovviamente opportunamente mappati ) ... ripeto è una mia fantastica follia.

voi che pensate?

Go Up