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:

  1. Eine ESP32-S3-Schaltung mit einem HC-SR04-Ultraschallsensor und einem Servomotor, die mit dem Board verdrahtet sind
  2. Einen Sketch, der den Abstand vom Ultraschallsensor kontinuierlich liest
  3. Einen Servomotor, der sich auf 90° dreht, wenn ein Objekt nah am Sensor erkannt wird
  4. Einen Servomotor, der automatisch auf 0° zurückkehrt, wenn sich das Objekt entfernt
ESP32 S3 - Ultraschallsensor - 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×Ultraschallsensor
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 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.

ESP32 S3 Ultraschallsensor Servomotor Schaltplan

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.

ESP32 S3 Ultraschallsensor Servomotor Schaltplan (Screw Terminal)

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:

ESP32 S3 Ultraschallsensor Servomotor Schaltplan (GPIO Breakout Board)

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.

/* * 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-ultrasonic-sensor-servo-motor */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-ultrasonic-sensor-servo-motor */ #include <ESP32Servo.h> #define TRIG_PIN 39 // ESP32-S3 pin GPIO39 connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 38 // ESP32-S3 pin GPIO38 connected to Ultrasonic Sensor's ECHO pin #define SERVO_PIN 12 // ESP32-S3 pin GPIO12 connected to Servo Motor's pin #define DISTANCE_THRESHOLD 50 // centimeters Servo servo; // create servo object to control a servo // variables will change: float duration_us, distance_cm; void setup() { Serial.begin (9600); // initialize serial port pinMode(TRIG_PIN, OUTPUT); // set ESP32-S3 pin to output mode pinMode(ECHO_PIN, INPUT); // set ESP32-S3 pin to input mode servo.attach(SERVO_PIN); // attaches the servo on pin GPIO12 to the servo object servo.write(0); } void loop() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; if (distance_cm < DISTANCE_THRESHOLD) servo.write(90); // rotate servo motor to 90 degree else servo.write(0); // rotate servo motor to 0 degree // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Komponenten verdrahten: Folgen Sie dem oben gezeigten Schaltplan, um den HC-SR04-Ultraschallsensor und den Servomotor mit Ihrem ESP32 S3 zu verbinden.
  3. ESP32 S3 anschließen: Verbinden Sie das Board über ein USB-Typ-C-Kabel mit Ihrem Computer.
  4. 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.
  5. Board auswählen: Wählen Sie in der Arduino IDE unter Tools das ESP32-S3-Board und seinen COM-Port aus.
  6. 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.
ESP32 S3 Servomotor-Bibliothek
  1. 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.
Arduino IDE Code hochladen
  1. Seriellen Monitor öffnen: Öffnen Sie den Seriellen Monitor mit 9600 Baud, um aktuelle Abstandswerte und Änderungen des Servowinkels zu sehen.
  2. Sensor testen: Bewegen Sie Ihre Hand vor dem Ultraschallsensor und beobachten Sie, wie der Servomotor auf Abstandsänderungen reagiert.
  3. 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:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
2026-06-16 09:14:22 -> Distance: 32.4 cm | Servo angle: 0° 2026-06-16 09:14:23 -> Distance: 18.7 cm | Servo angle: 0° 2026-06-16 09:14:24 -> Distance: 9.2 cm | Servo angle: 90° 2026-06-16 09:14:25 -> Distance: 6.5 cm | Servo angle: 90° 2026-06-16 09:14:26 -> Distance: 24.1 cm | Servo angle: 0°
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

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:

  1. 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.
  2. 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.
  3. Näherungsgesteuerter Roboterarm: Fahren Sie ein Gelenk eines Roboterarms aus oder ein, wenn ein Objekt eine festgelegte Zone betritt — ganz ohne Tastendruck.
  4. Parkschranke: Bauen Sie eine servogesteuerte Parkschranke, die sich automatisch hebt, wenn sich ein Auto dem Sensorschwellenwert nähert.
  5. Mechanismus zur Hindernisvermeidung: Nutzen Sie den Abstandswert, um bei einem mobilen Roboter ein servogesteuertes Rad oder Ruder von nahen Hindernissen wegzulenken.
  6. 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:

  1. 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.
  2. 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.
  3. 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.
  4. Fortgeschritten: Setzen Sie eine abstandsproportionale Servosteuerung um, bei der der Servowinkel kontinuierlich dem gemessenen Abstand zugeordnet wird, statt zwischen zwei festen Positionen umzuschalten.
  5. Experte: Fügen Sie dem ESP32 S3 ein OLED-Display hinzu, das gleichzeitig den Abstand in Zentimetern in Echtzeit und den aktuellen Servowinkel anzeigt.
  6. 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.

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