ESP32 - Eindschakelaar (Limit Switch)

Deze tutorial legt uit hoe u een Limit Switch gebruikt met een ESP32.

ESP32 with Limit Switch

Belangrijk om te weten: deze tutorial gaat specifiek over het gebruik van een Limit Switch, verwarren het niet met de volgende schakelaars:

Over de Limit Switch

Een Limit Switch heet zo omdat de hoofdfunctionaliteit is om te detecteren wanneer een bewegend object een grens heeft bereikt.

Pinout

Er bestaan verschillende types limit switches, maar de meest gebruikte zijn de KW12-3 en V-156-1C25. Elk van deze types heeft drie pinnen:

  • C pin: Dit is de common-pin, die wordt gebruikt in zowel normaal open als normaal gesloten modus.
  • NO pin: Dit is de normaal open pin, gebruikt in de normaal open modus.
  • NC pin: Dit is de normaal gesloten pin, gebruikt in de normaal gesloten modus.
Limit Switch Pinout
image source: diyables.io

Hoe werkt het

Een typische toepassing van een Limit Switch gebruikt gewoonlijk slechts twee pinnen: de C pin en een van de twee andere pinnen. Dit resulteert in vier verschillende manieren om een Limit Switch aan te sluiten. De onderstaande tabel toont hoe de bedrading en de uitlezing op een ESP32 zijn voor elk van deze vier methoden.

C pin NO pin NC pin Staat ESP32 Input Pin
1 GND ESP32 Input Pin (met pull-up) niet aangesloten HIGH als niet ingedrukt, LOW als ingedrukt
2 GND niet aangesloten ESP32 Input Pin (met pull-up) LOW als niet ingedrukt, HIGH als ingedrukt
3 VCC ESP32 Input Pin (met pull-down) niet aangesloten LOW als niet ingedrukt, HIGH als ingedrukt
4 VCC niet aangesloten ESP32 Input Pin (met pull-down) HIGH als niet ingedrukt, LOW als ingedrukt

Door bij elke van de vier methoden de GND pin en de ESP32 input pin om te wisselen, zijn er in totaal acht verschillende manieren om een ESP32 op een Limit Switch aan te sluiten.

Van deze acht manieren wordt in deze tutorial één methode gebruikt, specifiek de eerste methode als voorbeeld.

Bedradingschema

ESP32 limit switch wiring diagram

This image is created using Fritzing. Click to enlarge image

Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.

How to connect ESP32 and limit switch

Om de bedrading stevig en betrouwbaar te maken, adviseren wij om de draden en de pinnen van de limit switch aan elkaar te solderen en daarna te isoleren met krimpkous.

Voor een stabiele en veilige verbinding raden we aan een soldeerbout te gebruiken om de draden en pinnen van de Limit Switch aan elkaar te solderen, gevolgd door krimpkousen ter isolatie en veiligheid.

ESP32 Code - Limit Switch

Net als bij een knop moet een Limit Switch worden gedebounced (zie meer op ). Debouncing maakt de code complexer. Gelukkig ondersteunt de ezButton library debouncing en gebruikt deze de interne pull-up registers, wat programmeren eenvoudiger maakt.

Vergelijkbaar met een knop heeft een Limit Switch ook debouncing nodig (zie meer bij Waarom is debouncing nodig voor knop/limit switch?). Debouncing kan de code ingewikkelder maken. De ezButton library biedt echter ondersteuning voor debouncing en werkt met interne pull-up registers, waardoor programmeren makkelijker wordt.

※ Notiz:

Twee veelvoorkomende toepassingen van een Limit Switch zijn:

  • Eerste use case: Als de switch INGEDRUKT is, voer dan een bepaalde actie uit. Als de ingangstoestand NIET INGEDRUKT is, voer dan de tegenovergestelde actie uit.
  • Tweede use case: Als de switch toestand verandert van NIET INGEDRUKT naar INGEDRUKT (of andersom), voer dan een specifieke actie uit.
/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-limit-switch */ #include <ezButton.h> ezButton limitSwitch(19); // create ezButton object that attach to ESP32 pin GPIO19 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"); }

Snelle Stappen

  • Volg het bedrading schema hierboven om uw Limit Switch op de ESP32 aan te sluiten.
  • Verbind uw ESP32 met uw pc via een USB-kabel.
  • Open de Arduino IDE software.
  • Installeer de ezButton library. Zie de instructies
  • Selecteer het juiste board en de juiste poort in de Arduino IDE.
  • Compileer en upload de code naar de ESP32 door te klikken op de Upload knop in de Arduino IDE.
  • Test de Limit Switch door deze aan te raken en los te laten.
  • Bekijk de output in de Seriële Monitor van de Arduino IDE.
COM6
Send
The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED -> TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED -> UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt bij het makkelijker begrijpen van het gebruik van een Limit Switch met ESP32.

[Link naar video]

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!