esp32에 터치 센서가 내장되어 있다고 해서 테스트해보니 신기하네.
esp32 핀아웃 그림을 보면, Touch0, Touch2...라고 표기된 핀들을 T0...등의 이름으로 사용할 수 있다. 그 핀을 빵판에 연결해서 그 라인에 저항을 연결하듯이 클립 같은 것을 펴서 꽂으면 된다. 이 클립(철사나 기타 전도체 따위)을 touchRead(T0)으로 측정해보면, 내 경우에는 60정도로 나오다가, 손으로 만지면 10안팎으로 떨어진다. 이 값을 참고해서 LED를 켜고 끄는 코드를 작성해보았다.
const int pinRed = 5;
//const int pinBlue = 17;
void setup() {
Serial.begin(115200);
pinMode(pinRed, OUTPUT);
//pinMode(pinBlue, OUTPUT);
}
void loop() {
int val = touchRead(T0);
if (val < 20) {
digitalWrite(pinRed, 1);
} else {
digitalWrite(pinRed, 0);
}
Serial.println(val);
delay(100);
}
시리얼 모니터 출력값: (만지는 부분에서 0, 13, 6...으로 값이 낮아졌다가 손을 떼면 다시 값이 60 정도로 올라간다.)
62
63
62
62
62
61
0
13
0
6
2
0
0
0
7
0
8
0