Arduino Nano - Limietschakelaar

Deze tutorial legt uit hoe u de Arduino Nano gebruikt met een limietschakelaar. We gaan gedetailleerd aan de slag met:

Arduino Nano met Limietschakelaar

Hardware Vereist

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×Limietschakelaar (KW12-3)
1×Limietschakelaar (V-156-1C25)
1×Draden
1×(Optioneel) Krimpkous
1×(Optioneel) Soldeerbout
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

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 de Limietschakelaar

Een limietschakelaar wordt zo genoemd vanwege het primaire doel: het detecteren wanneer een bewegend object een limiet heeft bereikt.

De Pinout van de Limietschakelaar

Er bestaan verschillende typen limietschakelaars, maar de meest populaire zijn de KW12-3 en V-156-1C25. Elk type heeft drie pennen:

  • C: Dit is de gemeenschappelijke pin (common) die beide modi ondersteunt: normaal open en normaal gesloten
  • NO: Dit is de normaal open pin en wordt gebruikt in de normaal open modus
  • NC: Dit is de normaal gesloten pin en wordt gebruikt in de normaal gesloten modus
Pinout Limietschakelaar
image source: diyables.io

Hoe Werkt Het

Hoewel de limietschakelaar drie pennen heeft, worden bij normaal gebruik meestal maar twee gebruikt: de C-pin en één van de andere twee. Hierdoor zijn er vier mogelijke manieren om de limietschakelaar aan te sluiten. De volgende tabel toont de bedrading en de uitlezing op de Arduino Nano voor deze vier methoden:

C pin NO pin NC pin Status Arduino Nano Ingangspin
1 GND Arduino Nano Ingangspin (met pull-up) niet aangesloten HIGH als niet ingedrukt, LOW als ingedrukt
2 GND niet aangesloten Arduino Nano Ingangspin (met pull-up) LOW als niet ingedrukt, HIGH als ingedrukt
3 VCC Arduino Nano Ingangspin (met pull-down) niet aangesloten LOW als niet ingedrukt, HIGH als ingedrukt
4 VCC niet aangesloten Arduino Nano Ingangspin (met pull-down) HIGH als niet ingedrukt, LOW als ingedrukt

Voor elke methode kunnen we de GND-pin en de Arduino Nano-ingangspin wisselen. Dit betekent dat er in totaal acht manieren zijn om de Arduino Nano aan een limietschakelaar te koppelen.

We kiezen één van de vier opties. De rest van deze tutorial maakt gebruik van de eerste methode.

Aansluitschema

Aansluitschema Arduino Nano Limietschakelaar

This image is created using Fritzing. Click to enlarge image

Voor een veilige en betrouwbare aansluiting raden we aan een Soldeerbout te gebruiken om de draden en pinnen van de limietschakelaar vast te solderen. Gebruik daarna Krimpkous voor extra bescherming.

Arduino Nano Code - Limietschakelaar

Net als een knop heeft een limietschakelaar debouncing nodig (zie meer bij Waarom debouncen voor knop/limietschakelaar?). Dit maakt het programmeren complexer. Gelukkig biedt de ezButton library een functie voor debouncing. Daarnaast maakt deze library gebruik van een interne pull-up weerstand, wat het programmeren vereenvoudigt.

※ Notiz:

Er bestaan twee veelvoorkomende toepassingen met een limietschakelaar:

  • De eerste: Als de schakelaar in de INGEDRUKTE positie staat, voer dan één actie uit. Als de ingang NIET INGEDRUKT is, doe dan het tegenovergestelde.
  • De tweede: Als de schakelaar verandert van NIET INGEDRUKT naar INGEDRUKT (of andersom), voer dan een actie uit.
/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-limit-switch */ #include <ezButton.h> ezButton limitSwitch(2); // create ezButton object for pin 2 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 verbindingen zoals aangegeven in het aansluitschema.
  • Verbind de Arduino Nano via USB met een pc.
  • Open de Arduino IDE.
  • Installeer de ezButton library. Volg de instructies bij Hoe te installeren.
  • Kies het juiste board en de juiste poort.
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino Nano te sturen.
  • Druk kort op en laat vervolgens los de limietschakelaar.
  • Controleer het resultaat in de Seriële 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!