154浏览
查看: 154|回复: 3

[项目] 【花雕学编程】Arduino动手做(231)---串口显示触摸状态

[复制链接]
本帖最后由 驴友花雕 于 2024-9-21 10:04 编辑

  【花雕学编程】Arduino动手做(231)---串口显示触摸状态图1
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 格式


【花雕学编程】Arduino动手做(231)---串口显示触摸状态图2

驴友花雕  中级技神
 楼主|

发表于 2024-9-21 10:05:22

【花雕学编程】Arduino动手做(231)---串口显示触摸状态

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

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十一:XIAO ESP32S3 Sense Wi-Fi+BLE5.0+麦克风+OV2640摄像头
  4.   视觉AI识别主控模组套装
  5.   {花雕动手做}实验七:串口显示状态并使用触摸引脚控制XIAO ESP32S3 Sense板载LED灯
  6. */
  7. #include <Arduino.h>
  8. // 定义触摸引脚和LED引脚
  9. const int touchPin = 1; // 触摸引脚,ESP32-S3的触摸引脚可以是T0到T9
  10. const int ledPin = LED_BUILTIN; // 板载LED引脚
  11. void setup() {
  12.   // 初始化串口通信
  13.   Serial.begin(115200);
  14.   // 设置LED引脚为输出模式
  15.   pinMode(ledPin, OUTPUT);
  16.   // 打印初始状态
  17.   Serial.println("XIAO ESP32S3 Sense 准备就绪!");
  18.   Serial.println("系统初始化完成");
  19. }
  20. void loop() {
  21.   // 读取触摸引脚的值
  22.   int rawTouchValue = touchRead(touchPin);
  23.   // 将触摸值归一化到0-100范围内
  24.   int touchValue = map(rawTouchValue, 0, 4095, 0, 100);
  25.   // 打印触摸引脚的原始值和归一化后的值
  26.   Serial.print("原始触摸引脚值: ");
  27.   Serial.println(rawTouchValue);
  28.   Serial.print("归一化触摸引脚值: ");
  29.   Serial.println(touchValue);
  30.   // 根据归一化后的触摸引脚值控制LED
  31.   if (touchValue < 700) { // 触摸阈值,可以根据实际情况调整
  32.     digitalWrite(ledPin, LOW);
  33.     Serial.println("LED 灯点亮");
  34.   } else {
  35.     digitalWrite(ledPin, HIGH);
  36.     Serial.println("LED 灯熄灭");
  37.   }
  38.   // 打印更多状态信息
  39.   Serial.print("当前时间: ");
  40.   Serial.println(millis());
  41.   Serial.print("LED引脚状态: ");
  42.   Serial.println(digitalRead(ledPin) == LOW ? "LOW" : "HIGH");
  43.   // 延时一段时间
  44.   delay(2000);
  45. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-21 10:08:03

【花雕学编程】Arduino动手做(231)---串口显示触摸状态

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

实验串口返回情况

【花雕学编程】Arduino动手做(231)---串口显示触摸状态图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-21 10:10:51

【花雕学编程】Arduino动手做(231)---串口显示触摸状态

实验场景图

【花雕学编程】Arduino动手做(231)---串口显示触摸状态图1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail