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
>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.
> 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.
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
@ 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
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
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
@ Roland Praml (pram)
>Auch 8bitter können mit 32Bit Integer umgehen.
Das kann selbst ne Turingmaschine.
duckundwech
Falk
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
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
Fang mit dem Tutorial und einem Buch über Elektronik Grundlagen an.
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?!
Nimm halt einen Tachogenerator für die Tachowelle. Gibt es im GPS Zubehör Gruss
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.