ESP32 - MG996R

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

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×MG996R Servo-Motor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 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 mit einer Tragkraft von bis zu 15 kg. Der Motor kann seinen Arm von 0° bis 180° drehen und so eine präzise Steuerung der Winkelposition ermöglichen. Für grundlegende Informationen über Servomotoren lesen Sie bitte das Tutorial ESP32 - Servomotor.

Pinbelegung

Der MG996R-Servomotor, der in diesem Beispiel verwendet wird, 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
  • Signal-Pin: (in der Regel gelb oder orange) empfängt das PWM-Steuersignal vom Pin des ESP32
Pinbelegung des MG996R-Servomotors

Verdrahtungsdiagramm

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

ESP32 MG996R Servomotor-Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

ESP32-Code

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-mg996r */ #include <Servo.h> Servo servo; // Servo-Objekt erstellen, um einen Servo zu steuern void setup() { servo.attach(9); // bindet den Servo an Pin 9 an das Servo-Objekt servo.write(0); // dreht den Servo langsam auf 0 Grad sofort } void loop() { for (int angle = 0; angle <= 180; angle += 1) { // drehe langsam von 0 Grad zu 180 Grad, in Schritten von 1 Grad // in Schritten von 1 Grad servo.write(angle); // steuere den Servo, damit er die Position des Wertes 'angle' erreicht delay(10); // wartet 10 ms, bis der Servo die Position erreicht } for (int angle = 180; angle >= 0; angle -= 1) { // drehe von 180 Grad zu 0 Grad, in Schritten von 1 Grad servo.write(angle); // steuere den Servo, damit er die Position des Wertes 'angle' erreicht delay(10); // wartet 10 ms, bis der Servo die Position erreicht } }

Schnelle Schritte

  • Falls dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie sich an, wie Sie die Umgebung für ESP32 in der Arduino IDE einrichten.
  • Verkabeln Sie gemäß dem obigen Bild.
  • Verbinden Sie das ESP32-Board mit Ihrem PC über ein Micro-USB-Kabel.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Klicken Sie auf das Libraries-Symbol in der linken Leiste der Arduino IDE.
  • Geben Sie ServoESP32 in das Suchfeld ein, suchen Sie dann nach der Servo-Bibliothek von Jaroslav Paral. Bitte beachten Sie, dass sowohl Version 1.1.1 als auch 1.1.0 von Fehlern betroffen sind. Wählen Sie bitte eine andere Version.
  • Klicken Sie auf den Install-Button, um die Servo-Bibliothek für ESP32 zu installieren.
ESP32-Servomotor-Bibliothek
  • Schließen Sie den ESP32 über ein USB-Kabel an den PC an
  • Öffnen Sie die Arduino-IDE, wählen Sie das passende Board und den richtigen Port aus
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino-IDE
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code auf den ESP32 hochzuladen
Arduino IDE – Code hochladen
  • Siehe das Ergebnis: Servomotor dreht sich langsam von 0° nach 180° und dreht sich dann langsam wieder von 180° auf 0°.

Code-Erklärung

Die Erklärung finden Sie 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 ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-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: anderer 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: anderer 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!