Pages: 1 2 3 [4] 5   Go Down
Author Topic: Contachilometri  (Read 5434 times)
0 Members and 1 Guest are viewing this topic.
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21881
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Só di essere noioso perché mi ripeto.
Perché non misuri il tempo fra 2 impulsi?
In questo modo sei indipendente dal dover aspettare un tempo determinato per contare gli impulsi.
passi:
Inizi la misura aspettando il primo impulso
Aspetti il secondo impulso.
Calcoli la velocitá e la metti sul display
inizi da capo.

Ciao Uwe
Logged

Milano Italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 61
Arduino <3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

eh ma se con questa storia del tempo tra un impulso e l'altro che non scende... non funzionerebbe comunque...
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

a che velocità corrisponderebbe una lettura di un 1mpulso ogni dieci microsecondi?
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 489
Arduino addicted
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se può essere utile ho trovato questo:
http://www.arduino.cc/playground/Learning/Tachometer

non ho dato un'occhiata al codice anche perchè ci avrei capito poco, per ora, ehehe smiley-grin Vedi se ti può servire smiley-kitty
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21881
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao a tutti

@ Locke : non ho capito cosa vuoi dire.
@ NetWorm : il link descrive la misura la velocitá di rotazione di un motore con attacata un elica di un modellino di aereo.
@ brainbooster con un impulso per giro della ruota ad una velocitá supersonica.

Ciao Uwe
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora prova a fare un piccolo esperimento:

int ledPin = 13;                     // seleziono un pin per il LED
volatile int state = LOW;            // ricorda lo stato corrente

void setup() {
  pinMode(ledPin, OUTPUT);            //dichiara ledPin come OUTPUT
  Serial.begin(9600);
  attachInterrupt(0, check, CHANGE);  // attacca un interrupt (interrupt 0 = digital pin 2)
}

void loop() {
  digitalWrite(ledPin, state);
}

void check() {    // Interroga il relè per conoscere lo stato
  state = !state;
  Serial.print("Stato cambiato a: ");
  Serial.print(state);
  Serial.print(".\n");
}


CHANGE è usato per riconoscere il cambiamento di stato ma puoi usare RISING se ti interessa solo l'impulso in salita o FALLING per la discesa.
con questo dovresti ricevere sulla seriale una notifica ogni volta che il sensore cambia il suo stato a qualsiasi velocità.
« Last Edit: June 27, 2010, 02:54:10 am by brainbooster » Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 489
Arduino addicted
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@uwefed: lo so quello smiley
se il problema iniziale è che non riesce a leggere il valore del sensore sulla ruota perchè è troppo veloce questo non dovrebbe risolvere la cosa? Non penso che la ruota di una moto giri più velocemente di un motore da modellismo smiley C'è il discorso che usa un sensore ottico che è molto più veloce a commutare di uno meccanico...
Logged

Milano Italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 61
Arduino <3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Innanzi tutto ringrazio tutti quanti per l'aiuto smiley-wink

Ho provato il tuo sketch brain, il risultato:
Se mando a Vcc non succede nulla, se mando a massa parte una sfilza di cambi di stato e non si ferma finchè non riporto a Vcc il pin...

Logged

cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

perchè devi mettere un condesatore da 0,1n sul pin sennò gli sbalzi di tensione fanno rilevare vari impulsi
Logged

Milano Italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 61
Arduino <3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non credo... è proprio un errore a livello di codice penso, va avanti all'infinito a meno che non dia un impulso a Vcc
Logged

cuneo
Offline Offline
God Member
*****
Karma: 3
Posts: 785
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

prova il codice sembra giusto
Logged

Milano Italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 61
Arduino <3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In parallelo o in serie?
luca
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 185
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il condensatore va tra il pin digitale 2 e gnd.
se hai fatto le prove con un filo volante al quale fai fare contatto un colpo a gnd, un colpo a vcc prendi sicuramente del rumore dovuto all'accoppiamento del filo con il corpo umano che fa fare in continuazione false transizioni
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quel codice era solo un "motore di acquisizione degli impulsi", quindi così com'è rileva le "variazioni" sia in salita che in discesa, e dovrebbe farlo anche alla velocità che serve a tè. (gli interrupt sono più affidabili per queste cose).
comunque è da modificare...
per il condensatore è ok, ti fà da "antirimbalzo".
P.S.
almeno durante le prove tieni i fili corti.
Logged

Milano Italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 61
Arduino <3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Perfetto allora per come lo hai pensato fuziona perfettamente, ma resta il problema che non ferma il conteggio una volta finito l'impulso, ma solo fino al ritorno a low...
Logged

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