Hallo, ich bestimme derzeit mit einem optischen Encoder (500 Impulse) die Drehzahl meines Motors. Bei einer Abtastrate von 1ms bekomme ich somit derzeit mit einer Ein-Flankenauswertung eine maximale Auflösung von 120U/min(Sprünge). Das System erfordert allerdings jetzt ein Abtastrate von 100us. Kann mir jemand sagen, wie ich das realisieren kann, ohne dass die Drehzahlsprünge/Auflösung stark zunimmt?
@ Peter (Gast) >ich bestimme derzeit mit einem optischen Encoder (500 Impulse) die >Drehzahl meines Motors. Bei einer Abtastrate von 1ms bekomme ich somit >derzeit mit einer Ein-Flankenauswertung eine maximale Auflösung von >120U/min(Sprünge). Was meinst du mit Sprünge? >Das System erfordert allerdings jetzt ein Abtastrate von 100us. Kann mir >jemand sagen, wie ich das realisieren kann, ohne dass die >Drehzahlsprünge/Auflösung stark zunimmt? Mach es richtig. Siehe Drehgeber. MfG Falk
>Einer Ein-Flankenauswertung >von 1ms bekomme Was denn nun? Flankenauswertung oder Abtastung alle 1ms??? >Abtastrate von 100us Taste doch einfach alle 100µs ab und baue nen Quadraturencoder auf.. siehe Wiki: Drehgeber Nachtrag: Aaaah, Falk ist wieder unterwegs ;-)
Wenn Du nur die Drehzahl wissen willst, gib einen Ausgang auf nen Timereingang und mach ne Frequenzmessung (2. Timer = Zeitbasis). 100µs sind beim AVR 2000 Zyklen bei 20MHz, also durchaus zu schaffen. Allerdings darf dann kein anderer Interrutp zu lange blockieren. Man kann aber auch den Pin-Change Interrupt nehmen. Peter
Ok, vielleicht hab ich mich ein bisschen schlecht ausgedrückt... >Einer Ein-Flankenauswertung >von 1ms bekomme >Was denn nun? Flankenauswertung oder Abtastung alle 1ms??? Also ich werte derzeit in dem Zeitraum von 1ms die Flanke A des Encoders aus und zähle die ansteigenden Flanken. Daüber lässt sich dann über eine einfache Multiplikation die Drehzahl ja berechnen. >Abtastrate von 100us Taste doch einfach alle 100µs ab und baue nen Quadraturencoder auf.. siehe Wiki: Drehgeber Problem ist, dass ich selbst bei einer Impulsvervierfachung über Quadraturencoder bei kleinen Drehzahlen (<300U/min) innerhalb von 100us keinen Flankenänderung habe und somit nicht auswerten kann....
Letzteres ist doch aber ein Widerspruch. Oben schreibst du, dass alles gut wäre, wenn du mit 100us abtastest und jetzt, dass das nicht funktioniert. Funktioniert es praktisch nicht, sollte aber theoretisch funktionieren? Dann musst du genaueren Einblick in deine Umsetzung geben. Es fehlen sowieso eine Menge an Randinformationen, z.B. ob du überhaupt mit einem Mikrocontroller arbeitest und wenn ja, mit was für einen.
Peter wrote: > Problem ist, dass ich selbst bei einer Impulsvervierfachung über > Quadraturencoder bei kleinen Drehzahlen (<300U/min) innerhalb von 100us > keinen Flankenänderung habe und somit nicht auswerten kann.... Wenn Du innerhalb Deines Messfensters Zustände haben kannst in denen kein Messwert ermittelt werden kann musst Du entweder die Aufgabenstellung oder die Hardware überdenken. Die Frage, die sich mir sowieso stellt ist ob bei so kurzen Messfenstern überhaupt das Zählen der Impulse Sinn macht. Evtl. bekommst Du mal einen Impuls, in der nächsten Messung zwei (obwohl es sich mit konstanter Geschwindigkeit dreht). In solch einem Fall würde ich eher einen Timer starten und die Takte zwischen zwei Flanken zählen.
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.