- Erforderliches Material
- Schaltplan
- Was ist ein Servomotor?
- Erklärung des Arduino-Codes
- Steuern mehrerer Servos mit Arduino-Working:
Die Verwendung von einem oder zwei Servos mit Arduino ist einfach, aber was ist, wenn wir mehr als einen Servomotor verwenden möchten?
Hier zeigen wir Ihnen, wie Sie mehrere Servomotoren mit Arduino steuern können. Das Anschließen mehrerer Servomotoren an Arduino scheint einfach zu sein. Wenn wir jedoch alle Servos an die Arduino-Versorgungsstifte anschließen, funktionieren sie nicht richtig, da nicht genügend Strom vorhanden ist, um alle Motoren anzutreiben. Sie müssen also ein separates Netzteil für die Motoren verwenden, entweder von einigen Adaptern (5V 2A) oder von hochwertigen 9V-Batterien.
Erforderliches Material
- Arduino UNO
- Servomotor
- Energieversorgung
- Steckbrett
- Kabel anschließen
Schaltplan
Was ist ein Servomotor?
Bevor wir ins Detail gehen, sollten wir zuerst etwas über Servomotoren wissen.
Servomotoren sind in verschiedenen Formen und Größen erhältlich. Ein Servomotor hat hauptsächlich dort Drähte, einer für positive Spannung, ein anderer für Masse und der letzte für die Positionseinstellung. Das ROTE Kabel ist an die Stromversorgung angeschlossen, das schwarze Kabel ist an Masse angeschlossen und das GELBE Kabel ist an das Signal angeschlossen.
Ein Servomotor ist eine Kombination aus Gleichstrommotor, Lageregelungssystem und Zahnrädern. Die Position der Welle des Gleichstrommotors wird von der Steuerelektronik im Servo basierend auf dem Tastverhältnis des PWM-Signals des SIGNAL-Pins eingestellt.
Einfach gesagt, die Steuerelektronik passt die Wellenposition durch Steuern des Gleichstrommotors an. Diese Daten bezüglich der Position der Welle werden über den SIGNAL-Stift gesendet. Die Positionsdaten an die Steuerung sollten in Form eines PWM-Signals über den Signalstift des Servomotors gesendet werden.
Die Frequenz des PWM-Signals (Pulse Width Modulated) kann je nach Typ des Servomotors variieren. Wichtig hierbei ist das PFLICHTVERHÄLTNIS des PWM-Signals. Basierend auf dieser PFLICHTRATION stellt die Steuerelektronik die Welle ein.
Wie in der folgenden Abbildung gezeigt, muss die Einschaltration 1 / 18.ie betragen, damit die Welle auf 9 Uhr bewegt werden kann. 1 ms EIN-Zeit und 17 ms AUS-Zeit in einem 18 ms-Signal.
Damit die Welle auf 12 Uhr gestellt werden kann, muss die EIN-Zeit des Signals 1,5 ms und die AUS-Zeit 16,5 ms betragen. Dieses Verhältnis wird von der Steuerung im Servo dekodiert und passt die Position basierend darauf an. Diese PWM hier wird mit ARDUINO UNO generiert.
Bevor Sie Servos an Arduino anschließen, können Sie Ihr Servo mit Hilfe dieser Servomotor-Testschaltung testen. Überprüfen Sie auch unsere folgenden Servo-Projekte:
- Servomotorsteuerung durch Flex-Sensor
Erklärung des Arduino-Codes
Der vollständige Arduino-Code für die Mehrfachservosteuerung ist am Ende angegeben.
Arduino hat eine Bibliothek für Servomotoren und kümmert sich um alle PWM-bezogenen Dinge, um das Servo zu drehen. Sie müssen nur den Winkel eingeben, in den Sie drehen möchten, und es gibt die Funktion servo1.write (Winkel); Dadurch wird das Servo in den gewünschten Winkel gedreht.
Hier definieren wir zunächst die Bibliothek für den Servomotor.
#einschließen
Im folgenden Code initialisieren wir alle vier Servos als Servo1, Servo2, Servo3 und Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Dann setzen wir den gesamten Eingangspin des Servos mit Arduino. Wie im folgenden Code gezeigt, ist Servo1 mit dem 3. Pin des Arduino verbunden. Sie können die Pins nach Ihren Wünschen ändern, aber denken Sie daran, dass es sich um einen PWM-Pin handeln sollte. Die Verwendung eines Servos mit digitalen Pins des Arduino ist nicht zuverlässig.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }}
In der Funktion void loop () drehen wir nun den gesamten Servo von 0 auf 180 Grad und dann von 180 auf 0 Grad. Die im folgenden Code verwendete Verzögerung wird verwendet, um die Geschwindigkeit des Servos zu erhöhen oder zu verringern, da sie die zunehmende oder abnehmende Geschwindigkeit der Variablen 'i' beeinflusst.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); Verzögerung (10); } für (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); Verzögerung (10); } }
Steuern mehrerer Servos mit Arduino-Working:
Wir alle haben aktuelle Probleme, wenn wir mehr als zwei Servos mit einem Arduino verwenden. Die einzige Lösung besteht darin, ein externes Netzteil mit einer angemessenen Nennstromstärke anzuschließen (in diesem Projekt habe ich 2A mit 9-V-Versorgung verwendet). Für die externe Stromversorgung können Sie Adapter, RPS (Regulated Power Supply Instrument) oder hochwertige 9-V-Volt-Batterien verwenden. Sie können auch den USB-Anschluss Ihres Laptops für die Stromversorgung kleiner Servos verwenden. Um die externe Versorgung zu nutzen, müssen Sie nur die Arduino-Masse mit der externen Versorgungsmasse kurzschließen.
Verwenden Sie den unten angegebenen Arduino-Code, um Ihren Arduino zu programmieren und alle Servomotoren wie im Schaltplan gezeigt mit der richtigen Stromversorgung an die Motoren anzuschließen. Daher arbeiten alle Servos ohne Unterbrechung zusammen.