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.

ESP32 S3 mit Endschalter

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:

  1. Einen Endschalter über ein Breadboard mit dem ESP32 S3 verbinden
  2. Den Schalterzustand (TOUCHED / UNTOUCHED) in Echtzeit auslesen
  3. Zustandswechsel erkennen (UNTOUCHED → TOUCHED und TOUCHED → UNTOUCHED)
  4. Live-Messwerte im Serial Monitor der Arduino IDE anzeigen

Ü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.
Pinbelegung des Endschalters
image source: diyables.io

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.

ESP32 S3 Endschalter Schaltplan

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.
/* * 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-limit-switch */ #include <ezButton.h> ezButton limitSwitch(7); // create ezButton object that attach to ESP32 S3 pin GPIO7 void setup() { Serial.begin(9600); limitSwitch.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { limitSwitch.loop(); // MUST call the loop() function first if(limitSwitch.isPressed()) Serial.println("The limit switch: UNTOUCHED -> TOUCHED"); if(limitSwitch.isReleased()) Serial.println("The limit switch: TOUCHED -> UNTOUCHED"); int state = limitSwitch.getState(); if(state == HIGH) Serial.println("The limit switch: UNTOUCHED"); else Serial.println("The limit switch: TOUCHED"); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Folgen Sie dem obigen Schaltplan, um Ihren Endschalter mit dem ESP32 S3 zu verbinden.
  3. Verbinden Sie Ihren ESP32 S3 über ein USB-Kabel mit Ihrem PC.
  4. Öffnen Sie die Arduino IDE.
  5. Installieren Sie die ezButton-Bibliothek. Siehe die Anleitung
  6. Wählen Sie in der Arduino IDE das passende Board und den Port aus.
  7. 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.
  8. Testen Sie den Endschalter, indem Sie ihn berühren und wieder loslassen.
  9. Beobachten Sie die Ausgabe im Serial Monitor der Arduino IDE.
  10. 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

∞
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-01-15 09:23:11] The limit switch: UNTOUCHED [2026-01-15 09:23:11] The limit switch: UNTOUCHED [2026-01-15 09:23:12] The limit switch: UNTOUCHED [2026-01-15 09:23:12] The limit switch: UNTOUCHED -> TOUCHED [2026-01-15 09:23:13] The limit switch: TOUCHED [2026-01-15 09:23:13] The limit switch: TOUCHED [2026-01-15 09:23:13] The limit switch: TOUCHED [2026-01-15 09:23:14] The limit switch: TOUCHED [2026-01-15 09:23:14] The limit switch: TOUCHED [2026-01-15 09:23:15] The limit switch: TOUCHED [2026-01-15 09:23:15] The limit switch: TOUCHED [2026-01-15 09:23:16] The limit switch: TOUCHED -> UNTOUCHED [2026-01-15 09:23:16] The limit switch: UNTOUCHED [2026-01-15 09:23:17] The limit switch: UNTOUCHED [2026-01-15 09:23:17] The limit switch: UNTOUCHED
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungen

Endschalter werden in vielen realen Automatisierungs- und Sicherheitsszenarien eingesetzt, in denen eine präzise Positions- oder Endlagenerkennung erforderlich ist. Hier einige typische Anwendungen:

  1. Endanschlag an CNC-Maschinen: Erkennen, wann ein Werkzeugschlitten das Ende seines Verfahrwegs erreicht, und die Bewegung stoppen, um Schäden zu vermeiden.
  2. Referenzfahrt beim 3D-Drucker: Jede Achse automatisch in die Ausgangsposition fahren, indem der Schalter auslöst, wenn der Druckkopf seine Minimalposition erreicht.
  3. Förderbandsteuerung: Ein Förderband anhalten, wenn ein Produkt eine bestimmte Position auf der Linie erreicht.
  4. Tür- oder Torpositionserkennung: Erkennen, ob eine Tür oder ein Tor vollständig geöffnet oder geschlossen ist – für Zutrittskontrollsysteme.
  5. Stockwerkserkennung im Aufzug: Der Steuerung melden, wenn eine Aufzugskabine ein bestimmtes Stockwerk erreicht.
  6. 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:

  1. Anfänger: Ändern Sie den Code so, dass die eingebaute LED des ESP32 S3 leuchtet, wenn sich der Endschalter im Zustand TOUCHED befindet.
  2. 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.
  3. 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.

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