Arduino - Limit Switch

De limit switch wordt in veel toepassingen gebruikt, zoals motorregeling en automatisering. In deze handleiding leren we hoe u de Limit Switch met Arduino gebruikt.

Arduino with Limit Switch

Verwar dit niet met:

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0-kabel type A/B
1×Eindschakelaar (KW12-3)
1×Eindschakelaar (V-156-1C25)
1×Draden
1×(Optioneel) Krimpkous
1×(Optioneel) Soldeerbout
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Limit Switch

Het wordt Limit Switch genoemd omdat de belangrijkste functie is om een bewegend object te detecteren dat een limiet bereikt.

Pinout

Er zijn verschillende typen limit switches verkrijgbaar, maar de meest gebruikte zijn de KW12-3 en V-156-1C25. Beide typen hebben 3 pinnen:

  • C-pin: dit is de common (gemeenschappelijke) pin. Deze wordt gebruikt in zowel normaal open (normally open) als normaal gesloten (normally closed) modus
  • NO-pin: normally open pin – wordt gebruikt in normaal open modus
  • NC-pin: normally closed pin – wordt gebruikt in normaal gesloten modus
Limit Switch Pinout
image source: diyables.io

Hoe het werkt

Hoewel een Limit Switch 3 pinnen heeft, wordt er in de praktijk meestal maar twee pinnen gebruikt: de C-pin en één van de twee overige pinnen. Er zijn dus vier manieren om een limit switch aan te sluiten. Hieronder staat de bedradings- en leesstatus tabel van de limit switch op Arduino voor alle vier manieren:

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

Voor elke manier kunnen we de GND-pin en de Arduino Input Pin omwisselen. Daardoor zijn er in totaal 8 manieren om een limit switch op Arduino aan te sluiten.

U hoeft slechts één van bovenstaande vier manieren te kiezen. De rest van deze tutorial gebruikt de eerste manier.

Bedradingsschema

Arduino Limit Switch Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Om de verbindingen stabiel en stevig te maken, raden we aan om een soldeerbout te gebruiken om de draden aan de pinnen van de limit switch te solderen, en vervolgens krimpkous te gebruiken voor veiligheid.

Arduino Code - Limit Switch

Net als bij een knop moet een limit switch worden 'gedebounced' (lees meer bij Waarom debounce nodig is voor knop/limit switch?). Debouncing maakt de code complexer. Gelukkig ondersteunt de ezButton bibliotheek debouncing en gebruikt deze de interne pull-up register. Dit maakt programmeren eenvoudiger.

※ Notiz:

Er zijn twee veelgebruikte scenario's:

  • Ten eerste: Als de schakelaar TOUCHED (ingedrukt) is, doe iets. Als ongebruikt, doe dan iets anders.
  • Ten tweede: Als de toestand van de schakelaar verandert van UNTOUCHED naar TOUCHED (of andersom), doe iets.
/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-limit-switch */ #include <ezButton.h> ezButton limitSwitch(7); // create ezButton object that attach to pin 7; 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

  • Maak de bedrading volgens het bovenstaande bedradingsschema
  • Verbind de Arduino met uw PC via de USB-kabel
  • Open de Arduino IDE
  • Installeer de ezButton bibliotheek. Zie Hoe te installeren
  • Selecteer de juiste board en poort
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden
  • Druk de Limit Switch in en laat los
  • Bekijk het resultaat in de Serial Monitor
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 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.

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