mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tacho: Durchschnittsgeschwidigkeit


Autor: Ivo Burkart (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Egon (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ivo Burkart (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Roland Praml (pram)

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

Das kann selbst ne Turingmaschine.

duckundwech
Falk

Autor: He Ro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes F. (pfannkuchen2001)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fang mit dem Tutorial und einem Buch über Elektronik Grundlagen an.

Autor: Hannes F. (pfannkuchen2001)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?!

Autor: reflection (Gast)
Datum:

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

Gruss

Autor: Gast (Gast)
Datum:

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

Such mal hier im Forum, wurde schon mal durchgekaut.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.