Forum: Mikrocontroller und Digitale Elektronik Tacho: Durchschnittsgeschwidigkeit


von Ivo Burkart (Gast)


Lesenswert?

Hi NG,

Ich bin grade dabei mir einen Tacho für mein Motorrad zu basteln und bin 
über ein kleines Problem gestolpert:

Wie berechne und speichere ich sinnvoll eine 
Durchschnittsgeschwinidgkeit?
Bei allen Ansätzen bisher laufe ich irgendwann in Überläufe.

Eine Sache ist relativ einfach zu lösen: Ein Durchschnitt über ein 
wanderndes Zeitfenster fester Größe.

Was ich brauche ist ein kummulativer Durchschnitt der (praktisch) 
unendlich lange läuft und alle Werte gleich gewichtet.

Wäre für Ideen echt dankbar.
Ivo

von Tom (Gast)


Lesenswert?

>Eine Sache ist relativ einfach zu lösen: Ein Durchschnitt
>über ein wanderndes Zeitfenster fester Größe.

Das geht am besten mit einem ringförmig organisierten Speicher. Z.B. 
willst du 8 Werte mitteln, dann schreibe deinen neuen Wert an eine 
Stelle, und inkrementiere die Schreibposition "im Kreis herum". Dabei 
wird dann immer der älteste überschrieben. Der gleitende Mittelwert ist 
einfach der Mittelwert der 8 Speicherstellen.

von Thomas B. (yahp) Benutzerseite


Lesenswert?

> Was ich brauche ist ein kummulativer Durchschnitt der (praktisch)
> unendlich lange läuft und alle Werte gleich gewichtet.

Wenn ich dich nicht komplett falsch verstehe, dann ist das doch die 
Gesamtdurchschnittsgeschwindigkeit, also der Quotient von Gesamtstrecke 
und Gesamtzeit. Diese beiden Werte aufnehmen und bei Bedarf die 
Geschwindigkeit ausrechnen.

von Egon (Gast)


Lesenswert?

Hallo,

wenn ich das richtig verdstanden habe, dann willst du doch eine 
Durchschnittsgeschwindigkeit für z.b. eine fahrt.

Dann musst du nur speichern:
Zurückgelegte strecke
und
Verstrichene Zeit

dann einfach mit v = s / t berechnen.

Da sollten eigentlich keine Überläufe auftreten, wenn du 32 bit integer 
verwendest.

Egon

von Falk B. (falk)


Lesenswert?

@  Egon (Gast)


>Dann musst du nur speichern:
>Zurückgelegte strecke
>und
>Verstrichene Zeit

>dann einfach mit v = s / t berechnen.

Fast. Man muss aber, wenn die Geschwindigkeit für sagen wir mal 10s auf 
<1 km/h sinkt die Fahrzeit stoppen, damit man nur die reine Fahrzeit 
erfasst. Macht mein Fahrradcomputer auch so.

MfG
Falk

von Ivo Burkart (Gast)


Lesenswert?

Danke für die schnellen Antworten

Ich nutze einen Atmega168 und würde 32 bit ints gerne vermeiden.

Im Prinzip suche ich einen Algorithmus der aus einer Serie von Werten 
den Durchschnitt berechnet ohne dass alle Werte auf einmal oder die 
Gesamtzahl der Werte zur Verfügung stehen.

Ivo

von Roland P. (pram)


Lesenswert?

Auch 8bitter können mit 32Bit Integer umgehen.

Eine Algorithmus der ohne aufsummieren der Werte auskommt, gibt es 
meiner Meinung nach nicht, da ja alle Werte die bisher aufgetreten sind, 
irgendwo "zwischengespeichert" werden:

Längere Fahrzeit -> mehr Werte -> mehr Information -> mehr Bits

von Falk B. (falk)


Lesenswert?

@ Roland Praml (pram)

>Auch 8bitter können mit 32Bit Integer umgehen.

Das kann selbst ne Turingmaschine.

duckundwech
Falk

von He Ro (Gast)


Lesenswert?

Schwierig dabei ist: Bei kurzen Zeiten/Strecken braucht man hohe 
Auflösungen, damit sinnvolle Werte herauskommen, bei langen Zeiten läuft 
einem dann ggf. die Variable über.

In meiner derartigen Schaltung zähle ich allerdings direkt die 
Tachopulse (vier Stück pro Radumdrehung IIRC) - dann kommt man mit einem 
32Bit Integer bis >>10.000km :)

(ja, das ist die brutalo-Methode - aber der AVR hat da doch sonst nichts 
zu tun, da kann er auch mal ein bisschen mit 32Bit-Integern rechnen - 
bzw. für die verbrauchte Spritmenge sogar mit 64Bit - immer noch 
einfacher, als ein "selbstgebautes Fließkommaformat" zu nehmen, indem 
man z.B. in einem zusätzlichen Flag speichert, ob die Zahl jetzt 
einzelne Tachopulse (bis 10km) oder ganze Kilometer (ab 10km) zählt)

MfG, Heiko

von Hannes F. (pfannkuchen2001)


Lesenswert?

hallo,

ich habe grad das gleiche Vor, kannst du bitte mal erklären, wie du die 
schaltung gebaut hast? Da ich ein Elektronik-voll-anfänger bin, weis ich 
einfach nicht, wie ich da anfangen soll...

danke schonmal!

Hannes

von Gast (Gast)


Lesenswert?

Fang mit dem Tutorial und einem Buch über Elektronik Grundlagen an.

von Hannes F. (pfannkuchen2001)


Angehängte Dateien:

Lesenswert?

naja durch die Tutorials hab ich mich schon durchgegraben, und sooooooo 
ein blutiger anfänger bin ich auch nicht (ich hab immerhin schon ein 
Stimmgerät selber gebaut... (siehe anhang... ...ohh bin ich da stolz 
drauf ;) )Ich meinte damit eher, dass ich nicht weis, wie man dem 
controller übermitteln kann, wie schnell sich nun ein Rad dreht?! was 
gibt es da für sensoren? wie macht man sowas?!

von reflection (Gast)


Lesenswert?

Nimm halt einen Tachogenerator für die Tachowelle. Gibt es im GPS 
Zubehör

Gruss

von Gast (Gast)


Lesenswert?

> wie man dem controller übermitteln kann, wie schnell sich nun ein Rad
> dreht?!

Such mal hier im Forum, wurde schon mal durchgekaut.

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.