Forum: Compiler & IDEs Drehzahlmesser


von Heiko (Gast)


Lesenswert?

Hallo,

ich arbeite gerade an einer Lösung mit einem Board von myAVR um die
Drehzahl meines Motorrades zu messen. Um die Drehzahl zu simulieren
verwende ich einen Mikrocontroller und zum Messen verwenden ich einen.
Kann mir jemand einen Ansatz geben wie ich dieses Problem lösen
könnte?

Danke schonmal!

T. Heiko

von johnny.m (Gast)


Lesenswert?

>...wie ich dieses Problem lösen könnte?

Welches Problem?

von Heiko (Gast)


Lesenswert?

bei einem µC die Drehzahl zu simulieren und bei einem anderem diese zu
berechnen und sie auszugeben.

von Tom (Gast)


Lesenswert?

Auf ne allgemeine Frage ne allgemeine Antwort:

- Auf dem "Simulator" nen Timer aktivieren und damit periodisch einen
Ausgangspin schalten.
- Auf dem "Zähler" einen Timer als Zähler benutzen und das
Drehzahlsignal auf nen Interrupteingang legen. Bei jedem Interrupt den
Zählerstand speichern und den Zähler zurücksetzen. Aus der
Zählerfrequenz und dem Zählerstand (also der Anzahl von Zählperioden
zwischen zwei Interrupts) die Dauer einer Umdrehung und daraus die
Drehzahl berechnen.

Gruss

von Heiko (Gast)


Lesenswert?

was meinst du mit ausgangspin??
und auf welchen Interrupteingang könnte man das drehzahlsignal legen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hast du überhaupt schon einmal einen Controller programmiert,
Heiko?

Ich würde dir ernsthaft anraten, das AVR-GCC-Tutorial dieser Seite
durchzuarbeiten und erst einmal ein Gefühl für diese Controller
zu bekommen.  Andernfalls such' dir lieber jemanden, der das ganze
Projekt komplett für dich stemmt (zumindest die Firmware), du
wirst sonst aus dem Fragen nicht mehr herauskommen.

von Heiko (Gast)


Lesenswert?

ich brauche doch nur einen kleinen denkanstoß!
wenn das signal aus den einem µC raus kommt wie es dann der andere
merkt?!

von Karl H. (kbuchegg)


Lesenswert?

> ich brauche doch nur einen kleinen denkanstoß!

Ganz ehrlich:
Das glaub ich nicht.
Sonst würdest Du nicht fragen:
> was meinst du mit ausgangspin??

Du unterschätzt das was vor dir liegt. Der erste Teil deiner
Aufgabe, einen µC so zu programmieren, dass er an einem
Ausgang ein periodisches Signal mit einer bestimmten Frequenz
erzeugt ist eigentlich ein absolutes Standard-Einsteiger-Erstlings-
Projekt (OK: da lässt man eine LED blinken. Ist aber vom Prinzip
her dasselbe, nur dass die Frequenz halt so niedrig ist, dass
man das Blinken sieht). Wenn Du damit Schwierigkeiten hast, dann
ist es mit einem Denkanstoss alleine nicht getan.

von Heiko (Gast)


Lesenswert?

ja den µC der das Signal erzeugt habe ich ja jetzt fertig ... er sendet
ein konstantes signal! nur wie messe ich das an dem anderen?
ist es besser die zeit zwischen 2 perioden zu messen oder ist es besser
zu zählen wieviel perioden in einer bestimmten zeit auftauchen?

von Karl H. (kbuchegg)


Lesenswert?

Das hängt davon ab, wie schnell das periodische Signal ist, welche
Ferquenz es besitzt.
Einfacher (IMHO) ist es, wenn du eine Zeit vorgibst und zählst
wieviele Pulse da reinkommen. Dann brauchst du nicht gross
rumrechnen. Bei 1 Sekunden Torzeit, wird der gemessene Wert mal
60 genommen und du hast die Drehzahl. Dafür:
  * kriegst du halt nur alle 1 Sekunden ein Ergebnis
  * ist das Ergebnis mit einem Fehler +/- 60 behaftet.
Nun kannst du natuerlich die Torzeit ( = die Messzeit) auf
1/10 Sekunde drücken, dafür geht aber der Fehler auf +/- 600
rauf.
Umgekehrt ist es auch nicht besser: Wenn du die Zeit zwischen
2 Pulsen misst, stellt sich natuerlich die Frage: Wie genau kannst
du die Zeit denn messen? Jeder Fehler in der gemessenen Zeit wirkt
sich im Ergebnis aus. Nimm dir mal ein paar Zahlen und spiel
am Papier damit rum. Und dann variier mal den Eingangswert
und sieh nach wie sich das Endergebnis Deiner Berechnung verändert.

Weiters stellt sich natürlich die Frage: Wie genau muss den
das Ergebnis sein?. Macht es wirklich Sinn, die Drehzahl auf
1 U/min genau auszugeben? Kann mein Motor denn eine bestimmte
Drehzahl wirklich über Sekunden auf 0.1 U/Min halten, oder
zeige ich in Wirklichkeit da nicht sowieso schon Fantasiewerte
an. Nur weil ein Computer eine Zahl auf 5 Nachkommastellen
rauswirft, heist das noch lange nicht, das das auch Sinn macht.

von Dieter (Gast)


Lesenswert?

aber das problem ist dass ich die Torzeit nur auf 71 Millisekunden
bekomme!
aber der ansatz is gut, danke!

von Magnus Müller (Magnetus) (Gast)


Lesenswert?

Äh... wie jetzt.... "Heiko" oder "Dieter" ???

von Dieter (Gast)


Lesenswert?

wir arbeiten zusammen an dem projekt!

von Tom (Gast)


Lesenswert?

So langsam nimmt das ja Formen an.
Ich verwende in meinem Drehzahlmesser einen 16-bit Timer und habe die
Frequenz per prescaler auf 125 kHz eingestellt. Dann zähle ich die
Anzahl Timer-ticks zwischen zwei Drehzahlimpulsen. Das sollte ne
ausreichende Genauigkeit im Bereich zw. 500 und 10000 U/min ergeben
(Damit meine ich auf etwa 100 U/min genau, mehr macht für nen
Standard-Drehzahlmesser [kein Werkstatt-Diagnosegerät] IMHO keinen
Sinn).

Gruss

von Dieter (Gast)


Lesenswert?

verwendest du 2 timer oder nur einen?

von Dieter (Gast)


Lesenswert?

ich habe aber nur einen 8 bit timer!
und wie kann ich die 8 bit variablen in C zu 16 bit variablen
zusammenfassen?

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.