Steuer- / Zähldrehungen eines Gleichstrommotors

7

Kann ich mit einem Arduino und einem L293D IC die Anzahl der Umdrehungen eines Gleichstrommotors steuern? Oder kann ich nur die Richtung und Geschwindigkeit des Motors steuern?

Ich kaufte eine zweirädrige Roboterplattform, um Arduino-Programmierung und Elektronik zu lernen. Die Plattform ist hier: http://www.robotshop.com/de/dfrobot-2wd-mobile-platform-arduino.html

Jedes Rad wird von einem Gleichstrommotor gesteuert. Ich folgte dem Tutorial von Adafruit ( https://learn.adafruit.com/adafruit-arduino-lesson-15-dc-motor-reversing ), um die Motoren mithilfe eines L293D-IC zu steuern.

Jetzt merke ich, dass ich die Drehungen des Motors nicht direkt steuern kann. Ich kann die Richtung, Spannung und Zeit der Drehung steuern. Zum Beispiel: 500 Millisekunden bei 50% Spannung vorwärts schalten.

Aber das ist schwer in tatsächliche Rotationen umzusetzen. Die Drehzahl des Motors variiert je nach Spannung (z. B. wenn ich von 2AA-Batterien auf 4AA-Batterien umschalte) und Gewicht (das Hinzufügen von Sensoren verlangsamt die Motoren). Jedes Mal, wenn ich Spannung oder Gewicht ändere, muss ich raten, wie viel Spannung / Zeit eine einzelne Umdrehung verursacht.

Ich denke, ich sollte nur Schrittmotoren kaufen. Bevor ich das mache, werde ich die Community fragen: Gibt es eine Möglichkeit, Gleichstrommotoren eher durch Rotation als durch Zeit zu steuern?

Michael Cornn
quelle
2
Anders als mit einem Drehgeber?
Ignacio Vazquez-Abrams
Ich verstehe nicht, wie man einen Drehgeber an einen Gleichstrommotor anschließt. Ich sehe, dass der Drehgeber einen Knopf hat und die drei Stifte dem Arduino mitteilen, um wie viel Grad sich der Knopf gedreht hat. Aber wie würden Sie diesen Knopf an den Gleichstrommotor (oder das Rad, das der Motor dreht) binden?
Michael Cornn
Mit Zahnrädern, einem Riemen oder einer Kette.
Ignacio Vazquez-Abrams
1
Oder eine Wellenkupplung, obwohl dies eine genauere Ausrichtung erfordern kann. Schrittmotoren werden im Allgemeinen nicht für mobile Roboter verwendet, da sie ziemlich schwer und leistungshungrig nach ihrer Leistung sind. Abhängig von Ihren Auflösungsanforderungen können Sie auch Ihre eigenen optischen oder magnetischen Encoder herstellen, insbesondere wenn Sie in der Nähe der Felge eines Rads arbeiten können. Ein Quadratursystem liefert die vierfache Elementauflösung. Wenn Sie also einen Arbeitsdurchmesser haben, der 8 oder 16 physikalische Elemente mit zwei beabstandeten Sensoren unterstützt, erhalten Sie eine anständige Auflösung (32 oder 64 Zählungen / Umdrehung) für die Bewegung. Siehe robotics.stackechange.com
Chris Stratton
Danke für den Hinweis. Wäre eine solche Frage besser für robotics.stackexchange.com geeignet?
Michael Cornn

Antworten:

2

Wie Sie entdeckt haben, gibt es viele Variablen beteiligt, so müssen Sie eine gewisse Art von Feedback. Ein beliebter Weg, dies zu tun, ist mit einem Encoder, aber abhängig von Ihren Anforderungen können andere Arten von Sensoren ausreichen. Wenn Ihr Problem beispielsweise darin besteht, den Roboter in einer geraden Linie zu halten, kann ein elektronischer Kompass helfen. Für einen Linienverfolgungsroboter reichen normalerweise die Liniensensoren aus. Entfernungssensoren können Ihre Entfernung verfolgen. Du hast die Idee.

Karl Bielefeldt
quelle
3

Stepper wäre schwer und batterieverbrauchend, wie Ignacio sagt.

Pololu stellt einen Encoder für ein Rad her: http://www.pololu.com/product/1217 , aber natürlich können Sie dies auch auf andere Weise implementieren.

gwideman
quelle