ESP32 마이크로파이썬 버튼 디바운스
때때로 ESP32에 버튼을 연결하면 버튼을 한 번만 눌러도 여러 번 눌린 것처럼 보일 수 있습니다. 이는 버튼이 눌린 상태와 눌리지 않은 상태를 빠르게 전환할 수 있기 때문입니다. 이것을 바운싱이라고 하며, 채터링으로도 알려져 있습니다. 바운싱은 프로그램에 문제를 일으킬 수 있습니다.
이 가이드는 MicroPython을 사용한 디바운싱이라는 기법을 통해 ESP32의 이 문제를 해결하는 방법을 보여줍니다. 디바운싱은 ESP32가 하나의 버튼 누름을 한 번의 누름으로 인식하도록 도와줍니다.

우리는 아래 단계를 통해 배울 것입니다:
- 버튼 디바운싱 없이 ESP32 MicroPython 코드.
- 버튼 디바운싱을 적용한 ESP32 MicroPython 코드.
- 여러 버튼에 대해 디바운싱을 적용한 ESP32 MicroPython 코드.
준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | 캡이 있는 버튼 | 쿠팡 | 아마존 | |
1 | × | 버튼 키트 | 쿠팡 | 아마존 | |
1 | × | 패널 장착 푸시 버튼 | 아마존 | |
1 | × | 푸시 버튼 모듈 | 아마존 | |
1 | × | 브레드보드 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
버튼 정보
버튼에 대해 아직 익숙하지 않다면 (핀 구성, 작동 원리, ESP32와의 인터페이싱, 그리고 ESP32와 상호작용하기 위한 MicroPython 코드 작성 방법 포함), 관련 내용을 더 알아보실 수 있습니다:
선연결
- breadboard를 사용하여 ESP32와 버튼을 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- 스크류 터미널 블록 브레이크아웃 보드를 사용하여 패널 장착 버튼에 ESP32 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
디바운스 처리가 없는 ESP32 MicroPython 코드와 디바운스 처리가 적용된 코드를 비교하여, 디바운스 처리가 동작에 어떤 영향을 미치는지 살펴보자.
ESP32 - 디바운스 없는 버튼
먼저, 동작을 이해하기 위해 디바운싱 없이 ESP32용 MicroPython 코드를 살펴보겠습니다.
자세한 사용 방법
ESP32에서 Thonny IDE를 사용하여 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
- MicroPython과 함께 ESP32를 처음 사용하신다면, 단계별 지침은 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
- 다이어그램과 같이 버튼을 ESP32에 연결하세요.
- USB 케이블을 이용해 ESP32 보드를 컴퓨터에 연결하세요.
- 컴퓨터에서 Thonny IDE를 실행하세요.
- Thonny IDE에서 도구 옵션을 선택하세요.
- 인터프리터 탭에서 드롭다운 메뉴를 이용해 MicroPython (ESP32)를 선택하세요.
- 정확한 포트가 선택되었는지 확인하세요. Thonny IDE는 보통 이를 자동으로 감지하지만, Windows의 경우 COM12, Linux의 경우 /dev/ttyACM0와 같이 수동으로 선택해야 할 수도 있습니다.
- 제공된 MicroPython 코드를 복사하여 Thonny의 편집기에 붙여넣으세요.
- 다음 방법으로 ESP32에 코드를 저장하세요:
- 저장 버튼을 클릭하거나 Ctrl+S를 누르세요.
- 저장 대화상자에서 MicroPython 장치를 선택하세요.
- 파일 이름을 main.py로 지정하세요.
- 녹색 실행 버튼을 클릭하거나 F5를 눌러 스크립트를 실행하세요.
- 버튼을 몇 초간 누르고 있다가 놓으세요.
- Thonny IDE 하단의 Shell에서 메시지를 확인하세요.
로그에서 볼 수 있듯이, 버튼을 단 한 번만 누르셨지만 ESP32는 여러 번 누른 것으로 감지되었습니다.
버튼에 대한 ESP32 디바운스
빠른 단계
- Thonny IDE에서 Thonny IDE의 도구 패키지 관리로 이동합니다.
- “DIYables-MicroPython-Button”을 검색한 후, DIYables에서 만든 Button 라이브러리를 찾습니다.
- DIYables-MicroPython-Button을 클릭한 후, Button 라이브러리를 설치하기 위해 Install 버튼을 클릭합니다.

- 주어진 코드를 복사하여 Thonny IDE의 편집기에 붙여넣습니다.
- ESP32 보드에 스크립트를 저장합니다.
- 초록색 실행 버튼(또는 F5 키)을 클릭하여 스크립트를 시작합니다. 스크립트가 실행됩니다.
- 버튼을 누릅니다.
- Thonny IDE 하단 Shell의 메시지를 확인합니다.
버튼을 한 번 눌렀고, ESP32는 추가적인 간섭 없이 이를 단일 누름 및 놓음으로 올바르게 인식했습니다.
※ 주의:
다른 앱은 서로 다른 DEBOUNCE_TIME 설정을 사용합니다. 각 앱마다 고유한 값이 있을 수 있습니다.
ESP32: 여러 버튼을 위한 디바운스
MicroPython을 사용하는 ESP32로 네 개의 버튼에 디바운싱을 추가해봅시다. ESP32에 버튼들을 연결하는 방법은 다음과 같습니다:

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