ESP32 S3 - Servomotor

Der ESP32 S3 ist ein leistungsfähiger Mikrocontroller, mit dem sich Servomotoren über PWM-Signale und die Bibliothek ESP32Servo ganz einfach steuern lassen. Dieses Tutorial führt Sie durch alles, was Sie brauchen — von der Verdrahtung bis zum Code —, damit Ihr Servo in wenigen Minuten zwischen 0° und 180° hin- und herschwenkt.

Was Sie bauen werden:

  1. Einen Servomotor, der mit Ihrem ESP32 S3 Board verbunden ist
  2. Eine Schwenkbewegung von 0° bis 180° und zurück, gesteuert durch Arduino-Code
  3. Eine zuverlässige Stromversorgung, die Ihr Board vor Überstrom schützt
  4. Eine Grundlage für Robotik-, Automatisierungs- und Mechatronikprojekte
ESP32 S3 - Servomotor

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
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×Servo-Motor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
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.

Kaufhinweis: Falls Sie mehrere Servomotoren verwenden möchten, empfehlen wir die Verwendung des PCA9685 16 Channel PWM Servo Driver Module, um MCU-Pins zu sparen und die Verdrahtung zu vereinfachen.

Überblick über Servo Motor

Ein Servomotor ist ein Drehantrieb, der sich auf eine genaue Winkelposition zwischen 0° und 180° drehen kann, und ist damit ein ideales Ausgabegerät für Robotik und Automatisierung. Anders als gewöhnliche Gleichstrommotoren besitzt ein Servo einen internen Rückkopplungsmechanismus, sodass er den vorgegebenen Winkel ohne zusätzliche Schaltung hält. Diese Kombination aus Präzision und Einfachheit ist der Grund, warum Servomotoren so gut zum ESP32 S3 passen.

Wichtige Spezifikationen

Standard-Hobbyservos werden mit 5 V betrieben und erwarten ein PWM-Signal mit einer Periode von 20 ms. Die Pulsbreite bestimmt den Zielwinkel: etwa 1 ms entspricht 0° und 2 ms entspricht 180°, während 1,5 ms die Welle auf 90° zentriert. Die meisten Servos ziehen je nach Last zwischen 100 mA und 700 mA, weshalb eine sorgfältige Planung der Stromversorgung wichtig ist.

Pinbelegung des Servomotors

Der Servomotor verwendet eine einfache Dreidraht-Schnittstelle, die direkt mit dem ESP32 S3 und einer Stromquelle verbunden wird:

  1. GND-Pin (braun oder schwarz) — mit GND (0 V) verbinden
  2. VCC-Pin (rot) — mit 5-V-Stromversorgung verbinden
  3. Signal-Pin (gelb oder orange) — empfängt das PWM-Steuersignal von einem GPIO-Pin des ESP32 S3
Pinbelegung des Servomotors

So funktioniert ein Servomotor

Siehe So funktioniert ein Servomotor

Wiring Diagram between Servo Motor and ESP32 S3

Verbinden Sie den Servomotor anhand der folgenden Tabelle mit Ihrem ESP32 S3 Board. Die Signalleitung geht an den Pin GPIO9, den der ESP32 S3 mit einem standardmäßigen 50-Hz-PWM-Signal ansteuert, das von der Bibliothek ESP32Servo erzeugt wird.

Sicherheitshinweise

Wenn Sie den ESP32 S3 über USB versorgen, entnehmen Sie den Servostrom nicht über die Pins Vin oder VBUS — die Strombegrenzung des USB-Anschlusses ist für die meisten Servos unter Last zu niedrig und kann das Board dauerhaft beschädigen. Für alles, was über leichte Tests auf dem Tisch hinausgeht, verwenden Sie ein separates externes 5-V-Netzteil für den Servo und verbinden nur die GND-Leitung mit dem ESP32 S3.

Bei Stromversorgung über den USB-Anschluss:

ESP32 S3 Servomotor Schaltplan

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

Servomotor-Pin ESP32 S3 Pin
GND (Braun/Schwarz) GND
VCC (Rot) 5V
Signal (Gelb/Orange) GPIO9

Bei Stromversorgung über den Vin-Pin mit externem Netzteil:

ESP32 S3 Servomotor Schaltplan mit externer Stromversorgung

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

※ Notiz:

WICHTIGER SICHERHEITSHINWEIS: Wenn Sie das ESP32 S3 Board über den USB-Anschluss versorgen, versorgen Sie den Servomotor NICHT über den Vin-Pin oder VBUS-Pin. Dies kann zu übermäßiger Stromaufnahme führen und Ihr Board dauerhaft beschädigen. Verwenden Sie ein externes Netzteil für den Servomotor, wenn Sie mehr Leistung benötigen.

ESP32 S3 Code

Der folgende Sketch zeigt ein kontinuierliches Schwenken des Servos mit dem ESP32 S3. Er verwendet die Bibliothek ESP32Servo, um den Servo an Pin GPIO9 anzuschließen, und erhöht dann den Winkel in 1°-Schritten von 0° auf 180°, bevor er wieder zurückfährt, wodurch eine gleichmäßige Hin- und Herbewegung entsteht, die sich endlos wiederholt. Die Kommentare im Code erklären Zeile für Zeile, wie jeder Teil funktioniert.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 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-s3/esp32-s3-servo-motor */ #include <ESP32Servo.h> #define SERVO_PIN 9 // The ESP32 S3 pin connected to servo motor Servo servoMotor; void setup() { servoMotor.attach(SERVO_PIN); // attaches the servo on ESP32 pin } void loop() { // rotates from 0 degrees to 180 degrees for (int pos = 0; pos <= 180; pos += 1) { // in steps of 1 degree servoMotor.write(pos); delay(15); // waits 15ms to reach the position } // rotates from 180 degrees to 0 degrees for (int pos = 180; pos >= 0; pos -= 1) { servoMotor.write(pos); delay(15); // waits 15ms to reach the position } }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Richten Sie die Arduino IDE für den ESP32 S3 ein, indem Sie der Anleitung Softwareinstallation für den ESP32 S3 folgen.
  3. Verdrahten Sie den Servomotor gemäß dem obigen Schaltplan mit dem ESP32 S3.
  4. Verbinden Sie das ESP32 S3 Board über ein USB-Typ-C-Kabel mit Ihrem Computer.
  5. Öffnen Sie die Arduino IDE auf Ihrem Computer.
  6. Wählen Sie unter Tools das ESP32 S3 Board und den zugehörigen COM-Port aus.
  7. Öffnen Sie den Bibliotheksverwalter, indem Sie auf das Bibliothekssymbol in der linken Seitenleiste klicken.
  8. Geben Sie "ESP32Servo" in das Suchfeld ein.
  9. Installieren Sie die Servo-Bibliothek von Kevin Harrington und John K. Bennett.
  • Search for ESP32Servo created by Kevin Harrington,John K. Bennett and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
ESP32Servo by Kevin Harrington,John K. Bennett
This library provides advanced PWM control for ESP32 boards using LEDC hardware, with enhanced MCPWM support on ESP32S3.
ESP32S3: 20 PWM channels (8 LEDC + 12 MCPWM) with intelligent allocation
All ESP32 variants: LEDC-based PWM with variable-frequency support
Supports variable-frequency PWM and fixed-frequency servo control
Automatic hardware fallback ensures maximum channel availability
More info
3.2.0
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Kopieren Sie den obigen Code und fügen Sie ihn in einen neuen Sketch in der Arduino IDE ein.
  2. Klicken Sie auf die Schaltfläche Upload, um den Code zu kompilieren und auf den ESP32 S3 hochzuladen.
So laden Sie ESP32 S3 Code in der Arduino IDE hoch
  1. Beobachten Sie, wie sich die Servowelle um 180° im Uhrzeigersinn dreht und dann gegen den Uhrzeigersinn zurückfährt, fortlaufend wiederholt.
  2. Profi-Tipp: Beginnen Sie beim ersten Testen eines Servos mit langsamen Schwenkgeschwindigkeiten — das verringert die mechanische Belastung und erleichtert es, Verdrahtungs- oder Kalibrierungsprobleme zu erkennen, bevor Last hinzukommt.

Zeilenweise Code-Erklärung

Der obige ESP32 S3 Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!

So steuern Sie die Geschwindigkeit eines Servomotors

Siehe So steuern Sie die Geschwindigkeit eines Servomotors

Anwendungen und Projektideen

Die Kombination aus ESP32 S3 und Servomotor ermöglicht eine Vielzahl praktischer Projekte, von einfachen Unterrichtsdemonstrationen bis hin zu vollständigen Mechatroniksystemen:

  1. Roboterarm: Bauen Sie einen Roboterarm mit mehreren Gelenken aus mehreren Servos für Pick-and-Place-Aufgaben.
  2. Automatischer Futterautomat für Haustiere: Verwenden Sie eine servogesteuerte Klappe, um zeitgesteuert abgemessene Futterportionen auszugeben.
  3. Intelligentes Türschloss: Entwerfen Sie einen WLAN-gesteuerten Schließmechanismus, der von einem Servo am ESP32 S3 angetrieben wird.
  4. Solarpanel-Nachführung: Montieren Sie einen Servo, der ein Panel anhand der Messwerte eines Lichtsensors zur Sonne ausrichtet.
  5. Kamera-Schwenk-Neige-Kopf: Bauen Sie eine zweiachsige Halterung für eine kleine Kamera, ideal für Überwachungs- oder Fotoaufbauten.
  6. Automatische Pflanzenbewässerung: Verwenden Sie ein Servoventil, das Wasser freigibt, wenn ein Bodenfeuchtesensor es auslöst.

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.

Die Anleitung und der Quellcode für das obige Video sind im Tutorial Servomotor über das Web steuern verfügbar

Fordern Sie sich heraus

Sobald Ihr Servo zuverlässig am ESP32 S3 schwenkt, probieren Sie diese Herausforderungen aus, um Ihr Verständnis von Motorsteuerung und Embedded-Programmierung zu vertiefen:

  1. Einsteiger: Ändern Sie den Schwenkbereich so, dass er sich zwischen 45° und 135° bewegt statt über den vollen Bogen von 0°–180°.
  2. Einsteiger: Passen Sie die Verzögerungswerte an, damit der Servo schneller oder langsamer schwenkt, und beobachten Sie die Wirkung auf die Laufruhe.
  3. Fortgeschritten: Fügen Sie einen Taster hinzu, sodass der Servo nur schwenkt, solange der Taster gedrückt ist, und beim Loslassen seine Position hält.
  4. Fortgeschritten: Steuern Sie zwei Servomotoren gleichzeitig aus demselben ESP32 S3 Sketch über separate GPIO-Pins.
  5. Experte: Bauen Sie eine vom ESP32 S3 bereitgestellte Weboberfläche, mit der Sie den Servowinkel per WLAN aus der Ferne einstellen können.
  6. Experte: Implementieren Sie eine Joystick-Steuerung, indem Sie einen analogen Joystick auslesen und dessen X/Y-Achsen in Echtzeit auf Servowinkel abbilden.

Verwandte Tutorials

※ 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!