ESP32 S3 - Endschalter
Dieses Tutorial zeigt Ihnen, wie Sie den Endschalter mit dem ESP32 S3 verwenden. Der ESP32 S3 liest den Zustand des Endschalters aus und meldet über den Serial Monitor, ob er berührt oder nicht berührt ist.

Beachten Sie, dass es in diesem Tutorial speziell um die Verwendung eines Endschalters geht. Bitte verwechseln Sie ihn nicht mit Folgendem:
Was Sie bauen werden:
- Einen Endschalter über ein Breadboard mit dem ESP32 S3 verbinden
- Den Schalterzustand (TOUCHED / UNTOUCHED) in Echtzeit auslesen
- Zustandswechsel erkennen (UNTOUCHED → TOUCHED und TOUCHED → UNTOUCHED)
- Live-Messwerte im Serial Monitor der Arduino IDE anzeigen
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) |
Überblick über Limit Switch
Ein Endschalter verdankt seinen Namen seinem Hauptzweck: zu erkennen, wann ein bewegtes Objekt eine festgelegte Grenze erreicht hat. Anders als ein normaler Taster ist ein Endschalter meist für wiederholte mechanische Betätigung ausgelegt und wird häufig in Industrie- und Automatisierungsanwendungen eingesetzt, in denen eine präzise Positionserkennung erforderlich ist.
Wichtige Spezifikationen
Es gibt verschiedene Arten von Endschaltern, zu den am häufigsten verwendeten gehören jedoch der KW12-3 und der V-156-1C25. Jeder dieser Typen hat drei Pins:
- C-Pin: Dies ist der gemeinsame Pin, er wird sowohl im Schließer- als auch im Öffner-Modus verwendet.
- NO-Pin: Dies ist der Schließer-Pin (normally open), er wird im Schließer-Modus verwendet.
- NC-Pin: Dies ist der Öffner-Pin (normally closed), er wird im Öffner-Modus verwendet.

So funktioniert es
Eine typische Endschalter-Anwendung verwendet nur zwei Pins – den C-Pin und einen der beiden anderen Pins. Daraus ergeben sich vier verschiedene Möglichkeiten, einen Endschalter anzuschließen. Die folgende Tabelle zeigt für jede der vier Methoden die Verdrahtung und den resultierenden Eingangszustand am ESP32 S3.
| C-Pin | NO-Pin | NC-Pin | Zustand des ESP32 S3 Eingangspins | |
|---|---|---|---|---|
| 1 | GND | ESP32 S3 Eingangspin (mit Pull-up) | nicht verbunden | HIGH wenn nicht berührt, LOW wenn berührt |
| 2 | GND | nicht verbunden | ESP32 S3 Eingangspin (mit Pull-up) | LOW wenn nicht berührt, HIGH wenn berührt |
| 3 | VCC | ESP32 S3 Eingangspin (mit Pull-down) | nicht verbunden | LOW wenn nicht berührt, HIGH wenn berührt |
| 4 | VCC | nicht verbunden | ESP32 S3 Eingangspin (mit Pull-down) | HIGH wenn nicht berührt, LOW wenn berührt |
Durch Vertauschen von GND-Pin und ESP32 S3 Eingangspin bei jeder der vier Varianten gibt es insgesamt acht verschiedene Möglichkeiten, einen ESP32 S3 mit einem Endschalter zu verbinden. Von diesen acht Möglichkeiten konzentriert sich dieses Tutorial auf die erste Methode als Arbeitsbeispiel.
Verdrahtungsdiagramm
Schließen Sie den Endschalter gemäß den folgenden Schaltplänen entweder über ein Breadboard oder über eine Schraubklemmen-Adapterplatine an den ESP32 S3 an. Für eine stabile und sichere Verbindung empfiehlt es sich, die Drähte mit einem Lötkolben an die Pins des Endschalters zu löten und anschließend zur zusätzlichen Sicherheit Schrumpfschläuche zu verwenden.
Sicherheitshinweise
Stellen Sie immer sicher, dass die Verdrahtung des Endschalters der vorgesehenen Pull-up- oder Pull-down-Konfiguration entspricht, bevor Sie das Board einschalten, um unerwünschte Messwerte zu vermeiden.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
ESP32 S3 Code - Endschalter
Ähnlich wie ein Taster muss auch ein Endschalter entprellt werden (mehr Informationen finden Sie unter Why needs debounce for the button/limit switch?). Die ezButton-Bibliothek bietet eine eingebaute Entprellfunktion und verwendet interne Pull-up-Widerstände, was den Code erheblich vereinfacht. Der folgende Code liest den Zustand des Endschalters in jedem Schleifendurchlauf aus und gibt alle Zustandsänderungen im Serial Monitor aus.
※ Notiz:
Zwei häufige Anwendungsfälle für einen Endschalter sind:
- Der erste Anwendungsfall: Wenn der Schalter BERÜHRT ist, wird eine bestimmte Aktion ausgeführt. Ist der Eingangszustand NICHT BERÜHRT, wird die entgegengesetzte Aktion ausgeführt.
- Der zweite Anwendungsfall: Wenn der Zustand des Schalters von NICHT BERÜHRT zu BERÜHRT (oder von BERÜHRT zu NICHT BERÜHRT) wechselt, wird eine bestimmte Aktion ausgeführt.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Folgen Sie dem obigen Schaltplan, um Ihren Endschalter mit dem ESP32 S3 zu verbinden.
- Verbinden Sie Ihren ESP32 S3 über ein USB-Kabel mit Ihrem PC.
- Öffnen Sie die Arduino IDE.
- Installieren Sie die ezButton-Bibliothek. Siehe die Anleitung
- Wählen Sie in der Arduino IDE das passende Board und den Port aus.
- Kompilieren Sie den Code und laden Sie ihn auf das ESP32 S3 Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
- Testen Sie den Endschalter, indem Sie ihn berühren und wieder loslassen.
- Beobachten Sie die Ausgabe im Serial Monitor der Arduino IDE.
- Profi-Tipp: Wechseln Sie zwischen dem NO- und dem NC-Pin, um zu sehen, wie sich der Standardzustand (TOUCHED vs. UNTOUCHED) umkehrt, ohne eine einzige Codezeile zu ändern.
Serial Monitor
Anwendungen
Endschalter werden in vielen realen Automatisierungs- und Sicherheitsszenarien eingesetzt, in denen eine präzise Positions- oder Endlagenerkennung erforderlich ist. Hier einige typische Anwendungen:
- Endanschlag an CNC-Maschinen: Erkennen, wann ein Werkzeugschlitten das Ende seines Verfahrwegs erreicht, und die Bewegung stoppen, um Schäden zu vermeiden.
- Referenzfahrt beim 3D-Drucker: Jede Achse automatisch in die Ausgangsposition fahren, indem der Schalter auslöst, wenn der Druckkopf seine Minimalposition erreicht.
- Förderbandsteuerung: Ein Förderband anhalten, wenn ein Produkt eine bestimmte Position auf der Linie erreicht.
- Tür- oder Torpositionserkennung: Erkennen, ob eine Tür oder ein Tor vollständig geöffnet oder geschlossen ist – für Zutrittskontrollsysteme.
- Stockwerkserkennung im Aufzug: Der Steuerung melden, wenn eine Aufzugskabine ein bestimmtes Stockwerk erreicht.
- Sicherheit bei Roboterarmen: Verhindern, dass ein Gelenk eines Roboterarms seinen sicheren Bewegungsbereich überschreitet, indem ein Not-Aus ausgelöst 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 für dieses ESP32 S3 Projekt an.
Herausforderungen
Endschalter sind einfache, aber leistungsfähige Bauteile – wenn Sie ihre Nutzung über die reine Zustandserkennung hinaus erweitern, eröffnen sich viele interessante Projekte. Hier einige Herausforderungen, um Ihr Verständnis zu vertiefen:
- Anfänger: Ändern Sie den Code so, dass die eingebaute LED des ESP32 S3 leuchtet, wenn sich der Endschalter im Zustand TOUCHED befindet.
- Fortgeschritten: Verwenden Sie zwei Endschalter für die Positionen "Start" und "Ende" eines simulierten Förderbands und geben Sie jedes Mal eine Meldung aus, wenn sich das virtuelle Objekt zwischen ihnen bewegt.
- Experte: Implementieren Sie einen Zähler, der erfasst, wie oft der Endschalter insgesamt ausgelöst wurde, zeigen Sie den laufenden Zählerstand im Serial Monitor an und setzen Sie ihn nach 100 Betätigungen auf null zurück.