Forum: Offtopic Fahrrad Computer berrechnen


von gast (Gast)


Lesenswert?

Hallo,

ja lacht mich ruhig aus :-)

Ich versuche hier krampfhaft die Geschwindigkeit
(km/h) zu errechnen.

Gegeben ist der Radumfang mit 2214mm und die Zeit die vergangen ist fuer
eine Radumdrehung (10800 Einheiten, entspricht 1 sekunde)

Das ganze wird mit einem Atmega8 gemacht.
Ich suche einen weg der Recht genau ist, und denoch ohne float division 
auskommt.

von anderer Gast (Gast)


Lesenswert?

Ich rechne sowas immer in Angström/Woche. Gibt größere Zahlen und macht 
mehr her.

von Sascha (Gast)


Lesenswert?

Wieviele Nachkommastellen brauchst du denn?

von Marius S. (lupin) Benutzerseite


Lesenswert?

Das ganze müsste sich auf folgende Rechnung reduzieren:
kmh = (0,002214 x 10800 x 3600) / Zeitwert

Um die Division wirst du wohl nicht rum kommen. Wenn man 
nachkommastellen haben will wird man wohl auch um float nur schwer rum 
kommen.

von Eddy C. (chrisi)


Lesenswert?

Also rechnen wir mal:

Annahme: Maximal messbare Geschwindigkeit: 100km/h (= 27.8m/s)
Zeit für eine Umdrehung:

t = 2.214m/(27.8m/s) = 79.7ms

Um diese Geschwindigkeit mit 1% Genauigkeit zu messen (Grüsse an 
µA-Thread), muss der Kontakt demnach ca. alle 79.7ms/100 = 797µs 
abgetastet werden. Bei 100km/h läuft Dein Zähler somit auf einen Wert 
von 100.

Bei Minimalgeschwindigkeit, sagen wir mal 1km/h dauert die Umdrehung des 
Rades 100 mal solange. Folglich läuft Dein Zähler dann bis 10000. Du 
brauchst also einen 16-Bit-Zähler.

Wenn wir exakt mit 797µs abtasten, errechnet sich die Geschwindigkeit 
wie folgt:

v[km/h] = 10000 / Z

Mit Festkommaarithmetik gerechnet:

v[km/h*10] = 100000 / Z

Bei der Anzeige muss dann die Kommastelle wieder eingefügt werden. Ein 
Rechnung mit Floatzahlen erübrigt sich, ein long int reicht locker.

Wenn Du statt mit den krummen 797µs lieber mit geraden 800µs abtastest, 
muss lediglich Deine Konstante korrigiert werden von 100000 auf 99630. 
Witzigerweise ist dieser Wert sogar exakt und nicht gerundet.

von Sven P. (Gast)


Lesenswert?

Marius S. schrieb:
> Um die Division wirst du wohl nicht rum kommen. Wenn man
> nachkommastellen haben will wird man wohl auch um float nur schwer rum
> kommen.
Wo hast du denn das her?
--> Festkommarithmetik.

von gast (Gast)


Lesenswert?

Danke fuer die Antworten.

Ich koennte ja bei diesem Beispiel:
kmh = (0,002214 x 10800 x 3600) / Zeitwert

auch

kmh = (2214 x 10800 x 3600)  Zeitwert  1000 rechnen, oder?

von gast (Gast)


Lesenswert?

Ach so, und ich habe den sensor am Rad ueber ein Interrupt laufen.

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.