ESP32 C3 Super Mini 리미트 스위치

리미트 스위치는 움직이는 부품이 이동 끝 지점에 도달했을 때 ESP32 C3 Super Mini에 알려줍니다. 모터, 문, 슬라이더, 3D 프린터 축을 보호하는 저렴하고 매우 신뢰할 수 있는 방법입니다. 이 ESP32 C3 Super Mini 리미트 스위치 튜토리얼에서는 배선과 코드를 간단한 단계로 보여줍니다.

이 튜토리얼에서 배울 내용:

ESP32 C3 Super Mini - 리미트 스위치

이 튜토리얼은 리미트 스위치만 다룹니다. 다음과 혼동하지 마세요:

필요한 하드웨어

1×ESP32 C3 Super Mini 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×리미트 스위치 Limit Switch (KW12-3) 쿠팡 | 아마존
1×리미트 스위치 Limit Switch Module 아마존
1×리미트 스위치 Limit Switch (V-153-1C25) 아마존
1×리미트 스위치 Limit Switch (V-155-1C25) 아마존
1×리미트 스위치 Limit Switch (V-156-1C25) 쿠팡 | 아마존
1×Wires 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

리미트 스위치에 대하여

리미트 스위치는 움직이는 물체가 한계 지점에 도달했을 때 그 물체에 의해 눌리는 기계식 스위치입니다.

주요 특징:

  • 기계식: 금속 레버나 롤러가 접점을 누릅니다.
  • 전원 불필요: 스위치 자체에는 공급 전압이 필요 없습니다.
  • 두 가지 모드: 상시 개방(NO) 또는 상시 폐쇄(NC)로 작동합니다.
  • 긴 레버: 천천히 움직이는 부품으로도 쉽게 누를 수 있습니다.
  • 높은 신뢰성: 기계, 문, 이동 레일용으로 만들어졌습니다.

기술 사양:

  • 일반 모델: KW12-3 및 V-156-1C25.
  • 핀: 3핀 (C, NO, NC).
  • 접점 유형: SPDT (공통 핀 하나, 출력 두 개).
  • ESP32 C3 Super Mini용 신호: 3.3V 로직만 사용합니다. 스위치를 GND 또는 3.3V에 연결하고, 절대 5V에 연결하지 마세요.
  • 출력: 간단한 개방 또는 폐쇄 접점으로, 어떤 디지털 핀으로도 읽을 수 있습니다.

핀아웃

리미트 스위치에는 여러 종류가 있습니다. KW12-3과 V-156-1C25가 가장 인기 있습니다. 둘 다 핀이 세 개입니다.

  • C 핀: 공통 핀입니다. 상시 개방 모드와 상시 폐쇄 모드 모두에서 사용됩니다.
  • NO 핀: 상시 개방 핀입니다. 상시 개방 모드에서 사용됩니다.
  • NC 핀: 상시 폐쇄 핀입니다. 상시 폐쇄 모드에서 사용됩니다.
리미트 스위치 핀아웃
image source: diyables.io

작동 원리

리미트 스위치는 보통 두 개의 핀만 사용합니다: C 핀과 나머지 두 핀 중 하나입니다.

  • 눌리지 않음: C가 NC에 연결됩니다. C는 NO에 연결되지 않습니다.
  • 눌림: C가 NO에 연결됩니다. C는 NC에 연결되지 않습니다.

이로써 리미트 스위치를 사용하는 방법은 네 가지가 됩니다. 아래 표는 각 방법의 배선과 ESP32 C3 Super Mini가 읽는 상태를 보여줍니다.

C 핀 NO 핀 NC 핀 ESP32 C3 Super Mini 입력 핀의 상태
1 GND ESP32 C3 Super Mini 입력 핀 (풀업 사용) 연결 안 함 눌리지 않으면 HIGH, 눌리면 LOW
2 GND 연결 안 함 ESP32 C3 Super Mini 입력 핀 (풀업 사용) 눌리지 않으면 LOW, 눌리면 HIGH
3 3.3V ESP32 C3 Super Mini 입력 핀 (풀다운 사용) 연결 안 함 눌리지 않으면 LOW, 눌리면 HIGH
4 3.3V 연결 안 함 ESP32 C3 Super Mini 입력 핀 (풀다운 사용) 눌리지 않으면 HIGH, 눌리면 LOW

네 가지 방법 각각에서 GND 핀과 ESP32 C3 Super Mini 입력 핀을 서로 바꾸면, ESP32 C3 Super Mini를 리미트 스위치에 연결하는 방법은 총 여덟 가지가 됩니다.

이 튜토리얼에서는 추가 저항이 필요 없는 첫 번째 방법만 사용합니다. ESP32 C3 Super Mini에는 칩 안에 내부 풀업 저항이 내장되어 있습니다.

WARNING

ESP32 C3 Super Mini는 3.3V 로직에서만 작동합니다. C 핀을 절대 5V 전원에 연결하지 마세요. GPIO 핀에 5V가 들어가면 보드가 손상될 수 있습니다. GND 또는 3.3V 핀만 사용하세요.

배선 다이어그램

C 핀을 GND에, NO 핀을 ESP32 C3 Super Mini의 빈 GPIO 핀에 연결합니다.

ESP32 C3 Super Mini 리미트 스위치 배선 다이어그램

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

리미트 스위치 핀 ESP32 C3 Super Mini 핀
C GND
NO GPIO7
NC 연결 안 함
  • 참고: GPIO7은 빈 핀입니다. GPIO8(내장 LED), GPIO9(부트 핀), GPIO20 또는 GPIO21(시리얼 모니터 UART)은 사용하지 마세요.
  • 참고: 외부 저항은 필요 없습니다. 코드에서 내부 풀업 저항을 켭니다.
  • 참고: 안정적이고 확실한 연결을 위해 납땜 인두로 전선과 리미트 스위치 핀을 납땜한 다음, 열수축 튜브로 접합부를 덮으세요.
  • 참고: 스위치 전선은 짧게 유지하세요. 긴 전선은 노이즈를 받아 잘못된 값을 읽게 됩니다.

ESP32 C3 Super Mini 코드 - 리미트 스위치

버튼과 마찬가지로 리미트 스위치도 디바운싱이 필요하며, ezButton 라이브러리가 이 작업을 대신 해줍니다.

이 코드가 하는 일:

  • GPIO7을 내부 풀업 저항이 있는 입력으로 설정합니다.
  • 50 ms 필터로 리미트 스위치를 디바운스합니다.
  • 매 루프마다 TOUCHED 또는 UNTOUCHED를 출력합니다.
  • 상태가 UNTOUCHED에서 TOUCHED로 바뀌면 메시지를 출력합니다.
  • 상태가 TOUCHED에서 UNTOUCHED로 바뀌면 메시지를 출력합니다.

※ 주의:

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

  • 첫 번째 사용 사례: 스위치가 TOUCHED이면 특정 동작을 수행합니다. 입력 상태가 UNTOUCHED이면 반대 동작을 수행합니다.
  • 두 번째 사용 사례: 스위치 상태가 UNTOUCHED에서 TOUCHED로(또는 TOUCHED에서 UNTOUCHED로) 바뀌면 특정 동작을 수행합니다.
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-limit-switch */ #include <ezButton.h> ezButton limitSwitch(7); // create ezButton object that attach to the ESP32 C3 SuperMini pin GPIO7 void setup() { Serial.begin(115200); 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"); }

빠른 단계

  • ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
  • 부품 연결: 위의 배선 다이어그램에 따라 리미트 스위치를 ESP32 C3 Super Mini에 연결합니다.
  • 보드 연결: USB Type-C 케이블로 ESP32 C3 Super Mini를 PC에 연결합니다.
  • IDE 열기: Arduino IDE 소프트웨어를 실행합니다.
  • 라이브러리 설치: ezButton 라이브러리를 설치합니다. 설치 방법을 참조하세요.
  • 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인합니다.
  • 포트 선택: Tools > Port에서 보드의 COM 포트를 선택합니다.
  • 코드 업로드: Arduino IDE에서 Upload 버튼을 클릭합니다.
  • 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다.
  • 테스트: 리미트 스위치 레버를 몇 번 눌렀다 놓습니다.
  • 출력 확인: 시리얼 모니터의 메시지를 확인합니다.
  • 전문가 팁: 상태가 전혀 바뀌지 않으면 NO 핀과 NC 핀을 바꿔보세요. 저렴한 스위치 중에는 라벨이 반대로 인쇄된 것이 많습니다.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

코드 라인별 설명

위의 ESP32 C3 Super Mini 코드에는 라인별 설명이 포함되어 있습니다. 코드의 주석을 읽어보세요!

응용/프로젝트 아이디어

리미트 스위치는 움직이는 부품이 안전한 지점에서 멈춰야 할 때마다 사용됩니다.

  • 3D 프린터 엔드스톱: 축이 프레임에 부딪히기 전에 멈춥니다.
  • 자동문: 미닫이문이 완전히 열렸는지 또는 완전히 닫혔는지 감지합니다.
  • 서랍 알람: 서랍이나 캐비닛이 열리면 알림을 보냅니다.
  • 모터 보호: 리니어 액추에이터가 이동 끝에 도달하면 전원을 차단합니다.
  • 물체 카운터: 작은 컨베이어 벨트 위를 지나가는 상자 수를 셉니다.
  • 안전 덮개: 기계의 뚜껑이 열리면 기계를 멈춥니다.

도전 과제

리미트 스위치와 ESP32 C3 Super Mini로 연습할 수 있는 작은 프로젝트들을 해보세요.

  • 쉬움: 리미트 스위치가 눌려 있는 동안 GPIO8의 내장 LED를 켜보세요.
  • 쉬움: 스위치가 눌린 횟수를 세고 총합을 출력해보세요.
  • 보통: GPIO6과 GPIO7에 리미트 스위치 두 개를 사용하여 레일의 양쪽 끝을 감지해보세요.
  • 보통: 리미트 스위치가 눌리자마자 서보 모터를 멈춰보세요.
  • 고급: NO 모드 대신 NC 모드를 사용하여 전선이 끊어진 경우에도 알람으로 알리도록 해보세요.

언어 레퍼런스

댓글