Go Down

Topic: Sensore vento: interrupt e conteggio (Read 522 times) previous topic - next topic

arduaudio

Ciao a tutti,
sto utilizzando il sensore http://www.futurashop.it/carrello_sql/prodotti.asp?cosa=wind&liv3=&title=STAZIONI%20METEO%20E%20OROLOGI&cate=SENSORI%20METEO&cod=6710-WIND01#6710-WIND01 , ho fatto i collegamenti sulla breadboard e sembra funzionare (riconosce il cambiamento di stato) ma non riesco a fare misurazioni sensate. Per capire dove stava il problema ho scritto questo sketch di prova...
Code: [Select]

float counter=0;
void setup(){
 Serial.begin(9600);
   attachInterrupt(0, addcount, FALLING);}
void loop(){
 Serial.println(counter);
}
void addcount(){
 counter++;}

ottengo sequenze come "0-6-7-11-12-17-18-22-23-28-29-32-33-38-39-43" senza alcun ragionevole significato..
se invece

Code: [Select]
float counter=0;
void setup(){
 Serial.begin(9600);
   
 Serial.println("LOW");}
void loop(){
 attachInterrupt(0, addcount, LOW);
 Serial.println(counter);
}
void addcount(){
 counter++;}


mi dà dei valori assurdi, 579323.00 al terzo giro  :smiley-zipper: :smiley-roll-blue:
Che diavolo succede? Ho testato i due codici girando molto lentamente le pale con la mano :(
Grazie a tutti  :smiley-fat:

BrainBooster

lo sketch sembra un containterrupt :) e non vedo nulla che colleghi il numero degli impulsi alla velocità di rotazione.
Comunque potrebbe errere il collegamento "rumoroso", io non conosco quel sensore ma con quello sketch, mi sà che non vai da nessuna parte.
Quel sensore devi trattarlo come un tasto, credo che si a base di relè reed...

arduaudio

No, aspetta. Non ho capito.
Ogni volta che lo stato dell'input 0 è falling incrementa counter e nel frattempo il loop stampa il valore del counter. Cosa c'è che non quadra concettualmente?

BrainBooster

che vedo troppi interrupt innescati per un giro lento a mano :)

arduaudio

Appunto! Che diavolo devo fare? ho provato qualche codice per anemometri, ma c'è sempre il problema di un numero di interrupt incredibilmente alto!

lucadentella

Ciao

domanda: hai usato una resistenza di pull-up?
Forse basta anche quella interna ad Arduino (http://arduino.cc/en/Tutorial/DigitalPins)
bye
lucadentella.it

arduaudio

Ho provato come dici tu, collegando il sensore ai 5 volt e al dig. in, ma resta sempre in high, anche quando fa contatto...

lucadentella

collegando il sensore a 5V con una resistenza di mezzo giusto?
Il tuo sensore vento ad ogni passaggio chiude il circuito o lo apre?
Nel primo caso avrai

5V
|
Rpullup
|--- pin arduino
Sensore
|
Gnd

E' così che lo avevi collegato?
lucadentella.it

Go Up