Wie man den Servomotor mit Arduino steuert

Wie man den Servomotor mit Arduino steuert
Servomotor ist eine Art elektrischer Gerät, der die Position eines Objekts mit großer Präzision ändern oder drehen kann. Zu Beginn wurden sie verwendet, um die RC -Flugzeugflügel zu kontrollieren, momentlich machten sie sich auf den Weg zu Robotik, humanoiden Robotern und vielen Automatisierungsprojekten. Im Gegensatz zu Stepper Motors ist ihre Bewegung zwischen 0o und 180o begrenzt.

Normalerweise haben Servomotoren Arme, die mit Arduino kontrolliert werden können. Servomotoren bestehen aus einem Steuerungssystem, das bietet Rückmeldung Über die aktuelle Position der Motorwelle Dieses Feedback ermöglicht es, sich in großer Präzision zu bewegen.

Servo Motor Pinout

In der Regel haben die meisten Servomotoren drei Stifte:

  • VCC -Stift (normalerweise rot 5V)
  • GND Pin (normalerweise schwarz 0V)
  • Eingangssignalstift (Empfang PWM -Signal von Arduino)

SERVOR -MOTOR

Wir können den Servomotor steuern, indem wir den VCC -Pin mit 5 V und GND -Pin mit 0V anschließen. Am gelben Farbanschluss bieten wir a PWM Signal, das den rotierenden Winkel des Servomotors steuert. Die Breite des PWM -Signals gibt uns den Winkel, in dem der Motor seinen Arm dreht.

Wenn wir uns mit dem Datenblatt von Servomotoren befassen, erhalten wir folgende Parameter:

  • PWM -Signalzeitraum
  • Mindestbreite für PWM
  • Maximale Breite für PWM

Alle diese Parameter sind in der Arduino Servo -Bibliothek vordefiniert.

Servo -Motoren mit Arduino

Servomotoren sind dank der sehr leicht mit Arduino zu kontrollieren Servo -Bibliothek Dies hilft uns, unseren Code nach Bedarf anzupassen, und ermöglicht es uns, den Servoarm in unserem gewünschten Winkel zu drehen.

Alle drei oben genannten Parameter sind in der Servo -Bibliothek festgelegt. Durch die Verwendung dieser Parameter können wir den Winkel des Servomotors auf folgt steuern:

  • Wenn PWM -Signalbreite = width_max, dreht sich das Servo auf 180o
  • Wenn PWM -Signalbreite = width_miin, dreht sich das Servo auf 0o
  • Wenn die PWM -Signalbreite dazwischen liegt Width_max und width_min, Der Servomotor wird zwischen 0O und 180o drehen

Wir können ein gewünschtes PWM -Signal auf einigen Arduino -Stiften erzeugen. Das PWM -Signal wird am Eingangssignalstift des Servomotors angegeben. Verbinden Sie die verbleibenden zwei Stifte Servo mit 5 V und GND von Arduino.

So steuern Sie den Servomotor mit Arduino

Hier werde ich erklären, wie wir unseren Servomotor mit Arduino verbinden und programmieren können. Alles was Sie brauchen ist:

  • Arduino uno
  • USB B -Kabel
  • Servomotor
  • Jumperdrähte

So programmieren Sie Servo mit Arduino

Im Folgenden finden Sie einige einfache Schritte:

Schritt 1: Vordefinierte Servobibliothek einschließen:

#enthalten

Schritt 2: Servoobjekt erstellen:

Servo MyServo;

Tipp: Wenn Sie mehr als einen Servomotoren kontrollieren, müssen Sie mehr Servoobjekte erstellen:

Servo MyServo1;
Servo MyServo2;

Schritt 3: Stellen Sie den Steuerpin (9) auf Arduino Uno ein, das das PWM -Signal an den Eingangssignalanschluss des Servo sendet:

MyServo.anbringen (9);

Schritt 4: Drehen Sie den Servomotorwinkel in den gewünschten Wert, zum Beispiel 90o:

MyServo.schreiben (pos);

Arduino -Code

Open Servo Motor Beispielprogramm von Datei> Beispiel> Servo> Sweep, Ein neues Fenster wird geöffnet und uns unsere Servo -Skizze zeigen:

#enthalten
Servo MyServo; // Servoobjekt wird zur Steuerung des Servomotors erstellt
int pos = 0; // zum Speichern von Servo -Position Eine neue Variable wird erstellt
void setup ()
MyServo.anbringen (9); // Dies setzt Arduino Pin 9 für die PWM -Ausgabe

void Loop ()
für (pos = 0; pos = 0; pos -= 1) // geht von 180 bis 0 Grad
MyServo.schreiben (pos); // Sagen Sie Servo, er solle in die Position "POS" gehen
Verzögerung (5); // wartet auf 5 ms, damit Servo die Position erreichen kann

Sobald das Programm zusammengestellt und hochgeladen wurde, wird der Servomotor langsam von der Startposition von 0 Grad auf 180 Grad gedreht, jeweils ein Grad wie Schritte. Wenn der Motor um 180-Grad-Rotation abgeschlossen wurde, startet er seine Rotation in die entgegengesetzte Richtung in Richtung des Startpunkts I.e., 0 Grad.

Schema

So steuern Sie den Servomotor mit Potentiometer

Wir können die Servomotor -Position auch von Hand steuern. Um dies zu tun, brauchen wir eine Potentiometer. Potentiometer hat drei Stifte. Verbinden Sie die beiden Außenstifte mit 5 -V -VCC und GND von Arduino und Mitte eins zu A0 Pin auf dem Arduino -Board.

So programmieren Sie Servo mit Potentiometer

Der größte Teil der Skizze für Potentiometer entspricht dem vorherigen Beispiel. Der einzige Unterschied ist eine neue Variable val Und Potpin wird vor dem Abschnitt "Setup- und Loop" definiert.

int potpin = a0;
int val;

Im Schleifenabschnitt wird der analoge Pin A0 verwendet, um Werte für Potentiometer mit der Funktion zu lesen Analograd (). Arduino Boards enthalten 10-Bit-ADC (analog bis digitaler Konverter), was uns Werte zwischen 0 und 1023 enthält, abhängig von welcher Position Potentiometer lautet:

val = analograd (potpin);

Zuletzt haben wir benutzt Karte() Funktion zur Wiederherstellung der Zahlen von 0 bis 1023 gemäß dem Servowinkel, wie wir wissen, dass Servomotoren nur zwischen 00 und 1800 drehen können.

val = map (val, 0, 1023, 0, 180);

Arduino -Code

Open Knob -Skizze in Arduino ide erhältlich, gehen Sie zu Dateien> Beispiele> Servo> Knopf. Ein neues Fenster wird geöffnet, das uns unsere Knopfskizze für Servo zeigt:

#enthalten
Servo MyServo; // Erstellen eines Servo -Objektnamens MyServo
int potpin = a0; // Analogstift für Potentiometer definieren
int val; // Variable mit Analog -Pin -Werten für Potentiometer lesen
void setup ()
MyServo.anbringen (9); // definierter Pin 9 für PWM -Eingangssignal von Servo auf Arduino

void Loop ()
val = analograd (potpin); // liest den Wert aus dem Potentiometer (Wert zwischen 0 und 1023)
val = map (val, 0, 1023, 0, 180); // skalieren Sie den Wert, der mit dem Servo verwendet wird (Wert zwischen 0 und 180)
MyServo.schreiben (val); // setzt die Servoposition mit skaliertem Wert
Verzögerung (15); // wartet darauf, dass das Servo in die Position kommt

Oben Code hilft uns, die Servomotorschacht mit Potentiometer zu steuern. Die Welle dreht sich zwischen 0 und 180 Grad. Wir können auch die Geschwindigkeit zusammen mit der Direktorie des Servos verwenden.

Schaltplan

Wie viele Servomotoren kann ich mich mit Arduino verbinden?

Die maximale Anzahl von Servo -Motoren Arduino uno kann bis zu 12 mit der Arduino -Bibliothek für Servo und maximal von der Arduino -Bibliothek beträgt 48 Servos Kann mit Brettern wie Mega verbunden werden.

Spitze: Wir können Servo direkt mit Arduino Current ausführen, aber denken Sie daran, ob Servos -Motoren mehr als zeichnen als 500 mA Dann kann Ihr Arduino -Board automatisch zurücksetzen und Strom verlieren. Es wird empfohlen, immer ein dediziertes Netzteil für Servomotoren zu verwenden.

Abschluss

In diesem Tutorial haben wir den Kontrollmechanismus von Servomotoren mit Arduino behandelt. Wir deckten die Grundlagen der steuerenden Servoposition und Geschwindigkeit mit Potentiometer ab. Jetzt haben Sie eine Vorstellung von Servo und Möglichkeiten für Ihre Robotik, RC -Projekte und Automatisierung mit Servo sind endlos.