Forum: Fahrzeugelektronik Geschwindigkeit Sensor Abtastfrequenz


von Ray M. (ray_m)


Lesenswert?

Hi,

ich steh gerade ein wenig auf dem Schlauch,
eventuell kann mir ja jemand einen Denkanstoß geben.

Ich messe mit einem Sensor Radumdrehungen und will die
Geschwindigkeit berechnen.
1
signale_pro_radumdrehung    = 8
2
abrollumfang_in_m           = 1.7
3
meter_pro_km                = 1000
4
mess_intervall_in_ms        = 250
5
gemessene_impulse           = 1
6
7
( ( ( abrollumfang_in_m * ( gemessene_impulse * ( meter_pro_km / mess_intervall_in_ms ) ) / signale_pro_radumdrehung ) * 60 ) * 60 ) / 1000

Ein INT zählt, über einen Timer errechne ich die Geschwindigkeit.

Wenn ich in den 250ms nur ein Signal bekomme, sind das 3.06km/h.

Wenn ich den Timer auf 100ms stelle, sind das schon 7.65km/h

Das heist für mich, dass ich den Timer nicht kürzer als
250ms stellen kann, außer ich ignoriere alles unter 10km/h oder so ...

Ist das richtig oder hab ich einen Denk- und/oder Rechen-Fehler ???

: Bearbeitet durch User
von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Was willst du jetzt eigentlich genau messen?
Die Anzahl Impulse pro Zeitintervall?
Die Zeit zwischen zwei Impulsen?

von Ray M. (ray_m)


Lesenswert?

Irgend W. schrieb:
> Was willst du jetzt eigentlich genau messen?
> Die Anzahl Impulse pro Zeitintervall?
> Die Zeit zwischen zwei Impulsen?

Ob die Rechnung so stimmt. Das würde bedeuten, Geschwindigkeiten
unter 3km/h lassen sich nicht messen, außer man zieht den Messintervall
ewig in die länge.

von Wolfgang (Gast)


Lesenswert?

Ray M. schrieb:
> Das heist für mich, dass ich den Timer nicht kürzer als
> 250ms stellen kann, außer ich ignoriere alles unter 10km/h oder so ...

Falscher Ansatz. Miss die Zeit zwischen zwei Sensorsignalen und fange 
dann noch mal an zu rechnen.
(Wenn es damit bei hohen Geschwindigkeiten eng wird: reziproker 
Frequenzähler)

von Ray M. (ray_m)


Lesenswert?

Wolfgang schrieb:
> Ray M. schrieb:
>> Das heist für mich, dass ich den Timer nicht kürzer als
>> 250ms stellen kann, außer ich ignoriere alles unter 10km/h oder so ...
>
> Falscher Ansatz. Miss die Zeit zwischen zwei Sensorsignalen und fange
> dann noch mal an zu rechnen.
> (Wenn es damit bei hohen Geschwindigkeiten eng wird: reziproker
> Frequenzähler)

Danke für den Tip, schau ich mir mal an.

von Ray M. (ray_m)


Lesenswert?

Ich bin zu blöd, kann mit mal jemand auf die Sprünge helfen.

Ich versuche mit folgendem Code die Geschwindigkeit zu messen,
bei gegebenem Abrollumfang und 6 Signalen pro Radumdrehung.
1
float rad_abrollumfang          = 2.0;  // in meter
2
int   rad_signale_pro_umdrehung = 6;
3
4
volatile float rpm_time         = 0;
5
volatile float rpm_time_last    = 0;
6
7
void isrCount() {
8
  unsigned long m = micros();
9
  rpm_time        = (m - rpm_time_last);
10
  rpm_time_last   = m;
11
}
12
13
void setup() {
14
  attachInterrupt(4, isrCount, FALLING);
15
}
16
17
void loop() {
18
  // interrupts bei volatilen variable sperren !!!
19
  noInterrupts();
20
    int rpm = (int)((1000000/rpm_time)*60)/rad_signale_pro_umdrehung;
21
  interrupts();
22
  int kmh = (int)((rpm*60)*rad_abrollumfang)/1000;
23
  Serial.println(kmh);
24
}

Wenn ich das mal mit der Hand nachrechne kommt da irgendwie
ganz schön Unsinn raus ;(

Nehmen wir an wir haben rpm=10, das sind 60 Signale
Dann sind das also 10 U/min
Eine Stunde hat 60 Minuten, also 10*60=600U/h
Dann sind das 600*2=1200 Meter/h oder 1,2km/h

Das ist doch Schwachsinn ...

Ok, rpm ist nicht in min sondern in sec, dann feht einmal *60

Nehmen wir an wir haben rpm=10, das sind 60 Signale
Dann sind das also 10 U/sec = 60 U/min = 3600 U/h

3600 U/h * 2 Meter = 7200 meter/h = 7,2 kmh

Ich blick es gerade nicht ...

von egberto (Gast)


Lesenswert?

Schau dir doch einfach den Code von ergokey weiter oben an. Der macht 
das recht clever, in dem er die Anzahl der ms zwischen 2 Impulsen bei 
1kmh als REFERENZ angibt. 10 Kmh sind dann REFERENZ/10 usw.

Egberto

von egberto (Gast)


Lesenswert?


von m.n. (Gast)


Lesenswert?

Welchen Arduino verwendest Du und an welchem Pin liegt der 
Eingangsimpuls?

Trenne die Erfassung der Impulse von deren Auswertung.

von Ray M. (ray_m)


Lesenswert?

m.n. schrieb:
> Welchen Arduino verwendest

keinen ... teensy 3.2

> Du und an welchem Pin liegt der Eingangsimpuls?

4

> Trenne die Erfassung der Impulse von deren Auswertung.

Hää ?

von m.n. (Gast)


Lesenswert?

Ray M. schrieb:
>> Trenne die Erfassung der Impulse von deren Auswertung.
>
> Hää ?

Ganz einfach: geschätzt wertest Du die Geschwindigkeit ca. 100000 Mal 
pro Sekunde aus. Ist das nicht ein bißchen zu viel?

von Ray M. (ray_m)


Lesenswert?

m.n. schrieb:
> Ray M. schrieb:
>>> Trenne die Erfassung der Impulse von deren Auswertung.
>>
>> Hää ?
>
> Ganz einfach: geschätzt wertest Du die Geschwindigkeit ca. 100000 Mal
> pro Sekunde aus. Ist das nicht ein bißchen zu viel?

Ahh jetzt ;)

Eigentlich ist das in einer Funktion und die wird nur aller 250ms
aufgerufen ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.