作者 Jeremy Cook
几十年来,简单的按钮输入(即键盘)一直是与计算机交互的主要方式。如今,尤其是随着智能手机的出现,许多设备转而使用电容式触摸屏作为主要界面。
微控制器也可以利用电容式触摸功能,ESP32 模块在十个 GPIO 引脚中内置了这一功能,提供了一种低成本、反应极其灵敏的输入方法。
Arduino IDE 触摸界面设置

要通过 Arduino IDE 尝试 ESP32 的触摸功能,首先通过 Arduino Boards Manager 安装 ESP32 板定义。然后选择您的特定设备。
在文件 > 示例 > ESP32 > TouchRead 中打开触摸示例。编译*并发送到您选择的 ESP32 板。
*MacOS 注意:如果您在编译草图时遇到困难,请参见此帖子,了解可能导致问题的 MacOS 更新信息。我在 platform.txt 中用 "python3" 替换了所有出现的 "python",这似乎可以解决问题。
然后,将一根电线连接到引脚 0(T0,也就是 GPIO 4),并接地。

串行绘图仪也非常适合输出监控。
安装好硬件后,打开一个 115200 波特的串口监视器。然后用手指触摸并松开两根电线。在没有触摸的情况下,得到的输出将是在 80s 某处的值,而当触摸时,值会显著下降。这个数字的减少是由于增加了您身体电容,这可以作为一个开关使用。
这样的接口引脚有十个,ESP32 甚至可以设置为通过触摸从低功耗睡眠模式中唤醒。
在一个使用示例中,这种类型的输入用于控制本文中看到的复古电视时钟。请注意,GPIO 引脚一般不与触摸传感器引脚编号对应。

ESP32 触摸感应解说
ESP32 使用专用外设来检测引脚电容的变化。由于人的触摸导致电容增加,电容式感应引脚在高电平和低电平状态之间循环的时间也会相应增加。因此,当触摸输入/地线,加上人的电容时,周期时间增加,并且给定时间段内的周期数减少。

在 T0/GPIO 4 和接地之间连接实际的电容元件时,周期值非常低。
ESP32 触摸感应:用途广泛
在实践中,您可能希望在有无人触摸的情况下测量输出值,以确定程序化决策的阈值。凭借简单的硬件实施、快速的响应时间和唤醒能力,这种触摸外设可以在多种情况下使用。
