Pages: [1]   Go Down
Author Topic: utilizzare il digitalRead  (Read 392 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 106
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

salve ragazzi,
avrei la necessità di leggere un segnale quando si verifica la seguente condizione

Code:
if (now.unixtime() == timer + 5;){

ciclando più volte al secondo, ovviamente, il codice all'interno dell'if viene ripetuto più volte...
come posso fare in modo tale che venga eseguito solo una volta?

thanks
Logged

Offline Offline
Edison Member
*
Karma: 28
Posts: 2031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ci sono vari modi per farlo il piu semplice:
crei una variabile bool di default a false
quando esegui l'if la metti a true.
Ovvero:
variabilebool Boolean false;
if (now.unixtime() == timer + 5  & variabilebool == false;){
fai quello che devi fare alla varibilebool true.
variabilebool = true:

A questo punto quando ricominci il loop la variabilebool è a true di conseguenza la condizione dell'if non è rispettata,E non eseguirai più quel codice.  smiley-mr-green
« Last Edit: July 12, 2012, 06:40:07 am by Madwriter » Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Offline Offline
Full Member
***
Karma: 0
Posts: 106
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e quelli più "sofisticati"?  smiley
Logged

Offline Offline
Edison Member
*
Karma: 28
Posts: 2031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e quelli più "sofisticati"?  smiley
Dipende da quello che fai per lo più qeullo della varibile bool è il più usato, al massimo puoi usare un int per decidere quante volte puoi eseguirlo o controllare che quello che dovevi fare è già stato fatto e di conseguenza non farlo.
Se hai esigenze specifiche chiedi pure altrimenti non so su cosa orientarti.
Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Offline Offline
Jr. Member
**
Karma: 2
Posts: 98
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

concordo con madwriter su tutta la linea...credo poi che quando si programma la soluzione più semplice è di solito la migliore
Logged

0
Offline Offline
Shannon Member
****
Karma: 129
Posts: 10444
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

aggiungerei che per andare sul sicuro farei >= 5 invece che == 5 (ed se necessario gestire i secondi in più rispetto a quelli attesi), giusto nel caso il loop fosse bello tosto
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: [1]   Go Up
Jump to: