Projekt Drehzahlmesser mit Induktivem Abgriff
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 :)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von Powell
Hallo ihr zwei,
vielen Dank für eure Posts, zunächst zu Crazy Harry: Lustigerweise habe ich es auch mit der Schaltung von Enduro-Stammtisch probiert :). Ich bekomme aber kein negatives Signal raus - das hab ich nur direkt am Induktiven Abgriff durch das Nachschwingen, am Schaltungsausgang bekomme ich eine - sagen wir nicht so ganz sauberes - 5V Signal. Ich hab dahingehend etwas mit Schmitt-Triggern experimentiert und habe letztendlich festgestellt dass es eigentlich ganz einfach geht: Das beste Ergebnis erzielte ich mit Reihenschaltung aus 1M Widerstand und Z-Diode 5V die das Eingangssignal auf 5V herunterregelt, und dort kommt der Schmitt-Trigger dran an dessen Ausgang ich dann perfekte Rechtecksignale herausbekomme - nur eben noch etwas zu viele.
wenn du dir die schaltung vom enduro-stammtisch anschaust und verstehst, was der da macht .... der triggereingang des 555 wird "vorgespannt" über die beiden R's auf einen pegel knapp über der triggerschwelle. der impuls von der spule (auch wenns keine ist ;) ) senkt die spannung kurz ab und das teil triggert. wenn du die widerstände durch einen trimmer ersetzt, kannst du das recht genau einstellen. aber wie gesagt: das ganze ist sehr vom zündkabel, bike, ... abhängig.
ich hab auch schon gelesen, daß manche einfach einen magnetfeldsensor aufs kabel klemmen
ich bin inzwischen dazu übergegangen doch das unterbrecherkabel (also das kabel vom unterbrecher bzw. der cdi zur zündspule) anzuzapfen und über eine einfache schaltung an den µC zu legen. das funktioniert bisher ganz gut.