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

【花雕学编程】Arduino动手做(231)---串口显示状态并使用触摸引脚控制XIAO ESP32S3 Sense板载LED灯 简单

头像 驴友花雕 2024.09.21 59 0

0-.jpg

 

XIAO ESP32S3 Sense 参数

处理器 – ESP32-S3R8 Xtensa LX7 双核 @ 240MHz 最大速度
无线网络 – 2.4 GHz
蓝牙 – BLE:蓝牙 5.0、蓝牙网状网络
内存 – 8Mb PSRAM & 8Mb Flash
GPIO – 11 个 I/O 端口
ADC – 9 个通道
触摸开关 – 9 个触摸开关引脚。
接口 - UART, SPI, I2C & I2S
尺寸 – 21 x 17.5 毫米
相机 – OV2640 1600*1200 传感器
麦克风 – MSM261D3526H1CPM MEMS 麦克风
MicroSD – 最大 32 GB,FAT32 格式

 

 

07.jpg

 

 

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE5.0+麦克风+OV2640摄像头
 视觉AI识别主控模组套装
 {花雕动手做}实验七:串口显示状态并使用触摸引脚控制XIAO ESP32S3 Sense板载LED灯

 

实验开源代码
 

代码
/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE5.0+麦克风+OV2640摄像头
  视觉AI识别主控模组套装
  {花雕动手做}实验七:串口显示状态并使用触摸引脚控制XIAO ESP32S3 Sense板载LED灯
*/

#include <Arduino.h>

// 定义触摸引脚和LED引脚
const int touchPin = 1; // 触摸引脚,ESP32-S3的触摸引脚可以是T0到T9
const int ledPin = LED_BUILTIN; // 板载LED引脚

void setup() {
  // 初始化串口通信
  Serial.begin(115200);

  // 设置LED引脚为输出模式
  pinMode(ledPin, OUTPUT);

  // 打印初始状态
  Serial.println("XIAO ESP32S3 Sense 准备就绪!");
  Serial.println("系统初始化完成");
}

void loop() {
  // 读取触摸引脚的值
  int rawTouchValue = touchRead(touchPin);

  // 将触摸值归一化到0-100范围内
  int touchValue = map(rawTouchValue, 0, 4095, 0, 100);

  // 打印触摸引脚的原始值和归一化后的值
  Serial.print("原始触摸引脚值: ");
  Serial.println(rawTouchValue);
  Serial.print("归一化触摸引脚值: ");
  Serial.println(touchValue);

  // 根据归一化后的触摸引脚值控制LED
  if (touchValue < 700) { // 触摸阈值,可以根据实际情况调整
    digitalWrite(ledPin, LOW);
    Serial.println("LED 灯点亮");
  } else {
    digitalWrite(ledPin, HIGH);
    Serial.println("LED 灯熄灭");
  }

  // 打印更多状态信息
  Serial.print("当前时间: ");
  Serial.println(millis());
  Serial.print("LED引脚状态: ");
  Serial.println(digitalRead(ledPin) == LOW ? "LOW" : "HIGH");

  // 延时一段时间
  delay(2000);
}

要点解读
1、触摸引脚的定义:使用GPIO 4作为触摸引脚,ESP32-S3的触摸引脚可以是T0到T9。
2、touchRead函数:通过touchRead函数读取触摸引脚的电容值,这个值会根据触摸情况变化。
3、归一化处理:使用map函数将原始触摸值(0-4095)转换到0-100范围内,便于设置和调整触摸阈值。
4、阈值判断:设置触摸阈值为40,判断是否有触摸事件发生,并根据判断结果控制LED的状态。
5、串口输出:在loop函数中,通过串口输出原始触摸值、归一化后的触摸值、LED的状态、当前时间(毫秒)以及LED引脚的电平状态,方便调试和观察触摸事件的响应情况。

 

实验串口返回情况

 

32.jpg

实验场景图 

 

33.jpg

评论

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