Forum: Mikrocontroller und Digitale Elektronik DC Motor Steuern Arduino


von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Hallo leute,

ich versuche derzeit einen DC Motor mittels eines Drehgebers zu steuern.
Der Motor hat dabei einen eingebauten Encoder zur Positionsbestimmung.
Der Drehgeber den ich zum steuern benutze ist ein Absolutwertgeber.

Jetzt hätte ich gerne das der Motor sich gleich ausrichtet wie der 
Drehgeber, also den gleichen Winkel zurücklegt und das möglichst 
gleichzeitig mit dem Drehgeber.

Der Drehgeber kann sich dabei unterschiedlich schnell drehen (max 1U/5s)
und seine Richtung jederzeit ändern.

Code der dafür sorgt das sich der Motor immer dem Winkel anpasst 
funktioniert schon.
Leider etwas ruckelig da sobald der Encoder an der gleichen Position ist 
wie der Drehgeber der Motor aufhört und dadurch immer ein ruckeln in 
seiner Bewegung hat...

Hat hierzu vielleicht irgendjemand eine Idee wie ich das ganze 
"smoother" steuern kann? derzeit benutze ich ein Arduino Motorshield... 
ich kann die Geschwindigkeit der Motors also variieren

Am besten wäre es wenn sich der Motor immer an der gleichen Position ist 
wie der Drehgeber und dabei nicht ruckelt...ca so wie ein normaler 
servo...

LG

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@ LeiderNichtVerfügbar AuchNicht (Firma: Keine) (strgfn)

>Jetzt hätte ich gerne das der Motor sich gleich ausrichtet wie der
>Drehgeber, also den gleichen Winkel zurücklegt und das möglichst
>gleichzeitig mit dem Drehgeber.

Das nennt sich Servoantrieb.

>Der Drehgeber kann sich dabei unterschiedlich schnell drehen (max 1U/5s)
>und seine Richtung jederzeit ändern.

Eher langsam.

>Hat hierzu vielleicht irgendjemand eine Idee wie ich das ganze
>"smoother" steuern kann? derzeit benutze ich ein Arduino Motorshield.

Klingt nach einem zu einfachen 1 oder 2 Punkt Regler. Muss man wohl 
verbessern, im Idealfall mit kaskadierter Strom- und 
Geschwindigkeitsreglung.

Hier die Referenz des Meisters aus dem fernen Osten.

http://elm-chan.org/works/smc/report_e.html

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Ja, zu meinem Glück muss der Motor sich nicht schnell bewegen...

Kann ein Zwei-Punkt Regler nicht nur zwischen zwei werten wechseln, 
abhängig von Ins- und Soll Wert?

Ließe sich das denn nicht rein Softwaremäßig auch lösen? Ich dachte 
daran den Motor immer langsamer drehen zu lassen je näher er seinen ist 
wert kommt.
Zusätzlich hätte ich den Motor einfach jede Bewegung des Drehgebers 
100ms oder so verspätet machen lassen.

von Falk B. (falk)


Lesenswert?

@ LeiderNichtVerfügbar AuchNicht (Firma: Keine) (strgfn)

>Kann ein Zwei-Punkt Regler nicht nur zwischen zwei werten wechseln,
>abhängig von Ins- und Soll Wert?

Nö, der arbeitet rein binär, an/aus bzw. vorwärts/rückwärts.

>Ließe sich das denn nicht rein Softwaremäßig auch lösen?

Davon rede ich doch! Der Regler sitzt in der Software! ist doch jetzt 
auch schon so!

"Code der dafür sorgt das sich der Motor immer dem Winkel anpasst
funktioniert schon."

Schön kopiert und nix kApiert!

> Ich dachte
>daran den Motor immer langsamer drehen zu lassen je näher er seinen ist
>wert kommt.

Das macht ein PID Regler, der arbeitet quasi-analog. Ist alles im 
Artikel vom Elm Chan beschrieben, sogar in Nicht-japanisch ;-)

>Zusätzlich hätte ich den Motor einfach jede Bewegung des Drehgebers
>100ms oder so verspätet machen lassen.

Das ist die Murksvariante 8-0

von Max M. (jens2001)


Lesenswert?

LeiderNichtVerfügbar A. schrieb:
> einen DC Motor

Ja, Ne gibt ja auch nur einen DC Motor!

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.