글 Jeremy Cook
간단한 푸시 버튼 입력(예: 키보드)은 수십 년 동안 컴퓨터와 인터페이스하는 주요 방법으로 사용되어 왔습니다. 오늘날 특히 스마트폰의 출현으로 많은 장치가 대신 정전식 터치스크린을 기본 인터페이스로 사용합니다.
마이크로컨트롤러는 정전식 터치 기능도 활용할 수 있으며, ESP32 모듈에는 10개의 GPIO 핀에 이러한 기능이 내장되어 있어 저렴한 비용으로 응답성이 매우 뛰어난 입력 방법을 제공합니다.
Arduino IDE 터치 인터페이스 설정

Arduino IDE를 통해 ESP32의 터치 기능을 테스트하려면 먼저 Arduino 보드 관리자를 통해 ESP32 보드 정의를 설치합니다. 그런 다음 특정 장치를 선택합니다.
File > Examples > ESP32 > TouchRead에서 터치 예제를 엽니다. 컴파일*하여 선택한 ESP32 보드로 보냅니다.
*MacOS 참고 사항: 스케치를 컴파일하는 데 문제가 있는 경우 이 게시물에서 문제를 일으킬 수 있는 MacOS 업데이트에 대한 정보를 참조하십시오. platform.txt에서 "python" 항목을 모두 "python3"으로 대체했더니 문제가 해결된 것으로 보입니다.
그런 다음 터치 핀 0(T0, GPIO 4)에 와이어를 연결하고 접지합니다.

직렬 플로터는 출력 모니터링에도 적합합니다.
이 하드웨어를 장착하고 115200 보드에서 직렬 모니터를 엽니다. 그런 다음 손가락으로 두 와이어를 모두 터치하고 놓습니다. 결과적으로 아무 것도 건드리지 않을 경우 80 부근의 값이 출력되고 건드리면 크게 감소합니다. 이러한 수치적 감소는 스위치로 사용할 수 있는 바디의 정전용량이 추가되었기 때문입니다.
이러한 인터페이스 핀 10개를 사용할 수 있으며 ESP32는 터치를 통해 저전력 절전 모드에서 깨어나도록 설정할 수도 있습니다.
한 사례에서 이 유형의 입력은 이 문서에서 볼 수 있는 레트로 텔레비전 시계를 제어하는 데 사용됩니다. GPIO 핀은 일반적으로 터치 센서 핀 번호와 일치하지 않습니다.

ESP32 터치 감지 설명
ESP32는 핀의 정전용량 변화를 감지하기 위해 전용 주변 장치를 사용합니다. 사람의 터치로 인해 정전용량이 증가함에 따라 정전용량 감지 핀이 높은 상태와 낮은 상태 사이를 순환하는 데 걸리는 시간이 비례하여 증가합니다. 따라서 입력/접지가 터치되면 사람의 정전용량을 이용하여 주기 시간이 증가하고 주어진 시간 동안 카운트된 주기 수가 감소합니다.

실제 커패시터 구성 요소가 T0/GPIO 4와 접지 사이에 부착되면 매우 낮은 주기 값이 나타납니다.
ESP32 터치 감지: 다양한 용도
실제로 프로그래밍 방식의 의사 결정을 위한 임계값을 결정하기 위해 사람의 터치 유무에 관계없이 출력 값을 측정할 수 있습니다. 쉬운 하드웨어 구현, 빠른 응답 시간 및 웨이크업 기능 등을 통해 이 터치 주변 장치는 다양한 상황에서 유용할 수 있습니다.
