Für die Geschwindigkeitsmessung an einem Elektro-Go-Kart brauche ich eine Zeitmessung. Ich verwende einen ATmega16 und programmiere in Assembler. Die minimale Zeit zwischen 2 Impulsen beträgt 28mil_s , die maximale Zeit beträgt 2,9_Sekunden. Ich möchte nun die Zeit zwischen den zwei Impulsen in ein Bestimmtes Register setzen, um den Wert dann weiterverwenden zu können. (Km/h , Durchschnittsgeschwindigkeit, Gefahrene Stecke , ...) Ich habe mich nun schon seit geraumer Zeit im Forum umgeschaut und versucht, eine Lösung zu finden, aber ich hab es einfach nicht geschafft! mfg Gregor
gehen wir mal davon aus, dass der impuls von einem radsensor kommt. ghen wir weiterhin davon aus, dass das rad einen umpfang von 0,5m hat. daraus folgt eine maximale geschwindigkeit von ca. 62km/h. die minimale zu messende geschwindigkeit beträg 0,62km/h. so weit richtig? stellt sich nun die frage ob man eine so niedrige geschwindigkeit überhaupt anzeigen muß? egal, bei den von dir angegebenen werten wäre also die minimale aktualisierungs bei niedrigsten geschwindigkeiten 2,9s. das taucht wohl nicht ;-). um nei solch niedrigen geschwindigkeiten eine brauchbare auflösung zu bekommen wäre 4, besser 6 impulse pro radumdrehung geeigneter. zur messung, der impuls des radsensor löst einen capture-interrupt aus. in der interruproutine wird dann der aktuelle timerwert zwischengespeichert. beim nächsten impuls erfolgt das gleiche, der vorherige wert wird nun unter berücksichtigung des timerüberlauf vom aktuellen abgezogen. schon hat man die zeitspanne zwischen beiden impulsen. die bechnung der geschwindigkeit ist nun kein problem mehr.
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.