아두이노 나노 - 리밋 스위치 | Arduino Nano - Limit Switch

이 튜토리얼은 리미트 스위치와 함께 Arduino Nano를 사용하는 방법을 안내합니다. 자세히 배울 내용은 다음과 같습니다:

Arduino Nano with Limit Switch

준비물

1×Arduino Nano Amazon
1×USB A to Mini-B USB cable 쿠팡 | Amazon
1×Limit Switch (KW12-3) 쿠팡 | Amazon
1×Limit Switch (V-156-1C25) 쿠팡 | Amazon
1×Wires Amazon
1×(Optional) Heat Shrink Tubing Amazon
1×(Optional) Soldering Iron Amazon
1×(Optional) 9V Power Adapter for Arduino Nano Amazon
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

리미트 스위치에 관하여

그것은 움직이는 물체가 한계에 도달했을 때를 감지하는 것이 주요 목적이기 때문에 리밋 스위치라고 불립니다.

리미트 스위치 핀배열

다양한 종류의 리미트 스위치가 존재하지만, 가장 선호되는 것들 중에는 KW12-3V-156-1C25가 있습니다. 이러한 유형 각각은 세 개의 핀을 특징으로 합니다:

  • C: 이것은 공통 핀이며, 정상적으로 열린 모드와 정상적으로 닫힌 모드 양쪽에서 사용됩니다
  • NO: 이것은 정상적으로 열린 핀이며, 정상적으로 열린 모드에서 사용됩니다
  • NC: 이것은 정상적으로 닫힌 핀이며, 정상적으로 닫힌 모드에서 사용됩니다
Limit Switch pinout
image source: diyables.io

작동 원리

리미트 스위치에는 세 개의 핀이 있지만, 일반적인 사용에서는 그 중 두 개만 사용됩니다: C 핀과 다른 두 개 중 하나입니다. 따라서 리미트 스위치를 배선하는 네 가지 가능한 방법이 있습니다. 다음 표는 모든 네 가지 방법에 대한 배선과 아두이노 나노에서의 읽기 상태를 보여줍니다:

C pin NO pin NC pin Arduino Nano Input Pin's State
1 GND Arduino Nano Input Pin (with pull-up) not connected HIGH when untouched, LOW when touched
2 GND not connected Arduino Nano Input Pin (with pull-up) LOW when untouched, HIGH when touched
3 VCC Arduino Nano Input Pin (with pull-down) not connected LOW when untouched, HIGH when touched
4 VCC not connected Arduino Nano Input Pin (with pull-down) HIGH when untouched, LOW when touched

모든 방법에 대해, GND 핀과 아두이노 나노 입력 핀을 교환할 수 있습니다. 따라서 아두이노 나노를 리미트 스위치에 연결하는 8가지 방법이 있습니다.

우리는 네 가지 옵션 중 하나를 선택해야 합니다. 나머지 튜토리얼은 첫 번째 방법을 사용할 것입니다.

선연결

Arduino Nano Limit Switch wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

안전하고 신뢰할 수 있는 배선 연결을 위해서, 한계 스위치의 전선과 핀을 함께 납땜하기 위해 솔더링 아이언 사용을 권장합니다. 그 후, 추가 안전을 위해 열 수축 튜브를 사용하세요.

아두이노 나노 코드 - 리미트 스위치

버튼과 유사하게, 리미트 스위치 역시 디바운싱이 필요합니다(버튼/리미트 스위치에 디바운싱이 필요한 이유?에서 자세히 보기). 이는 코딩을 복잡하게 만들 수 있습니다. 다행히, ezButton 라이브러리는 디바운싱 기능을 제공합니다. 추가로, 내부 풀업 저항을 사용하여 버튼 프로그래밍을 단순화합니다.

※ NOTE THAT:

리미트 스위치와 관련된 두 가지 흔한 응용이 있습니다:

  • 첫 번째: 스위치가 'TOUCHED'(접촉) 위치에 있으면 한 가지 동작을 수행합니다. 입력이 'UNTOUCHED'(비접촉)이면 반대의 동작을 수행합니다.
  • 두 번째: 스위치가 'UNTOUCHED'(비접촉)에서 'TOUCHED'(접촉)로 바뀌거나 (또는 'TOUCHED'에서 'UNTOUCHED'로 바뀌면), 어떤 동작을 취합니다.
/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-limit-switch */ #include <ezButton.h> ezButton limitSwitch(2); // 2번 핀을 위한 ezButton 객체 생성 void setup() { Serial.begin(9600); limitSwitch.setDebounceTime(50); // 디바운스 시간을 50밀리초로 설정 } void loop() { limitSwitch.loop(); // loop() 함수를 먼저 호출해야 함 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"); }

사용 방법

  • 배선도에 표시된 대로 배선을 하세요.
  • USB 케이블을 사용하여 Arduino Nano를 PC에 연결하세요.
  • Arduino IDE를 열세요.
  • EzButton 라이브러리를 설치하세요. How To의 지침을 참조하세요.
  • 적절한 보드와 포트를 선택하세요.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino Nano에 업로드하세요.
  • 리미트 스위치를 눌렀다가 놓으세요.
  • 시리얼 모니터에서 결과를 확인하세요.
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  

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!