Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

ESP32 programmieren – Servomotor steuern

Posted on 29. Januar 202310. März 2024 by Stefan Draeger

In diesem kurzen Beitrag möchte ich dir zeigen, wie du am ESP32 einen kleinen Servomotor vom Typ SG90 steuern kannst.

ESP32 programmieren - Servomotor steuern
ESP32 programmieren – Servomotor steuern

Wie du am Arduino einen Servomotor steuerst habe ich dir bereits im Beitrag Arduino, Lektion 16: Servo ansteuern gezeigt, der ESP32 unterscheidet sich jedoch hier deutlich.

  • Benötigte Ressourcen für dieses Projekt
  • Aufbau der Schaltung
  • Besonderheiten bei Servomotoren
  • Programmieren
    • Installieren der benötigten Bibliothek
    • Aufbau des Codes zum Steuern eines Servomotors am ESP32
  • Code zum steuern eines Servomotors mit einer For-Schleife
  • Video

Benötigte Ressourcen für dieses Projekt

Wenn du das kleine Projekt nachbauen möchtest, dann benötigst du:

  • ein ESP32*,
  • ein USB-Datenkabel*,
  • einen Servomotor zbsp. Typ SG90*,
  • drei Breadboardkabel*

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Aufbau der Schaltung

Der Servomotor hat einen Stecker mit drei Anschlüssen, welche wie folgt belegt bzw. angeschlossen werden:

  • orange – DATA,
  • rot – VCC,
  • braun – GND

Somit ergibt sich nachfolgender Aufbau mit dem ESP32.

ServomotorESP32
DATAIO27
VCC5 V
GNDGND

Besonderheiten bei Servomotoren

Der hier verwendete Servomotor vom Typ SG90 kann durch seine geringe Leistungsaufnahme direkt an den Mikrocontroller angeschlossen werden. Solltest du jedoch einen größeren Servomotor verwenden, dann benötigst du eine zusätzliche Stromquelle.

Nachfolgende zeige ich dir einen Trafo welcher eigentlich für LED-Stripes ausgelegt ist, jedoch durch seine 5 V & 5 A kann dieser für größere Servomotoren verwendet werden.

Beim Anschluss musst du jedoch beachten, dass die Minusleitung vom Trafo mit dem GND Kontakt des Mikrocontrollers verbunden werden muss.

Programmieren

Installieren der benötigten Bibliothek

Zum Ansteuern des Servomotors benötigen wir eine spezielle Bibliothek für den ESP32, welche genau wie die ggf. bereits bekannte für den Arduino funktioniert.

Dieser Bibliothek liegen auch wieder Beispiele bei, welche die Funktion erläutern sollen, jedoch sind diese recht überladen und nur zum Steuern eines Servomotors braucht man nicht viel Code.

Aufbau des Codes zum Steuern eines Servomotors am ESP32

In der Funktion setup müssen wir unseren Servomotor konfigurieren. Dazu musst du wissen, welche DutyCycle dein Servo hat. Hier hilft ein Blick auf das Datenblatt. Der mir vorliegende Servomotor vom Typ SG90 hat eine DutyCycle von 20ms, was 50 Hz entspricht.

servo.setPeriodHertz(50);

Danach setzen wir den Pin sowie die Werte min. & max. für den Servomotor. Für die Werte min. & max. musst du etwas experimentieren, bei mir haben die Werte 500 & 3000 sehr gut funktioniert.

servo.attach(servoPin, 500, 3000);

Um eine Servoposition zu setzen, müssen wir dann die Funktion „write“ am Servo Objekt aufrufen und einen positiven, ganzzahligen Wert übergeben. In der Funktion setup nutze ich diese Funktion, um zunächst den Servomotor auf die 0-Position zu setzen.

servo.write(0);

Code zum steuern eines Servomotors mit einer For-Schleife

//Servomotor am Pin IO27 angeschlossen
#define servoPin 27

//erzeugen einer Instanz vom Typ Servo
Servo servo;

void setup() {
  //setzen der Periode
  servo.setPeriodHertz(50);
  //definieren von min & max für den Servo
  //(in Microsekunden)
  servo.attach(servoPin, 500, 3000);
  //setzen des Servomotors auf die 0 Position
  servo.write(0);
}

//Funktion zum setzen einer Servoposition
void setServoPosition(int degree) {
  servo.write(degree);
  //eine kleine Pause von 25ms.
  delay(25);
}

void loop() {
  //Schleife von 0 bis 180
  for (int degree = 0; degree < 180; degree++) {
    setServoPosition(degree);
  }

  //Schleife von 180 bis 0
  for (int degree = 180; degree > 180; degree--) {
    setServoPosition(degree);
  }
}

Video

Im nachfolgenden YouTube Video habe ich dir erläutert, wie du die Schaltung aufbaust und in der Arduino IDE programmierst.

ESP32 programmieren - steuern eines Servomotors SG90
Dieses Video auf YouTube ansehen.

2 thoughts on “ESP32 programmieren – Servomotor steuern”

  1. karsten sagt:
    22. Juli 2023 um 14:37 Uhr

    im Beispielprogramm fehlt die erste Zeile
    #include
    Gruss

    Antworten
    1. Stefan Draeger sagt:
      22. Juli 2023 um 19:01 Uhr

      Oh, vielen Dank ist mir garnicht aufgefallen.

      Gruß, Stefan

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}