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
bei einem µC die Drehzahl zu simulieren und bei einem anderem diese zu berechnen und sie auszugeben.
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
was meinst du mit ausgangspin?? und auf welchen Interrupteingang könnte man das drehzahlsignal legen?
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.
ich brauche doch nur einen kleinen denkanstoß! wenn das signal aus den einem µC raus kommt wie es dann der andere merkt?!
> 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.
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?
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.
aber das problem ist dass ich die Torzeit nur auf 71 Millisekunden bekomme! aber der ansatz is gut, danke!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.