ESP32-Touch(Arduino)

Touch

Touch传感器是一种外围设备,具有内部振荡器电路,可在固定时间段内测量相应GPIO引脚上的充电/放电频率。 因此,这些触摸传感器也被称为电容式传感器。例如,如果您触摸这些引脚中的任何一个,手指电荷将改变这个周期数, 通过更改连接到触摸传感器的 RC 电路。TouchRead() 将返回特定时间(测量)内的循环次数(充电/放电)。 此计数的更改将用于验证是否发生了触摸。这些引脚可以很容易地集成到电容焊盘中,并取代机械按钮

官方手册地址

Touch-API

Touch读

cpp 复制代码
touch_value_t touchRead(uint8_t pin);
  • pin:GPIO的引脚号
  • 返回uint16_t (ESP32) 或 uint32_t (ESP32-S2/S3) 形式的触摸板值

触摸传感器上附加中断

cpp 复制代码
void touchAttachInterrupt(uint8_t pin, void (*userFunc)(void), touch_value_t threshold);
  1. uint8_t pin:表示要附加中断的引脚编号。
  2. void (*userFunc)(void):表示当触摸传感器触发中断时要调用的用户自定义函数。
  3. touch_value_t threshold:表示触摸传感器触发中断的阈值。

该函数通过将用户自定义函数与触摸传感器的引脚关联,并在触摸传感器的值超过指定阈值时触发中断来实现功能

触摸分离中断

cpp 复制代码
void touchDetachInterrupt(uint8_t pin);

用于从触摸传感器上分离中断

  1. uint8_t pin:表示要分离中断的引脚编号。

该函数通过将用户自定义函数与触摸传感器的引脚解除关联。

实训案例

控制一个连接到引脚2的LED灯,并根据触摸传感器的值来控制LED的亮灭。当触摸传感器的值小于35时,LED灯会点亮;否则,LED灯会熄灭

cpp 复制代码
#include <Arduino.h> 

#define LED_Pin 2 // 定义LED连接的引脚号为2
#define Touch_Pin 15 // 定义触摸传感器连接的引脚号为15

uint16_t touchValue = 0; // 声明一个无符号16位整数变量touchValue,用于存储触摸传感器的值

void setup()
{
  pinMode(LED_Pin, OUTPUT); // 设置LED引脚为输出模式,用于控制LED的亮灭
  Serial.begin(115200); // 初始化串口通信,波特率为115200
}

void loop()
{
  touchValue = touchRead(Touch_Pin); // 读取触摸传感器的值,并将其存储在touchValue变量中
  Serial.println(touchValue); // 通过串口打印触摸传感器的值

  if (touchValue < 35) // 如果触摸传感器的值小于35
  {
    digitalWrite(LED_Pin, HIGH); // 将LED引脚设置为高电平,使LED点亮
  }
  else // 如果触摸传感器的值大于等于35
  {
    digitalWrite(LED_Pin, LOW); // 将LED引脚设置为低电平,使LED熄灭
  }
}

效果如下

相关推荐
三伏5221 小时前
Cortex-M3权威指南Cn第十章——笔记
笔记·单片机·嵌入式硬件·cortex-m3
独处东汉1 小时前
freertos开发空气检测仪之按键输入事件管理系统设计与实现
人工智能·stm32·单片机·嵌入式硬件·unity
小灰灰搞电子1 小时前
STM32/GD32 字节对齐详解
stm32·单片机·嵌入式硬件
我送炭你添花3 小时前
工业触摸屏:PCAP(投影电容式)触摸屏控制器选型推荐(工业级,2025-2026主流)
嵌入式硬件·自动化
来自晴朗的明天4 小时前
2、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
良许Linux5 小时前
DSP的选型和应用
后端·stm32·单片机·程序员·嵌入式
混分巨兽龙某某5 小时前
基于STM32的嵌入式操作系统RT-Thread移植教学(HAL库版本)
stm32·嵌入式硬件·rt-thread·rtos
_ZeroKing5 小时前
自制智能门锁:NFC 刷卡 + 小程序远程开锁(完整实战记录)
嵌入式硬件·小程序·notepad++·arduino
清风6666666 小时前
基于单片机的多路温湿度采集与WIFI智能报警控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
爱吃番茄鼠骗6 小时前
回顾ESP32S3系列---基础篇(Bootloader)
单片机·嵌入式硬件