ESP32 - 리미트 스위치 | ESP32 - Limit Switch

이 튜토리얼은 ESP32와 리미트 스위치를 사용하는 방법을 알려줍니다.

ESP32 with Limit Switch

이 튜토리얼은 리미트 스위치 사용에 대해 구체적으로 다루고 있다는 점을 유념해 주십시오. 다음과 혼동하지 말아 주시기 바랍니다:

준비물

1×ESP-WROOM-32 Dev Module 쿠팡 | Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Limit Switch (KW12-3) 쿠팡 | Amazon
1×Limit Switch (V-156-1C25) 쿠팡 | Amazon
1×Wires Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) DC Power Jack 쿠팡 | Amazon
1×(Recommended) Screw Terminal Expansion Board for ESP32 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

리미트 스위치에 관하여

그것은 이동하는 물체가 한계에 도달했는지 감지하는 것이 주 기능이기 때문에 리미트 스위치라고 불립니다.

리미트 스위치는 움직이는 물체가 한계에 도달했을 때를 감지하는 것이 주요 목적이기 때문에 그렇게 명명되었습니다.

핀배열

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

  • C 핀: 이것은 공통 핀입니다, 보통 열림 모드와 보통 닫힘 모드 모두에서 사용됩니다.
  • NO 핀: 이것은 보통 열림 핀입니다, 보통 열림 모드에서 사용됩니다.
  • NC 핀: 이것은 보통 닫힘 핀입니다, 보통 닫힘 모드에서 사용됩니다.
Limit Switch Pinout
image source: diyables.io

작동 방식

일반적인 리미트 스위치 응용 프로그램은 일반적으로 C핀과 나머지 두 핀 중 하나만 사용합니다. 이것은 리미트 스위치를 사용하는 네 가지 다른 방법을 초래합니다. 아래 표는 이 네 가지 방법 각각에 대해 ESP32에서의 배선 및 읽기 상태를 보여줍니다.

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

GND 핀과 ESP32 입력 핀을 서로 바꾸어 각각 4가지 방법으로, 총 8가지 다른 방식으로 ESP32를 리미트 스위치에 연결할 수 있습니다.

여덟 가지 방법 중에서, 이 튜토리얼은 하나의 방법에 초점을 맞출 것이며, 구체적으로 첫 번째 방법이 예시로 사용될 것입니다.

선연결

ESP32 Limit Switch Wiring Diagram

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

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

배선 연결을 안정적이고 견고하게 만들기 위해, 우리는 전선과 리미트 스위치의 핀을 함께 납땜하는 것을 추천하며, 그 후에 안전하게 만들기 위해 사용합니다.

안정적이고 안전한 연결을 위해 솔더링 아이언을 사용하여 전선과 리미트 스위치 핀을 납땜한 다음, 추가적인 안전을 위해 열 수축 튜브를 사용하는 것이 권장됩니다.

ESP32 코드 - 리미트 스위치

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

버튼과 마찬가지로, 리미트 스위치 역시 디바운싱이 필요합니다(더 많은 정보는 버튼/리미트 스위치에 왜 디바운스가 필요한가?에서 확인할 수 있습니다). 디바운싱은 코드를 더 복잡하게 만들 수 있습니다. 그러나, ezButton 라이브러리는 디바운싱 기능을 제공하며 내부 풀업 레지스터를 사용하여 프로그래밍을 더 쉽게 만듭니다.

※ NOTE THAT:

리미트 스위치의 두 가지 일반적인 사용 사례는 다음과 같습니다:

  • 첫 번째 사용 사례: 스위치가 접촉되면 특정 행동을 수행합니다. 입력 상태가 접촉되지 않은 경우 반대 행동을 수행합니다.
  • 두 번째 사용 사례: 스위치의 상태가 접촉되지 않은 상태에서 접촉된 상태로 (또는 접촉된 상태에서 접촉되지 않은 상태로) 변경되면 특정 행동을 수행합니다.
/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-limit-switch */ #include <ezButton.h> ezButton limitSwitch(17); // ESP32의 GPIO17 핀에 연결된 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"); }

사용 방법

  • ESP32를 처음 사용하는 경우, Arduino IDE에서 ESP32 환경 설정 방법을 참조하세요.
  • 위에 제공된 배선도를 따라 ESP32에 리미트 스위치를 연결하세요.
  • USB 케이블을 사용하여 PC에 ESP32를 연결하세요.
  • Arduino IDE 소프트웨어를 엽니다.
  • EzButton 라이브러리를 설치하세요. 지침을 참조하세요
  • Arduino IDE에서 적절한 보드와 포트를 선택하세요.
  • Arduino IDE에서 Upload 버튼을 클릭하여 ESP32 보드에 코드를 컴파일하고 업로드하세요.
  • 리미스 스위치를 누르고 놓음으로써 테스트하세요.
  • 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 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!