ESP32 C3 Super Mini 터치 센서

터치 센서를 사용하면 손가락으로 가볍게 터치하여 ESP32 C3 Super Mini를 제어할 수 있습니다. 버튼처럼 작동하지만 움직이는 부품이 없으므로 절대 닳지 않습니다. 이 ESP32 C3 Super Mini 터치 센서 튜토리얼에서는 배선과 코드를 간단한 단계로 보여줍니다.

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

ESP32 C3 Super Mini - 터치 센서

WARNING

ESP32 C3 칩에는 기존 ESP32, ESP32-S2, ESP32-S3 칩에 있는 내장 정전식 터치 핀이 없습니다. touchRead()와 touchAttachInterrupt() 함수는 ESP32 C3 Super Mini에서 작동하지 않습니다. 이 보드에 터치 입력을 추가하려면 외부 터치 센서 모듈(TTP223)을 사용하고, 이 튜토리얼에서처럼 digitalRead()로 읽으세요.

필요한 하드웨어

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

터치 센서 정보

터치 센서는 (TTP223 칩 기반의) 작은 모듈로, 손가락이 패드에 닿으면 디지털 HIGH 신호를 출력합니다.

주요 기능:

  • 움직이는 부품 없음: 누를 것도, 망가질 것도 없습니다.
  • 간단한 출력: 디지털 핀 하나, HIGH 또는 LOW.
  • 버튼처럼 읽기: digitalRead()로 작동하며 라이브러리가 필요 없습니다.
  • 플라스틱을 통해서도 작동: 얇은 케이스나 스티커를 통해서도 손가락을 감지할 수 있습니다.
  • 저전력: 몇 밀리암페어만 사용합니다.

기술 사양:

  • 칩: TTP223 정전식 터치 칩.
  • 핀: 3핀 (GND, VCC, SIGNAL).
  • 공급 전압: 2.0V ~ 5.5V. ESP32 C3 Super Mini의 3.3V 핀을 사용하세요.
  • 출력 레벨: SIGNAL 핀은 공급 전압을 따르므로 3.3V 공급 시 3.3V 로직을 출력합니다 - ESP32 C3 Super Mini에 안전합니다.
  • 응답 시간: 고속 모드에서 약 60ms.

터치 센서 핀아웃

터치 센서에는 3개의 핀이 있습니다.

  • GND 핀: 이 핀을 GND(0V)에 연결합니다.
  • VCC 핀: 이 핀을 VCC(ESP32 C3 Super Mini의 3.3V)에 연결합니다.
  • SIGNAL 핀: 출력 핀입니다. 터치되지 않으면 LOW, 터치되면 HIGH입니다. ESP32 C3 Super Mini의 입력 핀에 연결합니다.
터치 센서 핀아웃

터치 센서 작동 원리

센서는 손가락으로 인해 생기는 아주 작은 정전 용량 변화를 감시합니다.

  • 터치되지 않음: SIGNAL 핀의 상태는 LOW입니다.
  • 터치됨: SIGNAL 핀의 상태는 HIGH입니다.
  • 손을 뗌: SIGNAL 핀이 다시 LOW가 됩니다.

ESP32 C3 Super Mini - 터치 센서

터치 센서의 SIGNAL 핀을 ESP32 C3 Super Mini의 입력 핀에 연결하고, ESP32 C3 Super Mini 코드로 터치 센서의 상태를 읽습니다.

WARNING

ESP32 C3 Super Mini는 3.3V 로직에서만 작동합니다. 터치 센서의 전원은 5V가 아닌 3.3V 핀에서 공급하세요. 5V를 공급하면 SIGNAL 핀이 5V를 출력하여 보드의 GPIO 핀이 손상될 수 있습니다.

터치 센서와 ESP32 C3 Super Mini 간 배선 다이어그램

센서의 SIGNAL 핀을 ESP32 C3 Super Mini의 GPIO7에 연결합니다.

ESP32 C3 Super Mini 터치 센서 배선 다이어그램

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

터치 센서 핀 ESP32 C3 Super Mini 핀
VCC 3.3V
GND GND
SIGNAL GPIO7
  • 참고: GPIO7은 비어 있는 핀입니다. GPIO8(내장 LED), GPIO9(부트 핀), GPIO20 또는 GPIO21(시리얼 모니터 UART)은 사용하지 마세요.
  • 참고: 외부 저항이 필요 없습니다. 모듈이 이미 SIGNAL 핀을 HIGH와 LOW로 구동합니다.
  • 참고: 전선은 짧게 유지하세요. 터치 패드 근처의 긴 전선은 센서가 저절로 트리거되게 할 수 있습니다.
  • 참고: 전원이 켜지는 동안 모듈 뒷면에 손가락을 대지 마세요. 칩은 전원이 켜질 때 스스로 보정합니다.

터치 센서 프로그래밍 방법

터치 센서를 읽는 데는 두 개의 함수만 필요합니다.

  • pinMode() 함수로 ESP32 C3 Super Mini 핀을 디지털 입력으로 초기화합니다. 예를 들어 GPIO7:
pinMode(7, INPUT);
  • digitalRead() 함수로 ESP32 C3 Super Mini 핀의 상태를 읽습니다.
int inputState = digitalRead(7);

터치 센서 - ESP32 C3 Super Mini 코드

아래 코드는 터치 센서의 상태를 읽고 시리얼 모니터에 출력합니다.

이 코드가 하는 일:

  • GPIO7을 디지털 입력으로 설정합니다.
  • 115200 보드레이트로 시리얼 모니터를 시작합니다.
  • 매 루프마다 SIGNAL 핀을 읽습니다.
  • 센서가 터치되면 1을, 터치되지 않으면 0을 출력합니다.
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-touch-sensor */ #define SENSOR_PIN 7 // The ESP32 C3 SuperMini pin connected to the sensor's SIGNAL pin of touch sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(115200); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); // print state to Serial Monitor Serial.println(state); }

빠른 단계

  • ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
  • 부품 배선: 위의 배선 다이어그램을 따라 터치 센서를 ESP32 C3 Super Mini에 연결합니다.
  • 보드 연결: USB Type-C 케이블로 ESP32 C3 Super Mini를 PC에 연결합니다.
  • IDE 열기: Arduino IDE 소프트웨어를 시작합니다.
  • 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인하세요.
  • 포트 선택: Tools > Port에서 보드의 COM 포트를 선택합니다.
  • 코드 복사: 위의 코드를 복사하여 Arduino IDE에 붙여넣습니다.
  • 코드 업로드: Arduino IDE에서 Upload 버튼을 클릭합니다.
  • 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다.
  • 테스트: 손가락으로 센서 패드를 터치한 다음 뗍니다.
  • 출력 확인: 시리얼 모니터에서 숫자가 바뀌는 것을 확인합니다.
  • 전문가 팁: 값이 항상 1이라면 손과 전선을 패드에서 멀리 떨어뜨리고 보드를 리셋하여 칩이 다시 보정되도록 하세요.
∞
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
0 0 0 1 1 1 1 1 1 0 0
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

LOW에서 HIGH로의 상태 변화를 감지하는 방법

대부분의 프로젝트에는 상태 자체가 아니라 터치되는 순간이 필요합니다.

이 코드가 하는 일:

  • SIGNAL 핀의 이전 상태를 저장합니다.
  • 매 루프마다 이전 상태와 새 상태를 비교합니다.
  • 상태가 LOW에서 HIGH로 바뀔 때만 메시지를 출력합니다.
  • 손가락이 패드에 오래 머물러 있는 것은 무시합니다.

※ 주의:

터치 센서의 일반적인 사용 사례는 두 가지입니다:

  • 첫 번째 사용 사례: 센서가 터치되면 특정 동작을 수행합니다. 터치되지 않으면 반대 동작을 수행합니다.
  • 두 번째 사용 사례: 센서의 상태가 터치되지 않음에서 터치됨으로 바뀌면 LED 토글과 같은 특정 동작을 수행합니다.
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-touch-sensor */ #define SENSOR_PIN 7 // The ESP32 C3 SuperMini pin connected to the sensor's SIGNAL pin of touch sensor int prev_state = LOW; // The previous state from the input pin int touch_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(115200); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: touch_state = digitalRead(SENSOR_PIN); if (prev_state == LOW && touch_state == HIGH) Serial.println("The sensor is touched"); // save the the last state prev_state = touch_state; }
∞
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 sensor is touched The sensor is touched The sensor is touched The sensor is touched
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

라인별 코드 설명

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

응용/프로젝트 아이디어

터치 센서는 ESP32 C3 Super Mini에 명령을 내리는 깔끔하고 현대적인 방법입니다.

  • 터치 램프: 한 번의 터치로 LED나 릴레이 램프를 켜고 끕니다.
  • 초인종: 누군가 패드를 터치하면 부저로 소리를 냅니다.
  • 비밀 스위치: 나무 패널 뒤에 모듈을 숨기고 잠금장치를 엽니다.
  • 터치 카운터: 터치 횟수를 세고 LCD에 합계를 표시합니다.
  • 깨우기 버튼: 터치로 ESP32 C3 Super Mini를 딥 슬립에서 깨웁니다.
  • 방수 패널: 주방이나 욕실 프로젝트를 위해 센서를 유리 아래에 둡니다.

도전 과제

터치 센서와 ESP32 C3 Super Mini로 연습하려면 다음과 같은 작은 프로젝트를 시도해 보세요.

  • 쉬움: 센서가 터치되는 동안 GPIO8의 내장 LED를 켭니다.
  • 쉬움: 1과 0 대신 TOUCHED와 RELEASED를 출력합니다.
  • 중간: 센서가 터치될 때마다 GPIO3의 외부 LED를 토글합니다.
  • 중간: GPIO7과 GPIO6에 두 개의 터치 센서를 사용하여 볼륨 업 / 볼륨 다운 쌍을 만듭니다.
  • 고급: 패드가 터치된 시간을 측정하여 짧게 누르기와 길게 누르기에 다르게 동작하도록 합니다.

댓글

관련 튜토리얼