아두이노 - 리미트 스위치 | Arduino - Limit Switch

리미트 스위치는 모터 제어, 자동화와 같은 많은 응용 프로그램에서 사용되어 왔습니다. 이 튜토리얼에서는 아두이노와 함께 리미트 스위치를 사용하는 방법을 배울 것입니다.

Arduino with Limit Switch

다음과 혼동하지 말아 주세요:

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | 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 Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

리미트 스위치에 관하여

이것은 주로 움직이는 물체가 한계에 도달하는 것을 감지하는 기능을 사용하기 때문에 리미트 스위치(Limit Switch)라고 불립니다.

핀아웃

다양한 종류의 리미트 스위치가 있지만, 가장 일반적으로 사용되는 것들 중에는 KW12-3V-156-1C25가 있습니다. 이 두 종류 모두 3개의 핀을 가지고 있습니다:

  • C 핀: 공통 핀입니다. 일반적으로 열린 모드와 일반적으로 닫힌 모드 모두에서 사용됩니다.
  • NO 핀: 일반적으로 열린 핀입니다. 일반적으로 열린 모드에서 사용됩니다.
  • NC 핀: 일반적으로 닫힌 핀입니다. 일반적으로 닫힌 모드에서 사용됩니다.
Limit Switch Pinout
image source: diyables.io

작동 원리

리미트 스위치에는 3개의 핀이 있지만, 보통의 용도에서는 두 개의 핀만 사용됩니다: C 핀과 나머지 두 핀 중 하나입니다. 따라서 리미트 스위치를 사용하는 방법은 네 가지가 있습니다. 아래는 리미트 스위치와 아두이노에서의 모든 네 가지 방법에 대한 읽기 상태의 배선 표입니다:

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

각 방법에 대해, 우리는 GND 핀과 Arduino 입력 핀을 서로 바꿀 수 있습니다. 따라서, 리미트 스위치를 Arduino에 연결하는 방법은 8가지가 있습니다.

위의 네 가지 방법 중 하나만 선택하면 됩니다. 나머지 튜토리얼은 첫 번째 방법을 사용할 것입니다.

선연결

Arduino Limit Switch Wiring Diagram

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

배선 연결을 안정적이고 견고하게 만들기 위해, 우리는 솔더링 아이언을 사용하여 전선과 리미트 스위치의 핀을 함께 납땜하고, 그 다음에 열 수축 튜브를 사용하여 안전하게 만드는 것을 추천합니다.

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

버튼처럼, 리미트 스위치도 디바운스 처리가 필요합니다(자세한 내용은 버튼/리미트 스위치에 왜 디바운스가 필요한가?를 참조하세요). 디바운싱은 코드를 복잡하게 만듭니다. 다행히도, ezButton 라이브러리는 디바운싱 기능을 지원합니다. 이 라이브러리는 내부 풀업 저항도 사용합니다. 이러한 기능들이 우리가 프로그래밍하는 것을 쉽게 만들어 줍니다.

※ NOTE THAT:

다음 두 가지 널리 사용되는 사용 사례가 있습니다:

  • 첫 번째: 스위치의 상태가 TOUCHED이면 무언가를 하십시오. 입력 상태가 UNTOUCHED이면 반대로 다른 것을 하십시오.
  • 두 번째: 스위치의 상태가 UNTOUCHED에서 TOUCHED(또는 TOUCHED에서 UNTOUCHED)로 변경되면 무언가를 하십시오.
/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-limit-switch */ #include <ezButton.h> ezButton limitSwitch(7); // 핀 7에 연결된 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 케이블을 통해 아두이노를 PC에 연결하세요
  • 아두이노 IDE를 열어주세요
  • EzButton 라이브러리를 설치하세요. 설치 방법 보기
  • 올바른 보드와 포트를 선택하세요
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 아두이노에 업로드하세요
  • 리미트 스위치를 눌렀다가 놓으세요.
  • 시리얼 모니터에서 결과를 확인하세요.
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!