Zurück zum Menü 5 5.1.8 Drehzahlschalter Erste Fassung: 29.07.2009 |
Ein Leser
schickte mir einen Sensor zu, aus dem ich einen
Drehzahlschalter entwerfen soll. Er möchte diesen
Sensor als Drehzahlaufnehmer in einem
Ottomotor benutzen. Da schaute ich zunächst
einmal, was das für ein Sensor-Modell ist:
Gut, das habe ich
verstanden.
Was aber ist das
für ein Sensor ?
Nun, das ist also ein Kurbelwellensensor. Für Schlosser ==> Bekommt bloß keinen "Herzinfarkt", ich reinige die Drehbank sogar zwei mal im Jahr ... ;-) ;-) Ok, Scherz beiseite, weiter gehts: Mit der Drehbank
möchte ich dann die Kurbelwelle simulieren. Der
Leser sagte mir, dass seine Kurbelwelle 2 Nocken
hat, anstatt eines Zahnrades, also nahm ich für
den ersten Versuch ein altes Stückchen
Gewindestange, bog sie um 90 Grad um und spannte
sie in das Bohrfutter. So kann ich nun mit der
stufenlosen Drehzahleinstellung der Drehbank die
Kurbelwelle simulieren. Natürlich muss man
später noch bedenken, das ich hier also nur
einen Nocken simuliert habe, es später aber zwei
Nocken in einem Ottomotor sein werden. Sowas
spielt aber in der ersten Probephase keine
Rolle.
Nun habe ich
eine lange Litze an den Sensor gelötet und ihn
mit dem Oszilloskop verbunden.
Da das Oszi (oder auch: "der Oskar" nicht jedoch: "der Ossi") aber noch ganz nagelneu ist, habe ich den Tastkopf erst einmal mit dem 1kHz-Signal kalibriert: Wie das genau gemacht wird, steht in den meisten Fällen in der Bedienungsanleitung des Oszis. Jetzt habe ich eine beliebige, mittelschnelle Drehzahl an der Drehbank eingestellt und die Gewindestange flitzte also immer an dem Sensor vorbei. Daraufhin
habe ich das Signal stabil eingestellt und
hier einmal dokumentiert:
Wenn wir nur den "oberen, positiven Nippel" betrachten, kommen wir dabei schon auf "flotte", knappe 1,5 Volt ! ----------------------------------------------------------------------------------- Das
Liest man so ab ==>
In Y-Richtung habe ich das Oszi so eingestellt, dass 1 Kästchen 0,5 Volt entspricht. Aber
welche Frequenz habe ich zufällig an
der Drehbank eingestellt ?
Nun,
das Oszi ist so eingestellt,
dass der Elektronenstrahl in
X-Richtung 1
Kästchen in 20 ms
durchläuft.
Nun zählen wir die Kästchen pro komplette Schwingung. Also zählen wir irgendwo auf dem Bild von einem "oberen Zippel" zum nächsten. Ich
zähle hier ==> 2,2 Kästchen.
Das ergibt ==> 40,4 ms Welche
Drehfrequenz des Dreibackenfutters
ergibt sich also ?
Nun, eine Umdrehung pro
Sekunde wäre ==>
1 U/s ==> also 1/s Also berechnen wir die Umdrehungen pro Sekunde so ==> 1 / 40,4 ms ==> 1 / 0,0404 s ==> 24,752475248 1/s (Umdrehungen pro Sekunde). Das entspricht aber einer Drehzahl von 60 x 24,752475248 U/s ==> 1485 U / (s x 60) ==> 1450 U/min Aha,
da haben wir mal etwas Schönes
gelernt.
---------------------------------------------------------------------------------------------- Aber es geht noch weiter ... Es
wurde gefordert, dass ein
Schalter ab 700 Umdrehungen
pro Minute einschaltet und
unterhalb von 700 U/min wieder
aus schaltet. Eine Hysterese
war nicht gefordert.
Also überlegen wir nun einmal, wie wir das möglichst einfach und reproduzierbar hin bekommen. Ich nehme immer gern mal eine Picaxe zum Basteln, also soll solch ein Teil hier auch verbaut werden. Aber zunächst müssen wir das Signal für die Picaxe aufbereiten. Ich dachte dabei an ein der Drehzahl proportionales Rechtecksignal, dessen Länge der logischen "1" man dann sehr einfach und gut mit der Picaxe messen kann. Mehr zu diesem Baustein auf dem strippenstrolch.de... Damit das dann
nicht ganz so "XP- oder
VISTA-lastig" wird, will ich
mal versuchen, das Programm
für die Piaxe und die
Versuche dazu unter Ubuntu-Linux
zu machen. Den Weg zum
VAG-Händler wegen des
Sensors musst du dann selber
finden. Der Sensor soll eine
gute, langjährige
Liefertreue haben.
Wer diesen Weg scheut, der kann sich auch bei Conrad Elektronik umschauen: Induktiver Sensor --- Conrad-Shop So
der erste Tag ist vorüber und
die Werkstatt muss gegen
neugierige Finger gesichert
werden.
Da fällt mir ein,
dass mein Vater einmal zum
Schluss als Industriemaler
tätig war und mir für meine
damalige Bastelwerkstatt
zwei Schilder persönlich
angefertigt hat. Wenn ich
jetzt den Raum verlasse,
muss ja schließlich alles
seine
Erstmal das Oszi absichern ..."ISO 9001- und
VDE 0100 - Ordnung" haben:
Und die Drehbank nicht vergessen ... ----------------------------------------------
So, genug, des "Plausch's" ... ... weiter geht's ! Neuer Tag, neues Glück ... ---------------------------------------------- Zunächst muss man
einmal das Sensorsignal auf
einen ungefähren 5
Volt-TTL-Pegel bringen. Dazu
verwendete ich eine ganz
einfache
Darlington-Emitterschaltung
aus zwei
2N2222-Schalt-Transistoren:
Aus dieser
Schaltung kam dann auch
schon gleich ein Signal
heraus, dass man
vielleicht schon direkt
an die Picaxe geben
könnte:
Y1 (unten) ==> 1V/DIV Y2 (oben) ==> 2V/DIV X ==> 10 ms/DIV Fertiges Signal A ==> Aufbereitetes Signal am Ausgang der Schaltung B ==> Signal am Eingang der Schaltung Nun kann
man bereits daran
gehen, und das
Ausgangs-Signal
"logisch 1" (grün
gekennzeichnet) auf
die Picaxe 08M
geben.
Es dürfte auch klar ersichtlich sein, dass dieses Signal in der Länge mit der Drehzahl variiert und auch zur Drehzahl proportional ist. Ebenso ist es etwa 5 Volt groß. Mit einem Messbefehl "count" der Picaxe kann man nun die Frequenz des Signals in einen 16 Bit-Binärwert übersetzen lassen und das Ergebnis sehr leicht mit ein paar Befehlen im Picaxe-Porgramm weiter verarbeiten. Zuvor
jedoch der
Schaltplan dazu:
Die Diode D1 lässt das aufbereitete Signal etwas sauberer rüber kommen. Diode D2 dient als Freilaufdiode für die Induktivität der Relaisspule. Jetzt
fragt sich
manch einer
sicherlich mit
Berechtigung:
"Wie
wird denn dort
nun der PC
angeschlossen
?"
Nun, das sagt dir diese Schaltung: Da habe ich mir mal schnell ein Adapterkabel gelötet: Ich
benötigte am
einen ende ein
"9-pol-SUB-D-Männchen
und am anderen
Ende habe ich
einfach eine
dreipolige
Stiftleiste
angelötet, die
man gut in das
Steckbrett
einstecken
kann. Falls
der dreipolige
Stecker mal in
eine Platine
gesteckt
werden muss,
so kann man in
die Platine
einfach die
entsprechende
dreipolige
Sockellseite
einlöten:
Mein etwas "kuddelmuddeliger" Versuchsaufbau sah dann so aus: So, jetzt kommt zunächst noch ein Test-Programm für die Picaxe hinzu. Nachdem
ich also den
oberen Plan
gesteckt
hatte, schrieb
ich ein
kleines
Testprogramm
mit dem
LinAXE-Pad und
meinem neuen
Ubuntu und
ließ die
gebogene
Gewindestange
dabei von der
Drehbank
mittelschnell
am Sensor
vorbei sausen.
Wie
wir sehen,
habe ich eine
ganz einfache
Schleife
geschrieben
und dort den
"count"-Befehl
und den
"debug"-Befehl
eingebaut. Der
Count-Befehl
liest mir die
Anzahle von
logisch "1"
pro 1000 ms
vom IN-Port 3
(Pin 4) ein
und der
Debug-Befehl
sendet das
Ergebnis an
den PC, so
dass wir es
hier in dem
aktiven
Fensterchen
"Debugging
08M" sehen
können.
Die Gewindestange flitzte bei dem Bildschirmfoto also 15 mal pro Sekunde am Sensor vorbei. Das entspricht 15 Hz oder einer Drehrzahl von 15
U/s x 60
==> 900
U/min.
Also ist eine Picaxe locker in der Lage, als Drehzahlschalter für den Ultraleichtflieger mit Ottomotor zu dienen. Jetzt ist es aber so, dass die Picaxe für diese Messung gern ein 50-50-Signal hätte. Also ein Signal, das 50% der Zeit logisch 1 ist und 50% der Zeit logisch 0. Das gibt unsere sehr einfache Darlington-Schaltung aber nicht her. Also müssen wir das Signal noch weiter aufbereiten. Ich schaute in meine Bastelkisten und fand einige CD 4027. Das sind J-K-Master-Slave-Flip-Flops. Die kann man so beschalten, dass sie einen Frequenzteiler bilden. Nach diesem Frequenzteiler hat man dann ein schönes 50-50-Signal für die Picaxe und das sieht auf meinem Oszi so aus: Wie wir sehen, hat das Signal an der Kurbelwelle eine Drehzahl von 1 Umdrehung pro 60 ms. Das sind 1 / 0,06 s = 16,667 Hertz oder auch 16,667 Umdrehungen pro Sekunde. Die Picaxe zählt dabei auf 8 oder 9, weil wir ja den Teiler durch 2 (CD 4027) zwischengeschaltet haben. Im oberen Signal haben wir die "1" immer nach 120 ms . Das sin 1 / 0,12 s = 8,33 Hertz oder auch 8,33 Umdrehungen pro Sekunde. Jetzt aufgepasst: Da wir aber am Ottomotor zwei Nocken haben, können wir die Picaxe gleich einfach berechnen, das wir ja den Teiler durch 2 bereits eingebaut haben ( CD 4027). Wir rechnen also: Schaltdrehzahl soll 700 U / min sein. Das sind 700 / 60 sec ==> 11,666 U/ sec Das war's schon. Wir programmieren die Picaxe also mit dem Wert "12" und haben dann den gewünschten Drehzahlschalter mit der Schaltschwelle bei 2 Nocken und 700 U/ min entwickelt. Prima, was ? Doch jetzt noch die letzten zugehörigen Dokumente. Zunächst einmal der Schaltplan: So, und zum Schluss folgt nun noch das Programm für die Picaxe, das ebenfalls sehr einfach gehalten ist: In
den Zeilen 3
und 4 kann man
dann noch die
individuellen
Anpassungen
für den
Ottomotor
vormehmen.
Daher sollte
man sich den
Programmierstecker
und die beiden
Widerstände R5
und R6 ruhig
gönnen und sie
mit auf die
fertige
Platine bauen.
So kann man
dann später
immer mal
wieder schnell
und
unkompliziert
eine Änderung
durchführen,
sogar "online"
wenn der Motor
läuft.
Drehzahlmessungen
am laufenden
Motor kann man
mit dem Befehl
"Debug b1"
machen, der
dann vor Zeile
3 eingefügt
werden muss.
Dazu kann man
einfach das
Programmierkabel
stecken lassen
und die Daten
in die andrere
Richtung zum
PC fließen
lassen. Mit
dem
Debug-Fensterchen
(haben wir
weiter oben
schon gesehen)
wird dann der
Wert des Bytes
b1 dezimal und
binär
angezeigt. Der
Rest erledigt
dann schnell
und
unkompliziert
der
Taschenrechner,
um die recht
genaue
Drehzahl zu
ermitteln.
Wer es etwas genauer haben möchte der sollte ich einmal den Befehl "pulsin" anschauen, der dann eine Auflösung von 10µs bietet, jedoch anstatt der logischen 1-Pegel zu zählen die Länge dieser Pegel misst. Daher muss man in diesem Fall das Ergebnis auch anders umrechnen. Der geübte Programmierer macht das gleich in der Picaxe selber und gibt dann die errechnete Drehzahl als Wort (16 Bit) an den "Diagnose-Rechner" aus. Wie man auf dem Schaltplan oben gut erkennen kann, sind noch ein paar Ein- und Ausgänge frei, so dass da der Fantasie kaum Grenzen gesetzt sind. So kann man beispielsweise bestimmte Drehzahlen noch zusätzlich mit LEDs anzeigen lassen oder auch per ADC und Spannungsteiler aus ohm'schem Widerstand und Heißleiter noch eine Temperaturüberwachung mit in die Messung einfließen lassen. In
diesem Beipiel
jedoch soll
eine
elektronische
Zündung ab
einer
bestimmten
Drehzahl hinzu
geschaltet
werden.
-------------------------------------------------------------------------------------------------------------- Ich wünsche viel Vergnügen beim drehzahlabhängigen Schalten von Lasten am Ottomotor, |
|