🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

ESP32 programmieren – Servomotor steuern

Posted on 29. Januar 202329. April 2023 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

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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb