ESP32 具有可用作触摸按钮的电容式传感器。这些是 引脚排列上著名的“TOUCH”引脚。
它是什么?
电容式传感器广泛用于检测手指的压力,尤其是触摸屏上的压力。我们可以在 ESP32 上使用它们来代替按钮。
电容式触摸传感器
电容式传感器基于触摸传感器时(电容器的)电容的变化。ADC(模数转换器)读取并转换该变化。
重要的是要记住,这些电容式传感器不会像按钮那样可靠,特别是对于我们将要使用它们的用途而言。
很难制作一个更简单的电路🙂
在 ESP32 上使用
使用电容式传感器的代码很简单。只需要一项功能touchRead()
。读取pin 4 电容测量值的代码为:
touchRead(4);
//or
touchRead(T0);
函数参数是引脚编号(此处为 GPIO4)或与引脚关联的电容传感器的编号(此处为 T0)。
用法与 非常相似analogRead()
。
使用短代码,测量值将显示在串行监视器中:
void setup() {
Serial.begin(115200);
delay(1000); // Delay to launch the serial monitor
Serial.println("ESP32 Touch Demo");
}
void loop() {
Serial.println(touchRead(4));
delay(500);
}
空心对应于接触电线的时刻。必须定义阈值以确定电缆是否已被触摸。如果低于这个阈值,我们就触摸了按钮。
阈值取决于所使用的材料(电线、长度、面包板),并且应该进行调整。
带有阈值的代码 是:
int capacitiveValue = 100;
int threshold = 20; //识别是否被触摸的阈值
void setup() {
Serial.begin(115200);
delay(1000); //
Serial.println("ESP32 Touch Demo");
}
void loop() {
capacitiveValue = touchRead(4);
if(capacitiveValue < threshold ){
Serial.println("Wire touched");
}
delay(500);
}