0%

[ESP32]电容按键

电容输入 touchRead(pin) 及电容输入中断touchAttachInterrupt(pin, TSR , threshold)

ESP32专门提供了电容触摸传感器的功能, 共有T0,T2~T9 共 9个touch传感器可用.分别对应引脚4、2、15、13、12、14、27、33、32. 无需设置PinMode
首先看一下触摸按键的原理,如下图:

1e511e79520470.png

touchRead(pin)

返回值 0~255. 触摸强度
注意: 摸得越瓷实,数值越小

1
2
3
4
5
6
7
8
9
void setup()
{
Serial.begin(9600);
}

void loop()
{
Serial.printf("touch:%d\n",touchRead(4));
}

touchAttachInterrupt(pin, TSR , threshold)

参数:

  • TSR :中断回调函数, 不能带参数, 不能有返回值。
  • threshold:阈值, 达到该阈值会触发此中断
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void TSR()
{
Serial.printf("我被按下了!\r\n");
}

void setup()
{
Serial.begin(9600);
touchAttachInterrupt(4, TSR , 20);
}

void loop()
{

}