ESP32 C3 Super Mini 버튼 긴 누르기 짧은 누르기
ESP32 C3 Super Mini를 프로그래밍하여 버튼 긴 누르기 및 짧은 누르기 이벤트를 모두 감지하는 방법을 배웁니다. 이 튜토리얼은 기본 배선에서 신뢰할 수 있는 버튼 입력 감지를 위한 고급 디바운싱 기술까지 모든 것을 다룹니다.
이 튜토리얼에서 배울 내용:
- ESP32 C3 Super Mini에서 짧은 누르기 버튼 이벤트를 감지하는 방법
- 긴 누르기 버튼 이벤트를 감지하는 방법 (두 가지 방법)
- 단일 버튼에서 긴 누르기와 짧은 누르기를 모두 감지하는 방법
- 디바운싱으로 버튼 채터링을 제거하는 방법
- Arduino 프로젝트에서 긴 누르기와 짧은 누르기를 언제 사용하는지

필요한 하드웨어
| 1 | × | ESP32 C3 Super Mini | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | 캡이 있는 버튼 | 쿠팡 | 아마존 | |
| 1 | × | 버튼 키트 | 쿠팡 | 아마존 | |
| 1 | × | 패널 장착 푸시 버튼 | 아마존 | |
| 1 | × | 푸시 버튼 모듈 | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (옵션) DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 |
버튼 정보
버튼은 누를 때 전기 회로를 완성시키는 간단한 입력 장치입니다.
ESP32 C3 Super Mini 프로젝트의 주요 기능:
- 두 가지 상태: 내부 풀업을 사용할 때 누름 (LOW) 및 놓음 (HIGH)
- 여러 누르기 유형을 감지할 수 있습니다: 짧은 누르기, 긴 누르기, 더블 클릭
- 실제 프로젝트에서 신뢰할 수 있는 감지를 위해 디바운싱 필요
- ESP32 C3 Super Mini의 내부 풀업 저항과 함께 작동
추가 버튼 리소스:
배선 다이어그램
아래 다이어그램에 따라 버튼을 ESP32 C3 Super Mini에 연결합니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
중요한 참고:
- 이 튜토리얼은 내부 풀업 저항을 사용합니다
- 버튼 상태는 누르지 않았을 때 HIGH, 누었을 때 LOW입니다
- 외부 저항이 필요하지 않습니다
짧은 누르기를 감지하는 방법
ESP32 C3 Super Mini에서 짧은 누르기를 감지하는 것은 버튼 누르기와 놓기 이벤트 간의 시간 간격을 측정하는 것을 포함합니다.
짧은 누르기 감지 방법:
- 누르기 및 놓기 이벤트 간의 시간 측정
- 시간이 미리 정의된 시간보다 짧으면 짧은 누르기 이벤트 감지
- 누르기 시간을 SHORT_PRESS_TIME 임계값과 비교
단계별 구현:
- 짧은 누르기의 최대 지속 시간 정의
- 버튼이 눌린 것을 감지하고 누른 시간 저장
- 버튼이 놓인 것을 감지하고 놓은 시간 저장
- 누르기 시간 계산 및
- 누르기 시간을 정의된 짧은 누르기 시간과 비교하여 짧은 누르기 결정
ESP32 C3 Super Mini의 짧은 누르기 감지 코드
이 코드는 ESP32 C3 Super Mini에서 짧은 버튼 누르기를 감지하는 방법을 보여줍니다.
코드가 하는 일:
- 내부 풀업 저항을 사용하여 버튼 상태 읽음
- 누르기와 놓기 사이의 시간 간격 계산
- 시간이 500ms 미만이면 짧은 누르기 감지
- Serial Monitor에 감지 결과 인쇄
빠른 단계
- ESP32 C3 Mini를 처음 사용하시나요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정합니다.
- IDE 설정: ESP32 C3 Super Mini를 처음 사용하는 경우 ESP32 C3 Super Mini를 Arduino IDE에서 설정하는 방법을 참고하세요
- 코드 업로드: 위의 코드를 복사하여 Arduino IDE를 통해 ESP32 C3 Super Mini에 업로드합니다
- 하드웨어 연결: 배선 다이어그램에 따라 버튼을 ESP32 C3 Super Mini에 연결합니다
- 버튼 테스트: 버튼을 여러 번 짧게 누릅니다
- 결과 확인: Serial Monitor (115200 보드)를 열어 감지 결과를 확인합니다
- Pro Tip: SHORT_PRESS_TIME 값을 조정하여 짧은 누르기 감지를 더 빠르거나 느리게 만들 수 있습니다
※ 주의:
Serial Monitor는 한 번의 누르기에 대해 여러 짧은 누르기를 인쇄할 수 있습니다. 이것은 버튼의 정상적인 동작입니다. 이 동작을 "채터링 현상"이라고 합니다. 이 튜토리얼의 나중 부분에서 이 문제를 제거하는 방법을 배우겠습니다.
긴 누르기를 감지하는 방법
ESP32 C3 Super Mini에서 긴 누르기 버튼 이벤트를 감지하는 두 가지 방법이 있습니다.
긴 누르기 감지의 두 가지 사용 사례:
- 버튼이 놓인 직후에 긴 누르기 이벤트가 감지됨
- 버튼을 누르고 있는 동안 긴 누르기 이벤트가 감지됨
첫 번째 방법 (놓기 시 감지):
- 누르기 이벤트와 놓기 이벤트 사이의 시간 간격 측정
- 시간이 미리 정의된 시간보다 길면 긴 누르기 이벤트 감지
두 번째 방법 (누르기 중 감지):
- 버튼을 누르고 있는 동안 누르기 시간을 지속적으로 측정
- 시간이 미리 정의된 시간을 초과하면 즉시 긴 누르기 감지
- 버튼이 놓일 때까지 계속 확인
놓을 때 긴 누르기를 감지하는 ESP32 C3 Super Mini 코드
이 ESP32 C3 Super Mini 코드는 버튼을 놓은 후 긴 누르기를 감지합니다.
코드가 하는 일:
- 누르기에서 놓기까지의 총 누르기 시간 측정
- 시간을 LONG_PRESS_TIME (1000ms)과 비교
- 버튼을 놓은 후에만 긴 누르기 감지
- 전체 누르기 시간을 확인해야 할 때 유용합니다
빠른 단계
- ESP32 C3 Mini를 처음 사용하시나요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정합니다.
- IDE 설정: ESP32 C3 Super Mini를 처음 사용하는 경우 ESP32 C3 Super Mini를 Arduino IDE에서 설정하는 방법을 참고하세요
- 코드 업로드: 위의 코드를 복사하여 Arduino IDE를 통해 ESP32 C3 Super Mini에 업로드합니다
- 긴 누르기 테스트: 버튼을 1초 이상 누르고 있었다가 놓습니다
- Serial Monitor 확인: 115200 보드에서 Serial Monitor를 열어 결과를 확인합니다
- Pro Tip: 이 방법은 버튼 누르기 중이 아닌 놓은 후에 작업이 발생해야 할 때 최상입니다
누르기 중 긴 누르기를 감지하는 ESP32 C3 Super Mini 코드
이 코드는 버튼을 여전히 누르고 있는 동안 즉시 긴 누르기를 감지합니다.
코드가 하는 일:
- 버튼을 누르고 있는 동안 누르기 시간을 지속적으로 확인
- 시간이 임계값을 초과하면 즉시 긴 누르기 감지
- 놓기를 기다리지 않고 즉시 작업을 실행
- 실시간 응답이 필요한 응용 프로그램에 이상적
빠른 단계
- ESP32 C3 Mini를 처음 사용하시나요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정합니다.
- IDE 설정: ESP32 C3 Super Mini를 처음 사용하는 경우 ESP32 C3 Super Mini를 Arduino IDE에서 설정하는 방법을 참고하세요
- 코드 업로드: 위의 코드를 Arduino IDE를 통해 ESP32 C3 Super Mini에 업로드합니다
- 누르기 중 테스트: 버튼을 여러 초 동안 누르고 있습니다 (즉시 놓지 마세요)
- 타이밍 관찰: 여전히 누르고 있는 동안 감지가 발생함을 알 수 있습니다
- Pro Tip: 이 방법은 즉각적인 피드백을 제공하며 팩토리 리셋 기능과 같은 시간에 민감한 응용 프로그램에 더 좋습니다
긴 누르기와 짧은 누르기를 모두 감지하는 방법
두 버튼 누르기 유형을 결합하여 ESP32 C3 Super Mini의 단일 버튼에 여러 기능을 추가합니다.
놓은 후 짧은 누르기와 긴 누르기
이 ESP32 C3 Super Mini 코드는 버튼을 놓은 후 두 누르기 유형을 모두 감지합니다.
코드가 하는 일:
- 시간을 기준으로 짧은 누르기와 긴 누르기를 구분
- 버튼을 놓은 후 결정을 내림
- 단일 임계값 (LONG_PRESS_TIME)을 사용하여 구분
- 한 버튼에서 두 가지 다른 작업을 가능하게 함
빠른 단계
- ESP32 C3 Mini를 처음 사용하시나요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정합니다.
- IDE 설정: ESP32 C3 Super Mini를 처음 사용하는 경우 ESP32 C3 Super Mini를 Arduino IDE에서 설정하는 방법을 참고하세요
- 코드 업로드: 위의 코드를 Arduino IDE를 통해 ESP32 C3 Super Mini에 업로드합니다
- 두 가지 유형 모두 테스트: 긴 누르기 (1초 이상 누르기)와 짧은 누르기 (빠른 탭)를 모두 시도합니다
- Serial Monitor 확인: Serial Monitor를 열어 어떤 누르기 유형이 감지되었는지 확인합니다
- Pro Tip: LONG_PRESS_TIME을 사용자의 예상 동작과 일치하도록 설정합니다 (일반적으로 500-1500ms가 잘 작동합니다)
※ 주의:
Serial Monitor는 긴 누르기 시 짧은 누르기 감지 여러 개를 표시할 수 있습니다. 이것은 버튼의 정상적인 동작입니다. 이 동작을 "채터링 현상"이라고 합니다. 이 튜토리얼의 마지막 부분에서 문제가 해결됩니다.
누르기 중 짧은 누르기와 긴 누르기
이 코드는 짧은 누르기 감지를 여전히 허용하면서 즉시 긴 누르기를 감지합니다.
코드가 하는 일:
- 임계값에 도달하면 즉시 긴 누르기 감지
- 긴 누르기가 트리거되지 않으면 놓은 후에도 짧은 누르기 감지
- 긴 누르기 작업에 즉각적인 피드백 제공
- 즉시 응답이 필요한 응용 프로그램에 최상입니다
빠른 단계
- ESP32 C3 Mini를 처음 사용하시나요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정합니다.
- IDE 설정: ESP32 C3 Super Mini를 처음 사용하는 경우 ESP32 C3 Super Mini를 Arduino IDE에서 설정하는 방법을 참고하세요
- 코드 업로드: 코드를 Arduino IDE를 통해 ESP32 C3 Super Mini에 업로드합니다
- 타이밍 테스트: 빠른 탭과 긴 누르기를 시도하여 다양한 동작을 확인합니다
- 응답 관찰: 긴 누르기가 놓기 시가 아닌 즉시 트리거되는 것을 알 수 있습니다
- Pro Tip: 이 방법은 사용자가 즉각적인 피드백을 받으므로 실수로 긴 누르기가 트리거되는 것을 방지합니다
디바운싱을 포함한 긴 누르기와 짧은 누르기
디바운싱은 푸시 버튼의 기계적 진동으로 인한 거짓 버튼 읽기를 제거합니다.
디바운싱이 중요한 이유:
- 물리적 버튼은 누를 때 전기적 잡음을 생성합니다 (채터링)
- 디바운싱이 없으면 한 번의 누르기가 여러 번의 누르기로 등록될 수 있습니다
- ESP32 C3 Super Mini 프로젝트에서 신뢰할 수 있는 버튼 감지에 중요합니다
- 정확한 입력이 필요한 응용 프로그램에 필수입니다
ezButton 라이브러리 사용:
- 초보자를 위한 디바운싱 구현 간소화
- 복잡한 타이밍 논리를 자동으로 처리합니다
- 여러 버튼과 함께 안정적으로 작동합니다
- 무료이며 Arduino IDE에 쉽게 설치할 수 있습니다
놓은 후 디바운싱을 포함한 짧은 누르기와 긴 누르기
이 ESP32 C3 Super Mini 코드는 깔끔하고 신뢰할 수 있는 버튼 감지를 위해 ezButton 라이브러리를 사용합니다.
코드가 하는 일:
- EzButton 라이브러리를 사용한 하드웨어 디바운싱 구현
- 버튼 채터링으로 인한 거짓 감지 제거
- 놓은 후 두 누르기 유형을 정확하게 감지
- 프로덕션 준비 완료된 버튼 처리 제공
빠른 단계
- ESP32 C3 Mini를 처음 사용하시나요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정합니다.
- IDE 설정: ESP32 C3 Super Mini를 처음 사용하는 경우 ESP32 C3 Super Mini를 Arduino IDE에서 설정하는 방법을 참고하세요
- 라이브러리 설치: ezButton 라이브러리를 설치합니다 - 방법 참고
- 코드 업로드: 위의 코드를 Arduino IDE를 통해 ESP32 C3 Super Mini에 업로드합니다
- 깔끔한 감지 테스트: 긴 누르기와 짧은 누르기를 모두 시도합니다 - 더 이상 중복 감지 없음
- 결과 확인: Serial Monitor를 열어 깔끔하고 정확한 버튼 누르기 감지를 확인합니다
- Pro Tip: ezButton 라이브러리는 모든 채터링 문제를 자동으로 제거합니다 - 모든 프로덕션 프로젝트에서 사용하세요
누르기 중 디바운싱을 포함한 짧은 누르기와 긴 누르기
이 코드는 즉시 긴 누르기 감지와 디바운싱을 결합하여 최고의 사용자 경험을 제공합니다.
코드가 하는 일:
- 디바운싱을 통해 즉시 긴 누르기 감지
- 버튼 바운스로 인한 거짓 트리거 방지
- 긴 누르기에 즉각적인 피드백 제공
- 놓은 후 짧은 누르기를 깔끔하게 처리합니다
빠른 단계
- ESP32 C3 Mini를 처음 사용하시나요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정합니다.
- IDE 설정: ESP32 C3 Super Mini를 처음 사용하는 경우 ESP32 C3 Super Mini를 Arduino IDE에서 설정하는 방법을 참고하세요
- 라이브러리 설치: ezButton 라이브러리를 설치합니다 - 방법 참고
- 코드 업로드: 코드를 Arduino IDE를 통해 ESP32 C3 Super Mini에 업로드합니다
- 신뢰성 테스트: 버튼을 여러 번 누릅니다 - 중복 읽기 없음을 알 수 있습니다
- 방법 비교: 프로덕션 ESP32 C3 Super Mini 프로젝트의 가장 신뢰할 수 있는 방법입니다
- Pro Tip: 장치 리셋 또는 정확도가 중요한 중요한 제어와 같은 중요한 응용 프로그램에는 이 방법을 사용하세요
왜 긴 누르기와 짧은 누르기가 필요합니까
ESP32 C3 Super Mini 프로젝트에서 긴 누르기와 짧은 누르기 감지를 언제 사용하는지 이해하는 것이 프로젝트를 개선합니다.
실용적인 이점:
- 핀 절약: 단일 버튼으로 두 개 이상의 기능을 제어할 수 있습니다 (짧은 누르기로 조명, 긴 누르기로 팬)
- 실수 방지: 팩토리 리셋과 같은 중요한 기능에 긴 누르기를 사용하여 실수로 활성화되는 것을 방지합니다
- 더 나은 UX: 사용자가 추가 하드웨어 없이 여러 작업을 수행할 수 있습니다
- 비용 절감: 버튼이 적을수록 회로가 더 간단하고 부품 비용이 더 낮습니다
- 공간 효율적: 공간이 제한된 컴팩트한 ESP32 C3 Super Mini 프로젝트에 이상적
- 전문적인 설계: 다중 기능 버튼은 소비자 전자 제품의 표준입니다
일반적인 응용 프로그램:
- 짧은 누르기: LED 토글, 카운터 증가, 메뉴 선택
- 긴 누르기: 팩토리 리셋, 전원 끄기, 설정 모드 진입, 메모리 지우기
자신을 시도해보기
이러한 실용적인 과제를 통해 ESP32 C3 Super Mini 버튼 기술을 다음 수준으로 끌어올립니다.
- 쉬움: 코드를 수정하여 다양한 시간 임계값을 사용합니다 (예: 짧음 300ms, 긴 2000ms)
- 쉬움: 세 번째 누르기 유형을 추가합니다 - 매우 짧은 누르기 (200ms 미만) 빠른 작업의 경우
- 중간: 한 버튼으로 두 개의 LED를 제어합니다 - 짧은 누르기는 빨간색 LED를 토글, 긴 누르기는 녹색 LED를 토글합니다
- 중간: 짧은 누르기 및 긴 누르기와 함께 더블클릭 감지를 구현합니다
- 고급: 패턴을 인식하는 버튼 시퀀스 감지기를 만듭니다 (짧은-긴-짧은)
- 고급: 긴 누르기가 모드를 순환하고 짧은 누르기가 현재 모드를 활성화하는 다중 모드 ESP32 C3 Super Mini 장치를 구축합니다
응용 프로그램 아이디어
ESP32 C3 Super Mini 버튼 긴 누르기 및 짧은 누르기 감지를 사용하는 실용적인 프로젝트 아이디어입니다.
- 스마트 홈 라이트 컨트롤러 - 짧은 누르기로 켜기/끄기, 긴 누르기로 조명 모드
- ESP32 C3 Super Mini 경보 시스템 - 짧은 누르기로 무장/해제, 긴 누르기로 공황 모드
- 타이머 장치 - 짧은 누르기로 시작/중지, 긴 누르기로 리셋
- 다중 기능 온도계 - 짧은 누르기로 온도 조정, 긴 누르기로 난방/냉각 모드 전환
- IoT 도어 잠금 - 짧은 누르기로 일시적으로 잠금 해제, 긴 누르기로 영구적으로 잠금 해제
- 배터리로 전원되는 센서 - 짧은 누르기로 상태 확인, 긴 누르기로 깊은 슬립 모드 진입
비디오 섹션
이 ESP32 C3 Super Mini 버튼 긴 누르기 및 짧은 누르기 프로젝트의 시각적 설명을 보려면 아래 비디오를 시청하세요.