Arduino - MG996R

In diesem Tutorial lernen wir, wie man den MG996R-Hochdrehmoment-Servomotor mit Arduino verwendet.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×MG996R Servo-Motor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Servomotor

Der MG996R-Servomotor ist ein Hochdrehmoment-Servomotor, der Lasten von bis zu 15 kg heben kann. Der Motor kann sich von 0° bis 180° drehen und so eine präzise Steuerung der Winkelposition ermöglichen. Für grundlegende Informationen zu Servomotoren lesen Sie bitte das Tutorial Arduino - Servo-Motor.

Pinbelegung

Der im Beispiel verwendete MG996R-Servo-Motor verfügt über drei Pins:

  • VCC-Pin: (in der Regel rot) muss mit VCC verbunden werden (4,8 V – 7,2 V)
  • GND-Pin: (in der Regel schwarz oder braun) muss mit GND (0 V) verbunden werden
  • Signalpin: (typischerweise gelb oder orange) empfängt das PWM-Steuersignal vom Arduino-Pin
MG996R-Servomotor-Pinbelegung

Verdrahtungsdiagramm

Da der MG996R ein Hochdrehmoment-Servomotor ist, zieht er viel Strom. Wir sollten diesen Motor nicht über den 5-V-Pin des Arduino mit Strom versorgen. Stattdessen müssen wir eine externe Stromversorgung für den MG996R-Servomotor verwenden.

Arduino MG996R Servomotor Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-mg996r */ #include <Servo.h> Servo servo; // Erzeuge Servo-Objekt zur Ansteuerung eines Servos void setup() { servo.attach(9); // hängt den Servo an Pin 9 an das Servo-Objekt an servo.write(0); // bewege den Servo langsam auf 0 Grad, sofort } void loop() { for (int angle = 0; angle <= 180; angle += 1) { // dreht sich langsam von 0° bis 180°, in Schritten von 1° // in Schritten von 1° servo.write(angle); // steuert den Servo, um die Position in der Variablen 'angle' zu erreichen delay(10); // wartet 10 ms, bis der Servo die Position erreicht } for (int angle = 180; angle >= 0; angle -= 1) { // dreht sich von 180° bis 0°, in Schritten von 1° servo.write(angle); // steuert den Servo, um die Position in der Variablen 'angle' zu erreichen delay(10); // wartet 10 ms, bis der Servo die Position erreicht } }

Schnelle Schritte

  • Verbinde Arduino über ein USB-Kabel mit dem PC
  • Öffne die Arduino IDE und wähle das richtige Board und den richtigen Port aus
  • Kopiere den obigen Code und öffne ihn in der Arduino IDE
  • Klicke auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen
Arduino IDE – Wie man Code hochlädt
  • Siehe das Ergebnis: Der Servomotor dreht sich langsam von 0° nach 180° und kehrt dann langsam von 180° nach 0° zurück

Code-Erklärung

Sie finden die Erklärung in der Kommentarzeile des obigen Arduino-Codes.

Wie man die Geschwindigkeit eines Servomotors steuert

Durch die Verwendung der Funktionen map() und millis() können wir die Geschwindigkeit des Servomotors sanft steuern, ohne anderen Code zu blockieren.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-mg996r */ #include <Servo.h> Servo myServo; unsigned long MOVING_TIME = 3000; // Bewegungszeit beträgt 3 Sekunden unsigned long moveStartTime; int startAngle = 30; // 30° int stopAngle = 90; // 90° void setup() { myServo.attach(9); moveStartTime = millis(); // Bewegung starten // TODO: weiterer Code } void loop() { unsigned long progress = millis() - moveStartTime; if (progress <= MOVING_TIME) { long angle = map(progress, 0, MOVING_TIME, startAngle, stopAngle); myServo.write(angle); } // TODO: weiterer Code }

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!