Forum: Mikrocontroller und Digitale Elektronik Impulse interpolieren


von excelsior (Gast)


Lesenswert?

Hallo zusammen,

ich würde gerne die Drahzahl eines Benzinmotors erfassen. Der Motor
dreht zwischen 2000 und 20000 U/min (Ein-Zylinder, 2T).

Wenn man eine Umdrehung von z.B: 2000 / min mal auf eine Sekunde
herunterrechnet (was schon eine ziemlich miese Refreshrate eines
Messwertes ist) bleiben nicht mehr viele Impulse pro Sekunde über. Ich
wollte die Drehzahlm direkt über das Zündkerzenkabel messen. Hat jemand
eine Idee, wie ich die Drehzahl genauer ermitteln kann? Kann ich die
Impulse irgentwie interpolieren, so daß ich im Schnitt mehr Impulse pro
Sekunde bekomme?

Danke!

von The Daz (Gast)


Lesenswert?

Du koenntest mit Hilfe eines schnellen Timers die Zeit zwischen den
Impulsen messen und darueber die Frequenz errechnen. Wenn die Frequenz
zu hoch oder zu niedrig wird, muss man den Timer prescaler anpassen.

von Jens D. (Gast)


Lesenswert?

Hallo
also wen du 2000 impulse / minute bekommst hast du 33,3333... impulse /
sekunde
rundest du ab auf 33 nimst es wieder mal 60 kommst du auf 1980 ist das
zu ungenau?
wenn ja kannst ja noch eine kommastelle mit nehmen macht dann 1998
U/min

messen kannst du endweder ueber die zuendspule (du wirst warscheinlich
mehrere 10MOhm widerstände brauchen wegen dem zündfunken) oder du
machst es optisch per IR Reflektions Lichtschranke
den sender / sensor (CNY70) vor die welle und auf der welle makierst du
einen strich schwarz.

beides ist nicht gerade wenig aufwand aber machbar

gruss

von Karl H. (kbuchegg)


Lesenswert?

Du hast 2 Moeglichkeiten:
* entweder du misst wieviele Impulse du pro sec kriegst
* oder Du misst die Zeit zwischen 2 Impulsen und errechnest daraus
  die Drehzahl. f = 1 / T

Was meinst Du mit 'miese Refreshrate', zu viel oder zu wenig ?
Hinweis: Du glaubst doch nicht im Ernst, dass der Motor die
angezeigte Drehzahl zu jedem beliebigen Zeitpunkt auch exakt
einhaelt?

Wenn Du die Drehzahl genauer messen willst, dann musst Du die
Aufloesung erhoehen.
Beim Impulse-Zaehlen heisst das: das Fenster laenger offen halten
und statt 1 sec zb 2 sec lang messen.
Misst Du die Zeitdauer zwischen 2 Pulsen, dann muss die Ermittlung
der Zeit genauer gehen. Normalerweise misst man ja so, dass
man das Messprinzip umdreht: Die Pulse definieren ein Fenster
und in diesem Fenster zaehlt man die Pulse einer definierten und
bekannten Frequenz.
Also: Du hast eine Konstante Frequenz von zb. 10 kHz, d.h. in
einer Sekunde kommen da 10000 Pulse rein. Der erste Impuls
vom Zuendkabel startet das Fenster, du beginnst mitzuzaehlen,
wieviele Impulse von den 10kHz reinkommen. Der naechste Puls
vom Zuendkabel schliesst das Fenster wieder. Dein Zaehler ist
sagen wir mal, bis 5000 gekommen. d.h von einem Impuls vom
Zuendkabel bis zum naechsten sind
     5000
    ----- = .2
    10000

Sekunden vergangen.
1 / 0.2 -> 5 Zuendkabelpulse pro Sekunde * 60 -> 300 Pulse/Minute
Da du einen 2T hast, sind das dann auch 300 U/min

Dreht der Motor schneller, so schaffen es in der Zeit vom 1. bis
zum 2. Zuendimpuls nur noch, sagen wir mal, 340 verwertbare Ticks
der 10kHz Frequenz zum Zaehler.

      340
    ----- = 0.034
    10000

1 / 0.034-> 29.4 U/sec * 60 -> 1764 U/min

Wie lange eine Messung dauert, ist also nicht konstant, sondern
vom Messobjekt selbst abhaengig. Je schneller dieses dreht, desto
kuerzer wird auch die Messzeit der 10kHz. Desto weniger Ticks
schaffen es dann zum Zaehler. Jetzt kannst Du natuerlich mal
ausprobieren was ein Ereignis mehr/weniger am Zaehler in der
Berechnung fuer einen Unterschied macht.
Bei 20000 U/min ist das Fenster nur noch 0.003 Sekunden offen.
Von den 10kHz schaffen es grade mal 30 Pulse bis zum Zaehler.
Sind es nicht genau 30 sondern 29, dann errechnet sich daraus
eine Drehzahl von 20698 U/min, bei 31 Pulsen waeren es 19354 U/min.
d.h. 10kHz sind viel zu wenig, du hast schon runde 700 U/min
Abweichung bedingt durch den Messfehler.
Also hoeher: 100 kHz. Dann schaffen es nicht 30, sondern eben 300
Pulse im vorgegeben Zeitfenster gezaehlt zu werden:

  300 Pulse   -> 20000 U/min
  299 Pulse   -> 20066 U/min
  301 Pulse   -> 19933 U/min

schon besser.

Aber egal was Du auch immer anstellst: Je kuerzer die Messzeiten
werden, desto ungenauer wird das Ergebnis. Physik laesst sich
nicht ueberlisten.

von der mechatroniker (Gast)


Lesenswert?

eine Kommastelle mehr mitnehmen, hieße ein Meßwert alle 10 sec. Das
dürfte in vielen Fällen inakzeptabel sein. und 1980 statt 2000 wär
immerhin ein ganzes Prozent Abweichung...

2000 Impulse/min wäre ein Impuls alle 30 msec. Lass einen Timer mit 1
MHz laufen (dann würden auch für 60 msec noch 16 Bit reichen), dann
hast du eine Genauigkeit von deutlich weniger als 0,1%, und die
Refreshrate sollte auch stimmen...

von MSE (Gast)


Lesenswert?

Ich sage auch: Zeitmessung!

Gruß, Michael

von Unbekannter (Gast)


Lesenswert?

Naja, man könnte die Sache natürlich noch kombinieren. Man misst also
die Zeit zwischenen mehreren Impulsen.

von excelsior (Gast)


Lesenswert?

Ich messe bereits mit dem selben µP die Geschwindigkeit per Zeitmessung
(Zeit zwischen zwei Impulsen). Dazu habe ich Magnete am Kettenrad
angebracht, die ich mit einem Hall-Sensor "abtaste". Daruas ergibt
sich eine Auflösung vom 1 Impuls pro 2,8 cm. Also eine recht gute
Auflösung!

Ich möchte die Drehzahl zum Einen als Wert auf einem Display anzeigen
und zum Anderen als Balkenanzeige mit LED's darstellen. Da es sich um
einen Rennmotor mit ziemlich harten Drehzahländerungen handelt ist mir
eine schnelle Refreshrate (vor allem bei der Balkenanzeige) besonders
wichtig. Im Gegenzug würde ich lieber Abstriche bei der Genauigkeit
machen. Es soll halt nciht so aussehen wie ein Fahrradtacho, der alle 2
Sekunden den Wert neu anzeigt. Auch ein Flattern der letzten Stellen
wäre OK für mich, wenn die Refresh-Rate gut aussieht!

Hat btw. jemand Erfahrungen was die Messung der Zündimpulse angeht? Hat
jemand eine Schaltung? Was habe ich für Spannungen auf der Leitung zur
Kerze?

Danke nochmal!

von Dennis Brücke (Gast)


Lesenswert?

@excelsior,

kommt mir irgendwie bekannt vor... schau mal in der Suche
da war das Thema von mir schonmal komplett durchgekaut incl.
Schaltplan

Gruß Dennis

von Hannes L. (hannes)


Lesenswert?

Das Zündkabel kann man vermutlich auch kapazitiv anzapfen.
Dazu außen eine kleine Blechschelle drumherum legen, anschließen und
dieses Signal über Widerstand und Z-Diode auf AVR-Pegel begrenzen.

Zumindest wurde in uralten Bauanleitungen für Drehzahlmesser und
Stroboskope das Zündsignal so abgegriffen.

...

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.