ESP32 - 직류 모터 - 리미트 스위치 | ESP32 - DC Motor - Limit Switch
이 ESP32 자습서에서, 우리는 한계 스위치와 L298N 드라이버를 사용하여 DC 모터를 제어하는 방법을 배우게 됩니다. 자세히 말하자면, 우리는 다음을 배우게 됩니다:
- 리미트 스위치가 접촉될 때 DC 모터를 멈추는 방법
- 리미트 스위치가 접촉될 때 DC 모터의 방향을 변경하는 방법
- 두 개의 리미트 스위치가 접촉될 때 DC 모터의 방향을 변경하는 방법
이 ESP32 튜토리얼에서는 제한 스위치와 L298N 드라이버를 사용하여 DC 모터를 관리하기 위해 ESP32를 활용하는 과정을 탐구할 것입니다. 구체적으로, 다음과 같은 측면을 다룰 것입니다:
- 리미트 스위치와 접촉 시 DC 모터 정지
- 리미트 스위치와 접촉 시 DC 모터의 방향 변경
- 두 리미트 스위치가 활성화 될 때 DC 모터의 방향 변경
준비물
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 | × | 5V DC Motor | Amazon | |
1 | × | 5V Power Adapter for 5V DC motor | Amazon | |
1 | × | DC Power Jack | 쿠팡 | Amazon | |
1 | × | L298N Motor Driver Module | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Recommended) Screw Terminal Expansion Board for ESP32 | 쿠팡 | Amazon |
DC 모터 및 리미트 스위치에 관하여
DC 모터와 리미트 스위치(핀아웃, 작동 방식, 프로그래밍 방법 등)에 대해 잘 모른다면, 다음 튜토리얼에서 이들에 대해 배우세요:
- ESP32 - Limit Switch tutorial
- ESP32 - Controls DC Motor tutorial
선연결
이 튜토리얼은 두 가지 경우에 대한 ESP32 코드를 제공합니다: 하나의 직류 모터 + 한 개의 리미트 스위치, 하나의 직류 모터 + 두 개의 리미트 스위치.
DC 모터와 리미트 스위치 간의 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.
DC 모터와 두 개의 리미트 스위치 간의 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 코드 - 리미트 스위치로 DC 모터 정지
아래 코드는 DC 모터를 무한히 회전시키고, 리미트 스위치에 닿는 즉시 즉각적으로 멈추게 합니다.
사용 방법
- ESP32를 처음 사용한다면, Arduino IDE에서 ESP32 환경 설정하는 방법을 참조하세요.
- 위 이미지와 같이 배선하세요.
- 마이크로 USB 케이블을 사용하여 ESP32 보드를 PC에 연결하세요.
- PC에서 Arduino IDE를 엽니다.
- 적절한 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.
- ESP32를 USB 케이블을 통해 PC에 연결하세요.
- Arduino IDE를 열고, 올바른 보드와 포트를 선택하세요.
- Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.
- “ezButton”을 검색한 다음, ArduinoGetStarted.com의 버튼 라이브러리를 찾으세요.
- EzButton 라이브러리를 설치하려면 Install 버튼을 클릭하세요.
- 위의 코드를 복사하여 아두이노 IDE로 엽니다
- 아두이노 IDE에서 Upload 버튼을 클릭해 ESP32에 코드를 업로드합니다
- 배선이 올바르다면 모터가 시계 방향으로 회전하는 것을 볼 수 있습니다
- 리밋 스위치를 누릅니다
- 모터가 즉시 멈추는 것을 볼 수 있습니다
- 시리얼 모니터의 결과는 아래와 같습니다
코드 설명
위의 아두이노 코드의 주석 줄에서 설명을 찾을 수 있습니다.
ESP32 코드 - 리미트 스위치로 직류 모터의 방향 변경
아래 코드는 DC 모터가 무한히 회전하게 하고, 리미트 스위치에 닿았을 때 방향을 변경하게 합니다.
사용 방법
- ESP32를 처음 사용하는 경우, Arduino IDE에서 ESP32 환경 설정 방법을 참조하세요.
- 위 이미지와 같이 배선하세요.
- ESP32 보드를 마이크로 USB 케이블을 통해 PC에 연결하세요.
- PC에서 Arduino IDE를 엽니다.
- 올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.
- 위의 코드를 복사하고 Arduino IDE에서 엽니다.
- Arduino IDE에서 Upload 버튼을 클릭해 ESP32에 코드를 업로드하세요.
- 배선이 올바르면 모터가 시계 방향으로 회전하는 것을 볼 수 있습니다.
- 리미트 스위치를 누르세요.
- DC 모터의 방향이 반시계 방향으로 바뀌는 것을 볼 수 있습니다.
- 다시 리미트 스위치를 누르세요.
- DC 모터의 방향이 시계 방향으로 바뀌는 것을 볼 수 있습니다.
- 시리얼 모니터의 결과는 아래와 같습니다.
ESP32 코드 - 두 개의 리미트 스위치로 DC 모터의 방향 변경
아래 코드는 DC 모터를 무한히 회전시키고, 두 개의 리밋 스위치 중 하나가 닿으면 그 방향을 바꿉니다.
사용 방법
- ESP32를 처음 사용하는 경우, Arduino IDE에서 ESP32 환경 설정 방법을 참고하세요.
- 위 이미지와 같이 배선을 하세요.
- ESP32 보드를 마이크로 USB 케이블로 PC에 연결하세요.
- PC에서 Arduino IDE를 엽니다.
- 올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.
- 위 코드를 복사하여 Arduino IDE로 엽니다.
- Arduino IDE에서 Upload 버튼을 클릭해 ESP32로 코드를 업로드하세요.
- 배선이 올바르다면, 모터가 시계 방향으로 회전하는 것을 볼 수 있습니다.
- 리미트 스위치 1을 누르세요.
- DC 모터의 방향이 반시계 방향으로 바뀌는 것을 볼 수 있습니다.
- 리미트 스위치 2를 누르세요.
- DC 모터의 방향이 시계 방향으로 바뀌는 것을 볼 수 있습니다.
- 시리얼 모니터의 결과는 아래와 같습니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.