Servos auf der Modellbahn: 16 Bewegungen mit ESP32 und PCA9685

Kurz gesagt: Ein ESP32-S3 und eine PCA9685-Platine steuern bis zu 16
Servos – für Schranken, Tore, Klappen und Signale. Der Servostecker passt ohne
Adapter direkt auf die Platine, aufgebaut wird auf einem Mini-Steckbrett mit
Hebelklemmen; gelötet werden nur die Stiftleisten des ESP32. Die kostenlose App
SceneFX spielt die Firmware auf und bewegt die Servos nach einem Tagesablauf:
Das Scheunentor geht morgens auf, wenn der Bauer zum Stall geht, und abends
wieder zu.

Neu hier? Aus RailFX ist SceneFX geworden. Die Arduino-Module aus der
RailFX-Reihe brauchten für jede Aufgabe eigenen Code. Die SceneFX-Module
bekommen ihre Firmware aus der App und ihre Befehle per WLAN – programmieren
musst du nichts.

Warum eine PCA9685 für Servos?

Ein Servo braucht ein sauberes, gleichmäßiges Steuersignal – sonst zittert er.
Die PCA9685 erzeugt sechzehn dieser Signale selbst, unabhängig davon, was der
ESP32 gerade tut, und braucht dafür nur zwei Datenleitungen (I²C). Sie wird
sogar ausdrücklich als Servotreiber verkauft: Jeder Kanal hat genau die drei
Pins, die ein Servostecker braucht.


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


Es ist dieselbe Platine wie beim Licht-Modul.
Der Unterschied liegt in der Firmware: Für Servos taktet sie die Platine auf
50 Hz statt auf 1 kHz. Ein Modul hat deshalb genau eine Aufgabe – Licht oder
Bewegung, nicht beides gemischt.

Bauteile

Die Teile bekommst du bei den üblichen Elektronik-Händlern (Bezugsquellen:
Bauteile für Arduino – hier bekommst du Nachschub).

Teil Menge Hinweis
Waveshare ESP32-S3 Mini 1 Stiftleisten anlöten, dann steckt es im Steckbrett
USB-C-Datenkabel 1 muss Daten übertragen – reine Ladekabel funktionieren nicht
Mini-Steckbrett (170 Kontakte) 1 ohne Stromschienen; trägt nur den ESP32 und die Diode
12-V-Steckernetzteil, mind. 2 A 1 Hohlstecker 5,5 × 2,1 mm – Servos ziehen im Anlauf ein Vielfaches ihres Ruhestroms
DC-Buchse mit Schraubklemmen 1 Netzteil einstecken, nichts löten
Spannungswandler 12 V → 5 V (Buck, 3 A) 1 fest auf 5 V, mit Kabelenden; trägt vier bis sechs Micro-Servos
Wago-Hebelklemmen, 3-fach 2 eine für GND, eine für 5 V – deine Stromschienen
Diode SS34 (Schottky) oder 1N4007 1 zwischen 5-V-Klemme und 5-V-Pin des ESP32
Steckbrücken einige männlich-männlich, dazu ein paar männlich-weiblich
PCA9685-Platine (16 Kanäle) 1 Adresse 0x40 lassen, wie sie ab Werk ist
Servo SG90 oder MG90S bis 16 Micro-Servo, 5 V; der dreipolige Stecker passt direkt

Schaltung und Aufbau

1. ESP32 aufs Steckbrett

Löte die Stiftleisten an das Waveshare ESP32-S3 Mini und steck es so in das
Mini-Steckbrett, dass es über der Rille in der Mitte sitzt und der
USB-C-Anschluss nach links über den Rand zeigt. So hat jeder Pin eine eigene
Reihe freier Kontakte.

Das Waveshare ESP32-S3 Mini auf dem Mini-Steckbrett
Das Waveshare ESP32-S3 Mini auf dem Mini-Steckbrett

2. Strom: 12 V rein, 5 V raus

Das Netzteil kommt in die DC-Buchse mit den Schraubklemmen. Von dort gehen die
beiden Eingangsdrähte des Spannungswandlers ab: Rot an Plus, Schwarz an Minus.
Auf der anderen Seite gibt der Wandler feste 5 V ab – sein schwarzer Draht
kommt in die erste Wago-Klemme (ab jetzt GND), der andere in die zweite (5 V).
Das Netzteil bleibt ausgesteckt, bis alles verdrahtet ist.

Das ist der Schritt, an dem sonst am meisten schiefgeht: Servos ziehen beim
Anfahren kurzzeitig sehr viel Strom – mehr, als der Regler auf dem ESP32-Board
verträgt. Ihr Strom kommt deshalb vom Netzteil über den Wandler, nie aus dem
USB-Anschluss.

Netzteil, DC-Buchse, Spannungswandler und zwei Hebelklemmen als Stromschienen
Netzteil, DC-Buchse, Spannungswandler und zwei Hebelklemmen als Stromschienen

3. ESP32 versorgen – mit Diode

Ein schwarzer Draht vom GND-Pin des ESP32 in die GND-Klemme. Die 5 V kommen
nicht direkt ans Board, sondern über die Diode: Steck sie ins Steckbrett, mit
dem Ring zum ESP32 hin. Dann ein Draht von der 5-V-Klemme an das freie Ende der
Diode und ein kurzer vom Ring-Ende zum 5-V-Pin.

Die Diode ist deine Update-Versicherung: Mit ihr kannst du jederzeit das
USB-Kabel einstecken, während das Netzteil dran bleibt – in jeder Reihenfolge,
nichts speist zurück.

Die Diode zwischen 5-V-Klemme und 5-V-Pin des ESP32
Die Diode zwischen 5-V-Klemme und 5-V-Pin des ESP32

4. PCA9685: Strom für die Servos

Die PCA9685-Platine kommt nicht ins Steckbrett, sie liegt daneben. Oben hat sie
eine grüne Schraubklemme mit V+ und GND – dort kommt der Strom für die Servos
an, getrennt von der Logik. GND an die GND-Klemme, V+ an die 5-V-Klemme.

Die PCA9685-Platine bekommt ihren Servostrom direkt von den Klemmen
Die PCA9685-Platine bekommt ihren Servostrom direkt von den Klemmen

5. Vier Signaldrähte

An der Stiftleiste der Platine stehen GND, OE, SCL, SDA, VCC und V+. Vier davon
bekommen einen Draht zum ESP32:

PCA9685 ESP32-S3 Mini Farbe
GND GND schwarz
VCC 3V3 rot
SCL GP6 gelb
SDA GP5 grün

Achte auf die letzten beiden: Auf der Platine steht SCL vor SDA, am ESP32 liegt
GP5 vor GP6 – die zwei Drähte kreuzen sich. OE und V+ an der Stiftleiste
bleiben frei. Mehr Signalverbindung braucht es nicht, egal wie viele Servos
später daran hängen. Und VCC ist nicht V+: VCC ist die Logik (3,3 V vom ESP32),
V+ der Servostrom (5 V aus der Klemme). Wer sie verwechselt, hat eine stumme
Platine.

Vier Signaldrähte zwischen PCA9685 und ESP32, SCL und SDA gekreuzt
Vier Signaldrähte zwischen PCA9685 und ESP32, SCL und SDA gekreuzt

6. Servos anstecken

Der Servostecker passt genau auf die drei Pins eines Kanals. Achte auf die
Richtung:

Ader am Servo Pin der Platine
braun oder schwarz GND (außen)
rot V+ (Mitte)
orange oder gelb PWM

Dann Netzteil einstecken und USB anschließen. Zuckt ein Servo beim Einschalten
kurz, ist das normal – er fährt seine Nullstellung an.

Wie viele Servos du anschließen kannst, entscheidet nicht die Platine, sondern
dein Netzteil und der Wandler: 3 A reichen für vier bis sechs Micro-Servos, die
nicht alle gleichzeitig anfahren. Für mehr brauchst du einen stärkeren Wandler.

Micro-Servos an den Kanälen der PCA9685
Micro-Servos an den Kanälen der PCA9685

Firmware und erste Bewegung

Die Firmware musst du nicht selbst schreiben oder kompilieren. Lade
SceneFX
herunter (kostenlos, Mac und Windows), steck das Board per USB an und füge in
der App ein Modul vom Typ Bewegung hinzu. Die App spielt die Firmware auf
und richtet das WLAN ein (2,4 GHz). Danach braucht das Modul kein USB mehr.

Beim Start sucht das Modul selbst nach der PCA9685. Findet es keine, schick ihm
über den seriellen Monitor den Befehl I2C – es antwortet, ob etwas am Bus
hängt und ob SDA und SCL vertauscht sind.

Tore mit Gewohnheiten

In der App ziehst du Motive auf eine Karte deiner Anlage und verbindest jedes
mit einem Kanal des Moduls. Mit „Kurz zeigen" winkt der Servo einmal, damit du
siehst, welchen du gerade in der Hand hast; „Kurz vorführen" spielt das
Verhalten des Motivs einmal ab.

Die Motive bringen mit, wann und wie sie sich bewegen:

  • Das Scheunentor aus der Erweiterung „Höfe und Nachbarn" geht morgens
    gegen Viertel vor sechs auf, wenn der Bauer zum Stall geht, und abends gegen
    zehn wieder zu – langsam, mit etwas Streuung von Tag zu Tag. Zieht ein
    Gewitter oder Sturm auf, fällt es zu.
  • Die Kiosk-Klappe aus der Erweiterung „Bahnhof" geht hoch, wenn der Kiosk
    aufmacht, und runter, wenn er schließt – und schnell zu, wenn es anfängt zu
    regnen.

Und weil Motive auch klingen, hörst du das Tor knarren, während es sich
bewegt – über die Lautsprecher am Computer.

Zwei Lehren

Der Strom kommt nie aus USB. Servos ziehen im Anlauf ein Vielfaches ihres
Ruhestroms. Das ist mehr, als der kleine Regler auf dem ESP32-Board
verträgt. Deshalb Netzteil, Buck-Wandler und Hebelklemmen – auch wenn es
erst einmal nach mehr Aufwand aussieht.

Ein brummender Servo steht an. Wird ein Servo heiß und brummt, drückt er
gegen einen mechanischen Anschlag. Nimm ihn sofort vom Strom und begrenze den
Weg in der App, statt ihn gegen den Anschlag fahren zu lassen.

Häufige Fragen

Welche Servos passen?
Micro-Servos für 5 V wie SG90 oder MG90S. Ihr dreipoliger Stecker passt ohne
Adapter auf die Platine.

Wie viele Servos kann ich anschließen?
Die Platine hat 16 Kanäle. Wie viele davon gleichzeitig laufen können,
bestimmt die Stromversorgung: Mit einem 3-A-Wandler sind es vier bis sechs
Micro-Servos, die nicht alle gleichzeitig anfahren.

Brauche ich eine Digitalzentrale?
Nein. Die Servos laufen über WLAN und sind unabhängig vom Fahrbetrieb –
analog oder digital, jede Spurweite.

Kann ich Licht und Servos an dieselbe Platine hängen?
Nein. Für Servos läuft die Platine mit 50 Hz, für Licht mit 1 kHz – ein Chip
kann nur einen Takt. Nimm für Licht ein eigenes Licht-Modul.

Muss der Computer laufen?
Ja. Die Module sind bewusst einfach: Sie empfangen und bewegen. Der Tag, die
Gewohnheiten und die Szenen laufen in der App.


Die App, die Firmware und die bebilderte Werkstatt zu jedem Modul gibt es
kostenlos auf scenefx.de.
Licht und Bewegung sind noch Beta: Die Module funktionieren, aber nicht jedes
Heimnetz ist gleich.


Aus RailFX ist SceneFX geworden

Dein nächstes RailFX-Modul ist eine App

In den RailFX-Tutorials bekommt jeder Effekt sein eigenes Modul: hier eine Kirche mit DFPlayer, dort ein Blaulicht mit Nano. Was fehlt, ist der Tag, der alles zusammenhält. Den gibt SceneFX deiner Anlage.

  • Klang zuerst. Zwei Lautsprecher, App starten: Die Kirche schlägt zur vollen Stunde, im Gasthaus wird es abends laut, und manchmal zieht ein Gewitter auf.
  • Szenen statt Sketche. Kleine Abläufe mit Rollen – „Letzte Runde in der Kneipe“, „Das Dorf geht schlafen“ –, die du mit deinen Motiven besetzt.
  • Und fürs Löten: Licht und Bewegung laufen über WLAN-Module mit ESP32, die du selbst aufbaust. Noch in der Beta.

Kostenlos für macOS (Apple Silicon) und Windows 10/11 · Erweiterung „Dorf“ inklusive · weitere Erweiterungen je 39,90 €

SceneFX kostenlos laden

Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

  • Die beliebtesten Arduino-Projekte von StartHardware
  • Inklusive Schaltplan, Beschreibung und Code
  • Arduino-Schnellstart-Kapitel
  • Kompakter Programmierkurs


0 0 votes
Article Rating
Abonnieren
Benachrichtige mich bei
0 Comments
Newest
Oldest Most Voted
0
Ich würde mich über deine Meinung freuen.x