回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕学编程】Arduino动手做(241)---ESP32 Dev Board 使用内置触摸传感器引脚控制LED 简单

头像 驴友花雕 2024.12.22 1 0

00.jpg
03.jpg
08.jpg

ESP32 有 10 个内部电容式触摸传感器。例如,可以将其用作触摸按钮(英文:Touch Sensor)。

这些传感器与多个 GPIO 连接:

T0:GPIO 4
T1:GPIO 0
T2:GPIO 2
T3:GPIO 15
T4:GPIO 13
T5:GPIO 12
T6:GPIO 14
T7:GPIO 27
T8:GPIO 33
T9:GPIO 32

为了读取它们,您必须使用函数: touchRead(Touch Pin #);
 

 

21.jpg

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百四十一:ESP32 Dev Board CH340 - USB-C口 ESP-WROOM-32 开发板
 {花雕动手做}项目之三:使用内置触摸传感器控制LED,串口输出触摸数值与LED状态

实验开源代码

 

代码
/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百四十一:ESP32 Dev Board CH340 - USB-C口 ESP-WROOM-32 开发板
  {花雕动手做}项目之三:使用内置触摸传感器控制LED,串口输出触摸数值与LED状态
*/

#define TOUTCH_PIN T0 // 定义ESP32的触摸引脚为T0,对应引脚D4
#define LED_PIN 2 // 定义LED引脚为2
int touch_value = 100; // 初始化触摸传感器的值

void setup()
{
  Serial.begin(115200); // 初始化串行通信,波特率为115200
  delay(1000); // 延迟1秒,给串行监视器启动时间
  Serial.println("ESP32 Touch Test"); // 打印测试信息
  pinMode(LED_PIN, OUTPUT); // 设置LED引脚为输出模式
  digitalWrite (LED_PIN, LOW); // 初始化LED为关闭状态
}

void loop()
{
  touch_value = touchRead(TOUTCH_PIN); // 读取触摸传感器的值
  Serial.print("Touch value: "); // 输出触摸值的描述
  Serial.println(touch_value); // 打印触摸传感器的值
  
  if (touch_value < 50) // 如果触摸值小于50
  {
    digitalWrite (LED_PIN, HIGH); // 打开LED
    Serial.println("LED is ON"); // 输出LED状态
  }
  else
  {
    digitalWrite (LED_PIN, LOW); // 关闭LED
    Serial.println("LED is OFF"); // 输出LED状态
  }
  delay(1000); // 延迟1秒
}

代码解读

1、引脚定义:使用 #define 宏定义触摸传感器和LED的引脚,便于代码的可读性和维护。

2、串行通信初始化:在 setup 函数中,使用 Serial.begin(115200) 初始化串行通信,以便在串行监视器中查看触摸传感器的值。

3、引脚模式设置:使用 pinMode 函数将LED引脚设置为输出模式,并初始化为低电平(关闭状态)。

4、触摸传感器读取与输出:在 loop 函数中,使用 touchRead 函数读取触摸传感器的值,并通过串行通信打印出来。

5、条件控制LED和状态输出:根据触摸传感器的值,通过 digitalWrite 函数控制LED的开关状态,并在串行监视器上输出LED的当前状态。

通过这些修改,串行监视器不仅可以输出触摸传感器的数值,还可以输出LED的状态,便于调试和观察运行情况。
 

实验串口返回情况

 

22.jpg

实验场景图

 

23.jpg

评论

user-avatar
icon 他的勋章
    展开更多