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
Sorry, kann den Text nicht editieren, daher jetzt so... Das Programm schreibe ich in Assembler. 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
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.