Hallo, ich habe ein kleines Problem mit zwei Signalen von einem Zündverteiler. Im Anhang seht ihr ein Bild, welches ich mit dem Oszi aufgenommen habe. Im Grunde muss ich die steigende Flanke von beiden Signalen mit meinem ATMega32 16MHz erkennen. Das wollte ich mit den ext. Interrupts machen. Das dumme, mein Signal hat noch so einen komischen kurzen Impuls während der Low-phase. Dieser kurze High-Impuls sollte ignoriert werden. Es sollen nur die Flanken mit den roten Pfeilen erkannt werden. Auf die steigende Flanke wird ein Timer gestartet. Die Frequenz des Signals (rote Linie) variiert je nach Drehzahl zwischen 3 - 50 Hz. Einen wirklichen Ansatz habe ich momentan noch nicht. Hat jemand von euch einen Lösungsvorschlag. Gruß Thomas
Hallo Thomas, was ist den Dein Ziel dieser Impulsauswertung? wenn Du einen Drehzahlmesser haben willst dann zähl jede Flanke und halbiere dann die die Anzahl !? oder werte die H-Zeiten aus und ignoriere eine von beiden zum syncronisieren und werte dann auch nur jede zweite Flanke aus; Gruß Hartmut.
Bei 3-50Hz polle die Signale. So bist Du auch resistenter gegenüber hochfrequenten Störungen. Siehe die Endlosdebatten in diversen Quadraturdecodern. Einfach die zu kurzen Störungen wegfiltern. Je nach dem kann es günstiger sein die Zeiten zwischen 2 gültigen Impulsen zu messen oder die Anzahl Impulse pro Zeiteinheit.
Aber wenn er die zu kurzen Impulse weg filtert (wie auch immer), dann erkennt er die langen Impulse entsprechend verzögert. @Thomas: Ist diese Verzögerung tolerierbar?
Ich hätte einen etwas anderen Vorschlag: Ich gehe mal davon aus, daß Du nach einer "richtigen" positiven Flanke eine Zeitverzögerung startest, um nach Ablauf dieser Zeit ein Ereignis auszulösen. Wenn diese Verzögerung länger ist als die Länge der Störimpulse, kann man das Ganze sehr einfach lösen: - Mit positiver Flanke Timer starten (auch wenns ein falscher ist) - Fällt das Eingangssignal zu früh wieder auf Null, wars ein Störimpuls, also setze den Timer wieder zurück Hiermit hast Du keine verfälschende Zeitverzögerung Sollte meine obige Annahme nicht stimmen (also Länge der Störimpulse größer als Deine gewünschte Verzögerung, muß man anders rangehen. Jörg
Hi, ich erkläre kurz was ich mit dem Signal machen sollte. Die Signale steuern Einspritzdüsen, je Signal ein Düsenpaar. Die High-Flanke ist das Signal zum Start der Einspritzung. Abhängig von den Motorsensoren wird die Einspritzdüsen zwischen 3-18ms angesteuert. Ich brauche also direkt die High-Flanke ohne große Verzögerung. Gruß Thomas
Dann gehts nur etwas aufwändiger: Zähler mit z.B. 1000facher Frequenz der geringsten Frequenz laufen lassen und mit den "richtigen" Impulsen synchronisieren (so wie in meinem Vorpost beschrieben). Dann hast Du durch den Zählerstand ein Kriterium zum Auslösen der Einspritzventile. Theoretisch hängst Du eine Motorumdrehung hinterher, das sollte aber nichts machen, da sich die Drehzahl von einer zur nächsten Umdrehung ja nur unwesentlich ändert. Jörg
>ich erkläre kurz was ich mit dem Signal machen sollte. Die Signale >steuern Einspritzdüsen, je Signal ein Düsenpaar. Die High-Flanke ist das >Signal zum Start der Einspritzung. Abhängig von den Motorsensoren wird >die Einspritzdüsen zwischen 3-18ms angesteuert. >Ich brauche also direkt die High-Flanke ohne große Verzögerung. Nein. Damit erklärst du, was das Signal zur Zeit tust. Was du mit (dem roten auf das Oszibild gemalten) Signal machen willst, ist nicht bekannt.
Ich verstehe das jetzt so, dass beim "richtigen" Impuls die Einspritzdüse sofort für die Dauer von 3-18ms angesteuert werden soll. Sofort geht aber nicht, nichtmal ungefähr, denn es braucht zeit, die richtigen Impulse von den falschen zu unterscheiden. Einen Lösungsansatz hat Jörg schon genannt: Die Ansteuerung der Düsen noch viel weiter verzögern, nämlich um eine Motorumdrehung. Ich nehme an, dass es sich um einen 4-Takt Motor handelt, dann wären ZWEI Umdrehungen Verzögerung richtig, denn es wird immer abwechselnd eingespritzt und ausgeblasen. Ein anderer Lösungsansatz, den ich von meinem Motorrad bezüglich der Transitorzündung kenne ist, den Impulsgeber so zu verdrehen, dass er die Impulse immer deutlich früher abgibt, als gezündet werden soll, um verzögerungen in der Elektronik auszugleichen. Da fällt mir gerader auf: Die Signale kommen vom Zündverteiler. Ich bezweifle daher sehr, dass diese Impulse zeitlich exakt den zeitpunkten entsprechen, wo eingespritzt wird. Genau genommen muss der Einspritzvorgang doch schon eine ganze Umdrehung vor der Zündung stattfinden, oder nicht?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.