Arduino Uno 与 触摸模块 ttp223 实验详录

本文介绍使用Arduino Uno和触摸按键模块进行的实验过程。通过简单的接线和编程,实现了触摸传感功能,即使手未直接接触也能触发反应。文章提供了详细的接线图、代码示例及实验结果。

触摸按键模块 电容式开关 自锁点动轻触传感器 ttp223 亚博智能

 

BOM表

Arduino Uno *1

触摸模块  *1

公对母杜邦线*3

 

接线

Arduino Uno     <------>         触摸模块 杜邦线颜色

Pin A0                <------>           I/O       白色

5V                       <------>          VCC     红色

GND                   <------>          GND     黑色

 

具体操作:

1、打开IDE,编写程序;

2、开发版用USB连接电脑,编译-上传烧录;

win10左下角 开始窗口 图标,右击 打开快捷菜单,点击 设备管理器;

3、断开USB连接,接线

4、打开 工具-串口监视器 查看结果;

 

关闭 串口监视器,打开 绘图监视器,测试结构:

 

意外发现,此接触开关,并不需要直接接触,只需靠近即可打开,如图,实验时手靠近,还没接触即可触发高电平,LED指示灯亮起,输出信号;应该是检测温度,而非压力。实验证明,靠近笔记本时,灯已自动亮起了;靠近金属或磁铁时LED灯也自动亮起了。

 

本例代码:

void setup() {
  pinMode(A0,INPUT);   //设置引脚 A0 为输出模式
  Serial.begin(9600); //设置波特率为9600
}
 
void loop() {
  // put your main code here, to run repeatedly:
  Serial.println(analogRead(A0)); //串口输出 A0读取到的值
  delay(200);   //延时200毫秒
}

 

参考链接:

Arduino Uno 触摸传感器模块 简单实验

https://blog.youkuaiyun.com/ling3ye/article/details/68938885

要使用 **T223 触摸模块** 来控制灯泡的开关,我们需要明确以下几点: 1. **T223 触摸模块是什么?** - T223 是一款常见的电容式触摸检测芯片(类似 TTP223),常用于单键触摸感应。它通过 I/O 引脚输出高低电平来表示是否被触摸。 - 工作电压一般为 2.0V ~ 5.5V,兼容 3.3V 和 5V 系统(如 Arduino、ESP32、STM32 等)。 - 输出模式有:**直接模式(瞬时)** 或 **触发模式(toggle,即按一次开,再按一次关)**。 2. **如何控制灯泡?** - 小功率 LED 可直接由 MCU 驱动; - 大功率灯泡(如家用 220V 白炽灯/节能灯)必须通过 **继电器(Relay)** 控制,以实现安全隔离。 --- ### ✅ 目标 使用 **T223 触摸模块 + 单片机(以 Arduino Uno 为例)+ 继电器模块** 实现: > 每次触摸 T223 模块 → 灯泡状态翻转(开 ⇄ 关) --- ## 🛠️ 所需硬件 | 名称 | 数量 | |------------------|------| | T223 触摸模块 | 1 | | Arduino Uno | 1 | | 继电器模块(5V 常开型) | 1 | | 灯泡(带灯座) | 1 | | 杜邦线若干 | 若干 | | 外接电源(可选) | 220V AC 供电灯泡用 | --- ## 🔌 接线方式 | T223 模块引脚 | 连接到 | |-------------|---------------------| | VCC | Arduino 5V | | GND | Arduino GND | | OUT | Arduino 数字引脚 D2 | | 继电器模块引脚 | 连接到 | |--------------|------------------------| | VCC | Arduino 5V | | GND | Arduino GND | | IN | Arduino 数字引脚 D3 | > ⚠️ 注意:继电器控制的是 220V 交流电路,请务必做好绝缘处理! 将灯泡串联在 **继电器的“常开”触点(NO)和公共端(COM)之间**,并接入 220V 电源。 --- ## 💻 Arduino 代码(使用内部上拉电阻 & 边沿检测) ```cpp // 定义引脚 const int TOUCH_PIN = 2; // T223 输出连接到 D2 const int RELAY_PIN = 3; // 继电器控制引脚 D3 // 状态变量 bool lightState = false; // 当前灯的状态(false=关,true=开) bool lastTouchState = HIGH; // 上一次触摸状态(T223 默认高电平) unsigned long lastDebounceTime = 0; const unsigned long debounceDelay = 50; // 去抖延时 void setup() { pinMode(TOUCH_PIN, INPUT_PULLUP); // 使用内部上拉电阻 pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); // 初始关闭继电器 Serial.begin(9600); } void loop() { bool currentTouch = digitalRead(TOUCH_PIN); // 检测从高到低的下降沿(T223 被按下时输出低电平) if (lastTouchState == HIGH && currentTouch == LOW) { delay(debounceDelay); // 简单去抖 if (digitalRead(TOUCH_PIN) == LOW) { // 确认仍为低 lightState = !lightState; // 切换灯状态 digitalWrite(RELAY_PIN, lightState ? HIGH : LOW); Serial.println(lightState ? "Light ON" : "Light OFF"); } } lastTouchState = currentTouch; delay(10); // 小延迟避免频繁读取 } ``` --- ## 🔍 代码解释 - `INPUT_PULLUP`:启用内部上拉电阻,这样当 T223 未被触摸时,引脚为高电平;触摸后变为低电平。 - T223 在 **触发模式(toggle mode)下本身不记忆状态**,但它的输出是边沿信号(每次触摸变一次电平),所以我们可以在程序中做状态翻转。 - 我们检测 **下降沿(HIGH → LOW)** 表示一次有效触摸动作。 - 加入简单的延时去抖(也可改用 millis() 非阻塞方式)防止误触发。 - 继电器模块通常低电平触发(有些是高电平触发,注意确认模块类型)。本例假设高电平导通负载。 --- ## ⚙️ 如何设置 T223 工作模式? T223 模块背面有两个焊盘:**TOG** 和 **ON**。 - **短接 TOG**:开启“保持模式”或“切换模式”(每按一次切换一次输出) - **断开 TOG**:默认“瞬时模式”(只在触摸期间输出低电平) 👉 **建议短接 TOG 焊盘**,让 T223 自己完成电平翻转,然后我们只需要检测每次变化即可。 如果你不确定,可以先测试输出行为。 --- ## ✅ 成果效果 - 第一次触摸 → 灯亮 - 第二次触摸 → 灯灭 - 循环往复,实现无物理按键的智能开关灯 --- ## 🔐 安全提醒 ⚠️ 使用 220V 电压时: - 必须使用带有隔离保护的继电器模块(如光耦继电器) - 接线完成后用绝缘胶布包裹裸露部分 - 上电前断开电源操作 - 不建议新手直接操作强电,可先用低压 LED 测试逻辑 --- ## ✅ 替代方案(更安全) 使用 **5V LED + 限流电阻** 替代灯泡进行测试: - 继电器 NO → 5V - COM → LED 正极 → 限流电阻(220Ω)→ GND - 实现低压控制,验证逻辑正确后再接入高压系统 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值