Forum: Mikrocontroller und Digitale Elektronik Drehzahlmessung für Rennbuggymotor


von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Hallo Leute,

Ich bin neu hier im Forum und hätte da eine Frage an die versierten 
Leute unter euch.

Ich bin in einem Rennbuggyteam zuständig für die Fahrzeugelektronik und 
entwickle im Momente eine Modifikation des Motorsteuergerätes.

Das ganze läuft zur Zeit mit einem Atmega16 ganz gut. Nur jetzt ist der 
Punkt gekommen an dem ich nicht mehr weiter weis, denn in Sachen 
Grundschaltungen/Elektronik allgeimein bin ich nicht wirklich gut.

Mein Problem:

Der (Verbrennungs) Motor hat an der Nockenwelle einen Positionssensor 
der ein  kontinuerliches Signal ausgiebt welches seine Amplitude und 
seine Freuquenz in abhängigkeit von der Motordrehzahl verändert (siehe 
Oszimessungen im Anhang, 1x Leerlauf und 1x 6000 rpm).

Ich möchte anhand von diesem Signal die Drehzahl und in weiterer Folge 
auch die Winkelposition der Nockenwelle erfassen/errechnen.

Hat irgendjemand Anregungen oder Ideen wie ich dieses Signal mit dem uC 
auswerten kann?

Ich hab mir folgendes überlegt wie es gehen "könnte":

#1 Spannungsteiler --> ADC und die Nulldurchgänge auswerten + Frequenz 
errrechnen, Problem: Was mache ich mit der negativen Welle (mit Diode 
töten ??), verfälscht die Messung das Signal nicht zu stark (vl spinnt 
dann das originale Steuergerät das ja dieses Signal auch noch braucht) 
?, Abhilfe - auskoppeln mit Wandler/Spule - aber wie ?

#2 OPV Schaltung mit Grenzwert bei 0,5 V und steigende Flanke messen ?
funktioniert das über den ganzen Drehzahlbereich, mann muss bedenken 
dass die Spannung bei der Enddrehzahl des Motors (12000rpm) schon 
verdammt hoch ist)


Wenn Interesse besteht kann ich natürlich weitere Details und bereits 
funktionierende Sachen (wie zB. Anzeige des eingelegten Gangs im Cockpit 
auf "fettem" 7 Seg. usw...) hier posten

Über jeden Vorschlag wäre ich sehr sehr dankbar und verbleibe mit 
freundlich grüßen aus Österreich

Stefan

von Erik S. (erik_s)


Lesenswert?

Hallo Stefan,
Leider hast du den Anhang wohl vergessen, aber ich kann dir einfach mal 
meine Überlegungen posten.

Die Befürchtung, dass bei Version 1 die Motorelektronik gestört würde, 
könntest du relativ einfach mit einem Impedanzwandler und einer idealen 
Diode (beides mit OPV aufgebaut) ausräumen. Wie genau soll die 
Drehzahlmessung denn sein?

Version 2: Spannungsteiler am Eingang eines Komparators (Schaltschwelle 
musst du richtig wählen) und falls nötig einen folgenden Monoflop 
(definierte Signallänge)


Recht schwierig dürfte die Positionserkennung zu realisieren sein, da ja 
sowohl Amplitude als (nehme ich mal an) die Signaldauer von der Drehzahl 
abhängig sind.
Auch hier stellt sich wieder die Frage, wie genau diese 
Positionsbestimmung werden soll.

Bevor ich hier aber anfange, wild zu spekulieren, warte ich besser auf 
die Oszi-Bilder und die Spezialisten hier im Forum.
Dein Projekt klingt jedenfalls nicht uninteressant, wenn du uns hier auf 
dem Laufenden halten würdest, wäre das sehr nett.

Grüße von der Donau,
Erik

von Sonic (Gast)


Lesenswert?

Du kannst auch einen Timer über einen externen Pin zählen lassen, z.B. 
T1 für Timer 1. Je nach Zählerstand kannst du die Drehzahl ermitteln. 
Wenn ich dich richtig verstanden habe willst du bei einem Bestimmten 
Winkel etwas auslösen? Dann kannst du mittels Output-Compare-Interrupt 
des gleichen Zählers den Winkel ermitteln (wie oben schon gesagt: 
abhängig von der Drehzahl)

von Christian M. (mukuh)


Lesenswert?

Hallo Stefan,

klingt nach nem schönen Projekt, wäre an der Ganganzeige interresiert
insbesondere mechanische Abfrage (reed kontakte?).

Danke im vorraus

MfG MuKuh

von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Den Anhang scheine ich doch glatt vergessen zu haben (....)

@ Erik:

Danke für die Stichwörter - werde mich damit im inet mal schlau machen 
wie das mit auskoppeln usw funktioniert. Eine Version die nur einen 
Digitaleingang am uC verlangt hat natürlich auch ihre Vorteile.

Die Genauigkeit ist relativ gering (+- 20rpm) da ja der Schaltvorgang 
ohnehin vom Fahrer ausgelöst wird , allerdings sollte die 
Wiederholgenauigkeit (ka ob das der richtige Ausdruck ist) relativ gut 
sein. (Das selbe Signal liefert immer wieder die selbe Drehzahl)


@ Sonic:

Mein Problem ist eher die externe Beschaltung die ich nicht verstehe. 
Wie ich von der Periodendauer dur Drehzahl und zur Position komme ist 
mir schon relativ klar. Aber reden wir weiter wenn ich die Bilder 
gepostet habe. Danke dennoch schon mal im Voraus


@ Christian:

Der Motor hat bereits einen Sensor hierfür eingebaut. Das einzige was 
ich weis ist, dass er seinen Widerstand in Abhängigkeit vom Gang 
verändert ( evtl. Poti am Schaltgestängehebel ??) Ich messe den 
Widerstand brutal per Spannungsteiler über einen ADC Eingang. Anzeige 
per 100mm hohen 7 Segment Display.


Danke schon mal im Voraus für eure rasche und freundlich Hilfe.
Werde mich in Zukunft sicher häufiger hier im Forum beteiligen.
Im Moment komme ich aber leider nur ca alle 4 Tage zum arbeiten also 
nicht böse sein wenn ich mich längere Zeit nicht melde.


lg Stefan

PS: Sollte der Anhang wieder nicht funktionieren dann bitte den 
verwenden "Den Anhang scheine ich doch glatt vergessen zu haben (....)

@ Erik:

Danke für die Stichwörter - werde mich damit im inet mal schlau machen 
wie das mit auskoppeln usw funktioniert. Eine Version die nur einen 
Digitaleingang am uC verlangt hat natürlich auch ihre Vorteile.

Die Genauigkeit ist relativ gering (+- 20rpm) da ja der Schaltvorgang 
ohnehin vom Fahrer ausgelöst wird , allerdings sollte die 
Wiederholgenauigkeit (ka ob das der richtige Ausdruck ist) relativ gut 
sein. (Das selbe Signal liefert immer wieder die selbe Drehzahl)


@ Sonic:

Mein Problem ist eher die externe Beschaltung die ich nicht verstehe. 
Wie ich von der Periodendauer dur Drehzahl und zur Position komme ist 
mir schon relativ klar. Aber reden wir weiter wenn ich die Bilder 
gepostet habe. Danke dennoch schon mal im Voraus


@ Christian:

Der Motor hat bereits einen Sensor hierfür eingebaut. Das einzige was 
ich weis ist, dass er seinen Widerstand in Abhängigkeit vom Gang 
verändert ( evtl. Poti am Schaltgestängehebel ??) Ich messe den 
Widerstand brutal per Spannungsteiler über einen ADC Eingang. Anzeige 
per 100mm hohen 7 Segment Display.


Danke schon mal im Voraus für eure rasche und freundlich Hilfe.
Werde mich in Zukunft sicher häufiger hier im Forum beteiligen.
Im Moment komme ich aber leider nur ca alle 4 Tage zum arbeiten also 
nicht böse sein wenn ich mich längere Zeit nicht melde.


lg Stefan

PS: Sollte der Anhang wieder nicht funktionieren, dann bitte den hier 
verwenden: "http://loop0.org/~steve/oszi.zip";

von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Der Link da oben geht leider nicht wegen den anführungszeichen:

http://loop0.org/~steve/oszi.zip <-- SO muss eh heisen sry.

lg Stefan

von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Hat irgendjemand nach dem Betrachten der Oszi Bilder schon eine Idee ?

Was ist von einer Schaltung wie hier [ 
http://www.elektronik-kompendium.de/public/schaerer/st555.htm ] 
beschrieben zu halten ?

mfg Stefan

von romanua (Gast)


Lesenswert?


von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Nein hab ich noch nicht. Aber scheint mir ein verdammt guter Hinweis 
gewesen zu sein. Vorallem der LM1815 schaut sehr interessant aus.

Herzlichen Dank erst mal an dich romanua

lg Stefan

von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Sry dass ich nochmal nach so kurzer Zeit wieder poste - Wird echt mal 
Zeit mich anzumelden. Weis irgendjemand wo man so ein Teil bekommt, oder 
wie man zu Samples von National kommt ? Muss man da gewerbetreibend sein 
?

lg Stefan

von romanua (Gast)


Lesenswert?

Hallo, Stefan,

digikey hat das teil.

Die DIY ECU Projekte liefern viele Anhaltspunte, vielleicht gibt es auch 
andere Ansaetze, Induktionsensoren auszuwerten. Eventuell tausche mal 
deinen gegen einen Hall-Effect Sensor (die von mir bisher gesehenen 
Nockenwellensensoren waren Hall-Effect Sensoren), der gibt nur High/Low 
aus , dann hast Du gar keine Probleme mit Auswertung.

>Winkelposition der Nockenwelle erfassen/errechnen

Geht das nicht ueber den Kurbelwellensensor? Die Nockenwelle hat 
normallerweise nur einen Impuls per 360 Grad. Bei Deinem Motor scheint 
es auch der Fall zu sein. Fuer das Timing der Zuendung  wird es zu 
ungenau, fuerchte ich.


Meine Lieblingsprojekte sind:

http://www.vems.hu/wiki/

und

http://www.bgsoflex.com/megasquirt.html

LG





von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Jop habs auch bei Farnell schon gefunden.

Ein Sensortausch kommt leider nicht in Frage, da es für alle baugleichen 
Motoren für jedermann ohne weitere Umbauten verwendbar sein soll 
(plug'n'play sozusagen)

Bei dem Motor (Suzuki GSX 1300R Hayabusa) sieht das Signal der 
Kurbelwelle genau gleich aus nur mit doppelter Frequenz.

In die Zündung wird vorerst nur soweit eingegriffen, das diese 
(kurzzeitig) unterbrochen wird sobald eine bestimmte Drehzahl (für den 
Start) erreicht wird.

Werde mich in diese DIY ECU Projekte auf jeden Fall weiter einlesen.

lg Stefan

von holm (Gast)


Lesenswert?

Ich habe hier ein grundsätzliches Problem:
Wozu ist es notwendig, die genaue Position des Nockenwellensensors zu 
erfassen? Das ist ein 4 Zylinder 4Takter der durch 2 Zündspulen gezündet 
werden kann (180° Versatz). Der Nockenwellensensor ist nur dafür da, daß 
Du herausbekommst, welches Zylinderpaar Du befeuern mußt, der Konkrete 
Zeitpunkt seines Signals ist Mettwurscht....

Den Genauen Zündwinkel mußt Du schon über das Signal des 
Kurbelwellensensors ermitteln, dazu reicht es aber aus, das Signal mit 
einem Schmittrigger zu
formen und dann zu erfassen, die Zeitliche Änderung des Signals durch 
die
Änderung seiner Amplitude kompensierst Du austomatisch in den 
Kennfeldtabellen mit der Einstellung des Zündwinkels....

Wo also ist das Problem?

Gruß,

Holm

von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Ich will (für den Anfang) lediglich die Drehzahl erfassen und sonst 
garnichts. Mein Problem ist die elektronische Schaltung hierzu.
z.B.: Schmitttrigger o.Ä.

sieh es so: Gegeben: Das Signal wie auf den Bildern die ich gepostet 
habe
Gesucht: Die Frequenz des Signals.
Der Rest: EGAL !

lg Stefan

von holm (Gast)


Lesenswert?

Schicke das Signal über 1,5KOhm auf die Basis eines npn Transistors. 
evtl
von dieser Basis eine Diode mit Kathode am Transistor und Anode an 
Masse,
ggf. zur Störunterdrückung einen Kondensator von ein paar nF parallel 
zur Diode.
Der Transistor erhält einen Kollektorwiderstand von ca. 4,7K nach +5V,
dann sollten am Kollektor negative Nadelimpulse zur Auswertung bereit 
stehen.

Experimentiere mal damit.

Gruß,

Holm

von Sonic (Gast)


Lesenswert?

Wenn du einen Schmitt-Trigger bauen willst, dann guck' mal hier:
http://de.wikipedia.org/wiki/Schmitt-Trigger
Besser erklären kann's keiner.

von Stefan Oberpeilsteiner (Gast)


Lesenswert?

@holm: Danke für den Tipp, muss mir das ganze mal aufbauen, aber hier 
muss ich sicher vorher mit OPV Entkoppeln um das Signal nicht zu 
beeinflussen. Ein weiteres Problem ist, dass sich testen vorallem im 
oberen Drehzahlbereich sehr Aufwendig gestaltet weil der Motor ja im 
Buggy verbaut ist und wir dazu jedesmal auf eine Strecke fahren müssen.

@Sonic: Wirklich kompakte ERklärung, Danke

lg Stefan

von Stefan Oberpeilsteiner (Gast)


Lesenswert?

Hallo,

Melde mich nach langer Zeit wieder mal.
Habe eine einfache Lösung durch viele Tests gefunden.

Spannungsteiler mit 10k zu 100k Widerständen.
Kleinsignaldiode BA157 nach GND und nach +5V.
ADC Eingang am AVR und schnell genug messen.
Per Timer die Zeiten zwischen den Nulldurchgängen messen und mit f = 1/T 
Drehzahl ermitteln.

Werde hier falls Interesse besteht nähere Details zu gegebener Zeit 
posten.

--> http://users.loop0.org/users/steve/BUGGY/DSC00032.JPG

lg Stefan

von Andreas (Gast)


Lesenswert?

Hi,

ich würde sagen interesse besteht und die "gegebene zeit" sollte nach 
knapp 4 jahren auch gegeben sein ;-)

könntest du die schaltung bzw den quellcode zur verfügung stellen?

danke und grüße

von Stefan O. (stefano)


Lesenswert?

Hallo,

Wie du schon selber geschrieben hast ist das ganze ca. 4 Jahre her. Den 
Schaltplan / Code muesste ich erst mal "ausgraben".

Es ist aber zumindest schaltungstechnisch so einfach wie oben 
beschrieben.
2 Widerstaende und 2 Dioden. Dann einen Timer mit Interupteingang nutzen 
und die Zeit zwischen 2 Nulldurchgaengen ermitteln.

Aus heutiger Sicht wuerde ich das auch anders machen, aber damals hat's 
funktioniert und mir genuegt.

LG

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.