Pages: 1 2 [3]   Go Down
Author Topic: contatore  (Read 2358 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22811
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.  smiley-razz
Logged


Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Italy
Offline Offline
Full Member
***
Karma: 1
Posts: 145
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
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:
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".
Logged

Italy
Offline Offline
Full Member
***
Karma: 1
Posts: 145
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazieeeeeeeeeeeeeee  smiley

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



Logged

Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley
Logged

Italy
Offline Offline
Full Member
***
Karma: 1
Posts: 145
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 )  smiley-razz

è 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?
Logged

Pages: 1 2 [3]   Go Up
Jump to: