Hallo,
ich möchte die Motordrehzahl an einem Motorrad feststellen.
Da ich noch ziemlich ungeübter Anfänger bin, soll das auch
erst mal alles sein. Später kämen noch 2 weitere Aufgaben dazu:
die Auswertung eines fertigen Lambdasondenmoduls mittels ADC und
die Wassertemperatur (sehr niedrige Priorität, Kennlinie ist bekannt)
und
wenn das der Controller alles verkraften kann auch gerne noch
Ansaugdruck,
Umgebungsdruck und Öltemperatur. Aber mein erstes Ziel ist die
Umdrehungen
zu messen.
Ich möchte am Kabelbaum einen Takt abgreifen. Mir ist bekannt, daß
dieser
Takt genau 3x pro Umdrehung des Motors ausgegeben wird.
Der interessante Messbereich für mich ist 800 - 12000 U/min.
Das bedeutet also, daß ich mindestens 800/60*3=40Hz und höchstens
12000/60*3=600Hz pro Sekunde messen muss.
Mit einem AVR und dem ICP + Timer kann ich mir das recht gut vorstellen.
Da ich hier schon viele Varianten des Frequenzzählers gesehen habe, die
auch teilweise viele MHz messen können, nehme ich an, daß ein AVR das
recht locker messen kann. Allerdings habe ich auch immer wieder gelesen,
daß es oft in kleineren Frequenzen oder in höheren Frequenzen dabei zu
starken Abweichungen kommen kann.
Meine Vorstellung dabei ist: 2 Motorumdrehungen zu messen und dann die
gemessenen Werte zu mitteln. Die Messung kann an dieser Stelle beendet
werden und nur in einer Variablen zwischen gespeichert werden. Reicht
die
Torzeit dafür aus? Wie genau würden diese Ergebnisse ausfallen, denn
einen
Fehler größer 2 Stellen wird letztlich für mich unbrauchbar.
Freue mich über eure Antworten und seid nicht zu hart, jeder hat mal
klein
angefangen, oder? Ich möchte mich gerne mit den auf mich zukommenden
Problemen beschäftigen und Zeit habe ich auch jede Menge...
Gruß
Mart
Blutiger Anfänger schrieb:> Hallo,>> ich möchte die Motordrehzahl an einem Motorrad feststellen.> Ich möchte am Kabelbaum einen Takt abgreifen. Mir ist bekannt, daß> dieser> Takt genau 3x pro Umdrehung des Motors ausgegeben wird.>> Der interessante Messbereich für mich ist 800 - 12000 U/min.> Das bedeutet also, daß ich mindestens 800/60*3=40Hz und höchstens> 12000/60*3=600Hz pro Sekunde messen muss.>> Mit einem AVR und dem ICP + Timer kann ich mir das recht gut vorstellen.> Da ich hier schon viele Varianten des Frequenzzählers gesehen habe, die> auch teilweise viele MHz messen können, nehme ich an, daß ein AVR das> recht locker messen kann. Allerdings habe ich auch immer wieder gelesen,> daß es oft in kleineren Frequenzen oder in höheren Frequenzen dabei zu> starken Abweichungen kommen kann.
Solch kleine Frequenzen misst man am besten durch Messung der
Periodendauer. Der AVR ist schlau genug, diese in eine Frequenz
umzurechnen.
> Meine Vorstellung dabei ist: 2 Motorumdrehungen zu messen und dann die> gemessenen Werte zu mitteln.
Mehrere Messungen zu mitteln ist sicher sinnvoll, um eine einiger-
maßen stehende Anzeige zu bekommen. Du solltest auch nicht zu viele
Stellen anzeigen, da Du dann die Anzeige nicht mehr interpretieren
knnst. Am besten wäre die Ansteuerung eines Leuchtbandes durch den AVR.
Gruss
Harald
Genau,
da hat der Autor: Harald Wilhelms (Gast) ganz recht.
Wenn du noch sagst in welcher Sprache du das machen willst,
gibt es bestimmt irgendwo hier ein passendes Programmgerüst.
Klaus
Für Bascom inclusive Inline assembler hätte ich, glaube ich, etwas
parat.
Müsste halt raussuchen und wieder selbst verstehen.
Wie du schon richtig vermutest stellt die Sache fuer einen beliebigen
Controller kein Problem dar. Die Genauigkeit haengt in der Hauptsache
vom Quarz ab und ist sicher genauer als dein Motor laeuft. :-)
Im uebrigen kannst du auch die Periodendauer messen. Also wieviel Zeit
zwischen zwei Impulsen vergeht.
Du wirst aber unerwartete Probleme von anderer Seite bekommen. Und zwar
den schwierigen Umweltbedinungen am Motorrad. Also Vibrationen,
Stoerungen auf dem Bordnetz, Temperaturschwankungen, Feuchtigkeit.
Olaf
Olaf schrieb:> Du wirst aber unerwartete Probleme von anderer Seite bekommen. Und zwar> den schwierigen Umweltbedinungen am Motorrad. Also Vibrationen,> Stoerungen auf dem Bordnetz, Temperaturschwankungen, Feuchtigkeit.
Unerwartet?
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23
Gruss
Harald
Hallo Harald,
vielen Dank für deine Antwort.
Um das Ergebnis zu prüfen ist der LED-Balken eine tolle Idee.
Bin ich gar nicht drauf gekommen, werde ich aber genau so machen!
Unter Periodenmessung verstehe ich eine definierte Zeit zur Messung, um
anschließend daraus die Frequenz, bzw. die Drehzahl anhand der
aufgetretenen Impulse zu errechnen, richtig?
Wie lang wäre eine geeignete Periodendauer dann?
Bei einer Länge von 1 Sekunde könnten also zwischen 40 und 600 Impulse
auftreten. Das Ergebnis wäre somit +/- 20 Umdrehungen abweichend und
für mich ok, aber die Dauer ist zu lang.
Eine Periodendauer von 10-100ms wäre für mich ok.
Wie wird das denn in der Praxis an einem Tachometer umgesetzt?
Ist mir echt ein Rätsel...
--Mart
Hallo,
das Signal dürfte einen CMOS-Pegel haben und wird unmittelbar am
Steuergerät abgegriffen und daher hoffe ich auch, daß es deutlich
besser zu gebrauchen ist als von einer Zündspule oder Einspritzdüse.
Gruß,
Mart
Irgenwie verstehe ich deine mangelde Wertschätzung
meines Beitrages nicht... aber:
In Assembler geht das so(und ohne ICP) :
config INT0 auf z.B. Rising
beim ersten Entry in Int0 wird Timer gestartet
der läuft dann da so herum .....
ein auch konfigurierter Timer-Overflow-händler (<-- hihi)
verwaltet die overflows.
Die gesammelten Timerwerte und Overflows kommen in eine LONG Variable.
Int0 enthält eine Zählvariable (z.B. 10) die nach 10
Durchläufen des Int0 den Timer stoppt.
Dann hast du in der Long-Variable die Anzahl Systemclocks , die
innerhalb
von 10 Low-to-high Trasitistions stattfanden.
haste also gleich ne Messung über 10 Perioden.
Gruss K.
Hallo Klaus,
ich schätze jeden Beitrag und nehme gerne Ratschläge entgegen.
Die Grundidee -wie in meinem ersten Beitrag geschrieben- erkenne ich
hier wieder und werde mich nochmal hinsetzen und die theoretische
Genauigkeit dabei ausrechnen und schauen, ob ich das so umsetzen kann.
Die Richtung habe ich jetzt erst mal.
Herzlichen Dank!
Mart
viel erfolg wird gewünscht.....
.. Das update des Display benötigst du schlimmstenfalls 1 mal per
Sekunde,
da du nicht schneller schauen kannst.
Wenn du also 1 Sekunde zugrundelegst und dieses paarst mit deiner
maximalen
Drehzahl.. Pulsfrequenz ... dann kommst du auf die Anzahl Perioden ,
die für dich interessant sind.
Ich hoffe, du bist keine Frau, da ich sonst mit dem Periodenreden
schon verschissen hätte.
Klaus
Wäre das nicht einfacher und wesentlich betriebssicherer, das ganze rein
analog mit einen Integrierer zu machen? So wie man früher (und
vermutlich heute auch noch ) Drehzahlmesser fürs Auto aufbaut? Analoge
Ansteuerschaltungen für Leuchtbänder gibt es auch fertig als IC.
Warum muss man immer für jede kleinste ( banale )Anwendung immer einen
Mikroprozessor bemühen? Nur weil das In ist?
Also Das Signal auf einen Komperator ( damit ein Rechteck raus kommt.
Das ganze Integrieren ( also zweiter OP ) und damit auf das
Leuchtbandmodul-
Ralph Berres