In diesem Beispiel steuern wir die Geschwindigkeit eines Linearantriebs mit einem Arduino und einem Motortreiber.
Hinweis: In diesem Lernprogramm werden Vorkenntnisse in elektronischen Grundprinzipien, Arduino-Hardware und -Software vorausgesetzt. Wenn Sie Arduino zum ersten Mal verwenden, empfehlen wir Ihnen, die Grundlagen aus einem der vielen großartigen Anfänger-Tutorials zu lernen, die über die Google- und YouTube-Suche verfügbar sind. Bitte beachten Sie, dass wir nicht über die Ressourcen verfügen, um technischen Support für benutzerdefinierte Anwendungen bereitzustellen, und keine Debugging-, Bearbeitungs-, Code- oder Schaltpläne außerhalb dieser öffentlich verfügbaren Tutorials erstellen, bearbeiten.
Komponenten
- 12V Linearantrieb
- 12V Stromversorgung
- Arduino
- Kraftfahrer
- Potentiometer (optional)
- Elektrische Drähte zum Herstellen von Verbindungen und zum Crimpen von Werkzeugen oder Lötkolben
Verdrahtung
Hardware- und Softwareübersicht
Die Gleichstrommotoren in Linearantrieben benötigen einen hohen Strom (bis zu 5 A). Wenn wir den Linearantrieb direkt an das Arduino anschließen, würde diese hohe Stromaufnahme die digitalen Arduino-Pins zerstören, da sie jeweils nur für 40 mA ausgelegt sind. Daher verwenden wir einen Motortreiber, der ein PWM-Signal (Pulsweitenmodulation) mit niedrigem Strom von der Arduino-Platine aufnehmen und ein PWM-Signal mit hohem Strom an den Linearaktuator ausgeben kann.
Der Motortreiber ist mit zwei digitalen PWM-Pins verbunden (Pins 10 und 11 am Arduino Uno). Durch Setzen eines dieser Pins auf LOW und des anderen auf HIGH (siehe Zeile 18 und 19 im Code unten) können wir den Aktuator mit maximaler Geschwindigkeit ausfahren. Um den Aktuator anzuhalten, setzen wir beide Pins auf LOW (siehe Zeile 21 und 22 im Code unten) und um die Bewegungsrichtung umzukehren, können wir die Reihenfolge der Pins HIGH und LOW umkehren (siehe Zeile 24 und 25 im Code unten). Wir können die Geschwindigkeit auch anpassen, indem wir die Variable „Geschwindigkeit“ auf einen beliebigen Wert im Bereich [0, 255] ändern. siehe Zeile 17 im Code unten.
Code
https://gist.github.com/Will-Firgelli/c0ef0871dc1946d75257e0c29dccae2a
Abwechslungsreiche Geschwindigkeitsregelung mit Potentiometer
Im obigen Beispiel stellen wir die Geschwindigkeit manuell in Zeile 17 des Codes ein. Es können jedoch Situationen auftreten, in denen wir die Geschwindigkeit des Stellantriebs zeitlich variieren möchten. Die einfachste Methode, dies zu erreichen, ist die Verwendung eines Potentiometers. EIN Potentiometer istEin variabler Widerstand mit drei Anschlüssen, der als Spannungsteiler fungieren kann. Durch Drehen des Knopfes des Potentiometers ändert sich die Ausgangsspannung und wir können diese mit dem analogen Pin eines Arduino verbinden, um eine variable Geschwindigkeit einzustellen.
Verdrahtung
Hardware- und Softwareübersicht
Wie oben erwähnt, ist ein Potentiometer eine Drehvorrichtung, die den Widerstand ändert, wenn der Knopf gedreht wird. Durch Verbinden der beiden äußeren Stifte des Potentiometers mit 5 V und GND und des mittleren Stifts mit dem Arduino-Analogstift A0 wird ein Spannungsteiler erzeugt. Wenn der Knopf gedreht wird, liest der Arduino analoge Messwerte im Bereich von [0, 1023].
Für Werte im Bereich [512, 1023] soll der Aktuator ausgefahren werden, und für Werte [0, 511] soll der Aktuator eingefahren werden. Dies kann mit einer einfachen if () / else-Anweisung in den Zeilen 22 und 28 in erreicht werden den Code unten. Mit der Funktion map () (Zeile 23 und 29 im folgenden Code) können wir dies in ein PWM-Signal umwandeln, das sowohl die Geschwindigkeit als auch die Richtung des Stellantriebs steuert.
Code
https://gist.github.com/Will-Firgelli/d2cdf69edc829974885984b3fb8e4856