Hallo zusammen,
ich beschäftige mich gerade mit einer Schaltung für einen Drehzahlmesser bzw. anderer Module die Drehzahlabhängig in KfZ/Mopeds angesteuert werden können/sollen
Mein derzeitiges Problem liegt noch an einer Sauberen Signalaufbereitung des Drehzahlsignals. Schaltungen für den Anschluss an die Zündspule oder den Pickup findet man ja leicht im Netz, aber ich möchte es gerne Induktiv machen (einfch ein Kabel um das Zündkabel gewickelt).
Über eine Transistorschaltung und einen Schmitt-Trigger habe ich es schon so weit hinbekommen, dass an meinem Controller saubere Rechtecksignale ankommen. Allerdings zeigt mir mein Display nach Auswertung der Signale nur Müll an.
Mein Programm sieht vereinfacht so aus:
Pulsein F , Pinc , 3 , 0
RPM = 1 / F
RPM = RPM * 6000000
F ist die Anzahl der 10 uS Schritte die vergeht, bis es zu einer 0->1 Flanke kommt.
Je höher die Drehzahl, desto geringer die Zeit die zwischen zwei Impulsen vergeht, also den Kehrwert davon =1/F nehmen.
Letztendlich noch der Umrechnungsfaktor: 6000 U/min entsprechen 100 Zündungen / sec, das heißt es vergehen 10 ms zwischen jeder Zündung, entspricht also 1.000 * 10 uS, 1/1.000 * 6.000.000 = 6000
Ist das soweit richtig oder liegt hier schon ein grober Fehler vor?
Mein Display ist jetzt aber leider stark am springen - mal zeigt es 50 an, mal 1100. Weiterhin verhält sich die Drehzahl antiproportional zum angezeigten wert: Höhere Drehzahl, niedrigerer wert...![]()
Wenn es jetzt nicht an der Software liegt (bitte prüft mal ob nicht vielleicht doch ein Denkfehler vorliegt) vermute ich dass das Eingangssignal noch zu unsauber ist. Ich vermute dass es nachschwingt und pro Zündung ggf. mehrere Impulse liefert.
Meine Idee war jetzt die, dass man das erste eingehende Signal zählt und dann 3 ms lang alle weiteren Signale Ignoriert. Dann sollte das Nachschwingproblem gelöst sein. Nur wie umsetzen? Mit debounce geht das nicht, denn die Zündimpulse an sich sind sehr sehr kurz. Ich brauche einen Befehl der dem Controller sagt: "wenn ein Zündsignal kommt fängst du an die Zeit bis zum nächsten Signal zu zählen, ignorierst aber erst mal 3ms lang alles was kommt". Wie setze ich das in ein Programm um (Bascom)?
Auch wenn ihr sonst noch Infos zum Thema Zündsignal induktiv abgreifen (Signalaufbereitung) habt, immer her damit![]()
Lesezeichen