ESP32 S3 - Ultraschallsensor - Servomotor
Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 S3 mit einem HC-SR04-Ultraschallsensor verwenden, um einen Servomotor automatisch abhängig vom Abstand eines erkannten Objekts zu steuern. Durch die Kombination von berührungsloser Abstandsmessung und präziser Winkelbewegung können Sie reaktionsschnelle, näherungsgesteuerte Systeme ganz ohne physische Interaktion bauen.
Was Sie bauen werden:
- Eine ESP32-S3-Schaltung mit einem HC-SR04-Ultraschallsensor und einem Servomotor, die mit dem Board verdrahtet sind
- Einen Sketch, der den Abstand vom Ultraschallsensor kontinuierlich liest
- Einen Servomotor, der sich auf 90° dreht, wenn ein Objekt nah am Sensor erkannt wird
- Einen Servomotor, der automatisch auf 0° zurückkehrt, wenn sich das Objekt entfernt

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
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 and Ultrasonic Sensor
Der HC-SR04-Ultraschallsensor und der Servomotor sind eine starke Kombination für den ESP32 S3: Der Sensor liefert berührungslose Abstandsdaten, während der Servo als Reaktion darauf eine präzise, wiederholbare Winkelbewegung ausführt. Zusammen ermöglichen sie eine breite Palette näherungsabhängiger Automatisierungsprojekte — von automatischen Türen und Auslösern für Roboterarme bis hin zu Parkschranken und Mechanismen zur Hindernisvermeidung.
Wichtige Spezifikationen
Wir haben eigene Tutorials zu jeder Komponente mit detaillierter Pinbelegung, Funktionsprinzipien, Verdrahtung mit dem ESP32 S3 und vollständigen Codebeispielen. Mehr erfahren Sie unter den folgenden Links:
Verdrahtungsdiagramm
Verbinden Sie den HC-SR04 und den Servomotor wie im folgenden Schaltplan gezeigt mit Ihrem ESP32 S3. Achten Sie darauf, dass sowohl VCC des Ultraschallsensors als auch die Stromleitung des Servomotors mit der 5V-Schiene verbunden sind, da keine der beiden Komponenten mit 3,3V korrekt funktioniert.
Sicherheitshinweise
Servomotoren können unter Last kurzzeitig mehrere hundert Milliampere ziehen, was die USB-Versorgung des ESP32 S3 bei längerem Betrieb belasten kann. Für Tests auf dem Arbeitstisch reicht der USB-Anschluss in der Regel aus; für jeden dauerhaften Einsatz versorgen Sie den Servo über eine eigene externe 5V-Stromversorgung und verbinden nur die GND-Schiene mit dem ESP32 S3. Verbinden Sie außerdem den VCC-Pin des HC-SR04 immer mit 5V — nicht mit 3,3V —, um genaue Ultraschallmessungen zu gewährleisten.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| Komponente | Pin | ESP32 S3 Pin |
|---|---|---|
| Ultraschallsensor | VCC | 5V |
| Ultraschallsensor | GND | GND |
| Ultraschallsensor | TRIG | GPIO39 |
| Ultraschallsensor | ECHO | GPIO38 |
| Servomotor | GND (Braun/Schwarz) | GND |
| Servomotor | VCC (Rot) | 5V |
| Servomotor | Signal (Gelb/Orange) | GPIO12 |
Wenn Sie diese Schaltung behalten möchten, denken Sie an Schraubklemmen. Verwenden Sie in diesem Fall ein Schraubklemmen-Board für ESP32 S3. Der ESP32 S3 wird darauf gesteckt, und jeder Pin bekommt eine Schraubklemme. Das Diagramm unten zeigt die Version mit Schraubklemmen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Sie können auch ein GPIO-Breakout-Board für ESP32 S3 verwenden. Jeder GPIO hat eigene S-, 3,3V- und GND-Pins, sodass die Modulkabel direkt aufgesteckt werden:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
ESP32 S3 Code - Ultraschallsensor steuert Servomotor
Der folgende Code verwendet den ESP32 S3, um den vom HC-SR04-Ultraschallsensor gemessenen Abstand zu lesen und in einen Servowinkel umzusetzen. Kommt ein Objekt innerhalb des festgelegten Schwellenabstands, befiehlt der ESP32 S3 dem Servo, sich auf 90° zu drehen; entfernt sich das Objekt über diesen Schwellenwert hinaus, kehrt der Servo auf 0° zurück. Die ESP32Servo-Bibliothek erzeugt das PWM-Signal für den Servo, während die Ultraschallmessung der Einfachheit und geringen Latenz halber direkt über pulseIn() erfolgt.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Komponenten verdrahten: Folgen Sie dem oben gezeigten Schaltplan, um den HC-SR04-Ultraschallsensor und den Servomotor mit Ihrem ESP32 S3 zu verbinden.
- ESP32 S3 anschließen: Verbinden Sie das Board über ein USB-Typ-C-Kabel mit Ihrem Computer.
- Arduino IDE einrichten: Wenn Sie den ESP32 S3 zum ersten Mal verwenden, lesen Sie, wie Sie die Umgebung für den ESP32 S3 in der Arduino IDE einrichten.
- Board auswählen: Wählen Sie in der Arduino IDE unter Tools das ESP32-S3-Board und seinen COM-Port aus.
- ESP32Servo-Bibliothek installieren: Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE. Geben Sie ESP32Servo in das Suchfeld ein und suchen Sie die Servo-Bibliothek von Kevin Harrington, John K. Bennett. Klicken Sie auf Install, um die Servomotor-Bibliothek für ESP32 zu installieren.

- Code hochladen: Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie dann auf die Schaltfläche Upload.

- Seriellen Monitor öffnen: Öffnen Sie den Seriellen Monitor mit 9600 Baud, um aktuelle Abstandswerte und Änderungen des Servowinkels zu sehen.
- Sensor testen: Bewegen Sie Ihre Hand vor dem Ultraschallsensor und beobachten Sie, wie der Servomotor auf Abstandsänderungen reagiert.
- Profi-Tipp: Wenn der Servo unregelmäßig zuckt, schalten Sie einen kleinen Kondensator (100–470 µF) zwischen die Stromanschlüsse des Servos, um Spannungsspitzen zu filtern und das Signal zu stabilisieren.
Ausgabe im Seriellen Monitor
Öffnen Sie nach dem Hochladen den Seriellen Monitor mit 9600 Baud. Wenn Sie Ihre Hand vor dem Sensor bewegen, sehen Sie eine Ausgabe ähnlich der folgenden:
Anwendungsideen
Die Kombination des ESP32 S3 mit einem Ultraschallsensor und einem Servomotor eröffnet eine Vielzahl näherungsabhängiger Aktorprojekte in Automatisierung, Robotik und alltäglichen Maker-Szenarien. Hier einige praktische Ideen für den Einstieg:
- Automatische Tür oder automatisches Tor: Lassen Sie den Servo eine Schranke öffnen, wenn eine Person oder ein Fahrzeug innerhalb eines festgelegten Bereichs erkannt wird, und sie automatisch schließen, wenn sie sich entfernen.
- Berührungsloser Mülleimerdeckel: Lassen Sie den Servo einen Deckel anheben, wenn eine Hand nahe am Eimer erkannt wird, für eine berührungsfreie Müllentsorgung.
- Näherungsgesteuerter Roboterarm: Fahren Sie ein Gelenk eines Roboterarms aus oder ein, wenn ein Objekt eine festgelegte Zone betritt — ganz ohne Tastendruck.
- Parkschranke: Bauen Sie eine servogesteuerte Parkschranke, die sich automatisch hebt, wenn sich ein Auto dem Sensorschwellenwert nähert.
- Mechanismus zur Hindernisvermeidung: Nutzen Sie den Abstandswert, um bei einem mobilen Roboter ein servogesteuertes Rad oder Ruder von nahen Hindernissen wegzulenken.
- Alarmverriegelung: Aktivieren oder lösen Sie einen servogesteuerten Verriegelungsstift, wenn jemand innerhalb eines Sicherheitsbereichs erkannt wird.
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.
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung zu diesem ESP32-S3-Projekt an.
Fordern Sie sich selbst heraus
Da Ihre Schaltung aus ESP32 S3, Ultraschallsensor und Servo nun funktioniert, probieren Sie diese zunehmend schwierigeren Aufgaben aus, um Ihr Verständnis von Abstandsmessung und Servosteuerung zu vertiefen:
- Anfänger: Ändern Sie den Abstandsschwellenwert im Code und beobachten Sie, wie sich der Auslösepunkt des Servos verschiebt — experimentieren Sie mit Werten zwischen 5 cm und 50 cm.
- Anfänger: Ändern Sie den Code so, dass sich der Servo auf 180° statt auf 90° dreht, wenn ein Objekt nah am Sensor erkannt wird.
- Fortgeschritten: Fügen Sie dem ESP32 S3 eine Anzeige-LED hinzu, die leuchtet, wenn der Servo auf 90° steht, und erlischt, wenn er auf 0° zurückkehrt, als visuelles Statussignal zusätzlich zur Motorbewegung.
- Fortgeschritten: Setzen Sie eine abstandsproportionale Servosteuerung um, bei der der Servowinkel kontinuierlich dem gemessenen Abstand zugeordnet wird, statt zwischen zwei festen Positionen umzuschalten.
- Experte: Fügen Sie dem ESP32 S3 ein OLED-Display hinzu, das gleichzeitig den Abstand in Zentimetern in Echtzeit und den aktuellen Servowinkel anzeigt.
- Experte: Bauen Sie ein Mehrzonensystem mit zwei Ultraschallsensoren, die in verschiedene Richtungen zeigen und jeweils unabhängig ihren eigenen Servo auslösen, wenn ein Objekt ihre Zone betritt.