【雕爷学编程】Arduino动手做(13)---TTP223B电容式触摸模块之通过串口监视器检测电容触摸键的状态与控制继电器

在这里插入图片描述

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验十三:TTP223 触摸按键模块 自锁 点动 电容式 开关 单路改造SUNLEPHANT

在这里插入图片描述
TTP223B电容触摸按键模块几个实验
一、实验环境
1、实验所需硬件清单——
Arduino Uno开发板 X1
杜邦线 若干(备了10条)
LED发光二极管(蓝色)X1
220欧姆限流电阻(1/8W)x1
低电平触发单路5V继电器模块X1
TTP223B电容触摸按键模块(四种)X4
Proto Shield 原型扩展板(带mini面包板)X1
按键开关模块(下拉电阻与上拉电阻款各1只)X2

在这里插入图片描述

五、实验七:电容触摸键按下继电器吸合(LED亮),再按下释放(LED灭)
1、实验七参考开源代码(Arduino):

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验七:电容触摸按下继电器吸合(LED亮),再按下释放(LED灭)接线:D13板载LED灯触摸模块    UnoVCC        VccGND        GNDSIG         D2继电器模块   UnoVCC        VccGND        GNDIN         D8
*/// 引脚定义
int LED = 13;
int Relay = 8;//继电器接D8
int Touch_Sensor = 2;//触摸模块接D2
int condition = 0;//记录传感器的状态,标识它是否被触摸
int state = 0; //记录LED和继电器的状态,开启或关闭void setup() {pinMode(LED, OUTPUT);//触摸传感器是输入,继电器和LED引脚是输出pinMode(Relay, OUTPUT);pinMode(Touch_Sensor, INPUT);
}void loop() {condition = digitalRead(2); // 触摸传感器在触摸时将逻辑0更改为1//digitalRead()函数读取该值,并且将值存储在变量condition中。if (condition == 1) {delay(500); // 使用去抖动延迟500毫秒,用于确认单点触摸if (condition == 1) {state = ~state; //更改开关的状态(自锁反转)digitalWrite(LED, state);digitalWrite(Relay, state);}}
}

2、实验场景图
在这里插入图片描述

3、实验八开源仿真编程(Linkboy V4.2)

在这里插入图片描述
4、实验九开源图形编程(Mind+、编玩边学)

在这里插入图片描述
六、实验十:通过串口监视器检测电容触摸键的状态
1、实验十参考开源代码(Arduino):

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验十:通过串口监视器检测电容触摸键的状态接线:触摸模块    UnoVCC        VccGND        GNDSIG         D2
*/#define TOUCH_SIG 2//获取状态
boolean get_touch() 
{boolean touch_stat = 0;touch_stat = digitalRead(TOUCH_SIG); //读入状态return touch_stat;
}void setup() 
{pinMode(TOUCH_SIG, INPUT); //设置2号端口为输入模式Serial.begin(115200);
}void loop(){boolean touch_stat;Serial.print("\nrunning\nTouch Stat - ");touch_stat = get_touch();Serial.print(touch_stat);//串口打印触摸按键状态值delay(1000);//延时1000毫秒
}

2、实验十的串口反馈情况

在这里插入图片描述
七、实验十一:Arduino CapacitiveSensor电容式触摸传感器(软件实现)
1、安装需的CapacitiveSensor库
(1)打开IDE,下拉点开管理库

在这里插入图片描述
(2)在搜索栏中搜索CapacitiveSensor

在这里插入图片描述
(3)安装好是这样

在这里插入图片描述
2、实验十一参考开源代码(Arduino):

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验十一:Arduino CapacitiveSensor电容式触摸传感器安装库:IDE-工具-管理库-搜索CapacitiveSensor-安装接线:引脚2和4之间接1-10M电阻,在引脚8上连接杜邦线(触摸端)
*/#include <CapacitiveSensor.h> //调用函数库
CapacitiveSensor cs_2_4 = CapacitiveSensor(2, 4); //设置发射脚和接收脚
//引脚2和4之间的1-10M电阻,在引脚4上连接杜邦线(触摸端)
unsigned long csSum;void setup() {Serial.begin(9600);
}void loop() {CSread();
}void CSread() {long cs = cs_2_4.capacitiveSensor(120); //a: 传感器分辨率设置为120if (cs > 100) { //b: 任意数csSum += cs;Serial.println(cs);if (csSum >= 3600) //c: 此值是阈值,高值表示触发时间更长{Serial.print("Trigger: ");//串口输出触发数值Serial.println(csSum);if (csSum > 0) {csSum = 0;  //重置}cs_2_4.reset_CS_AutoCal(); //停止读取}}else {csSum = 0; //读数错误导致超时}
}

3、实验串口输出

在这里插入图片描述

4、实验场景图
在这里插入图片描述

5、实验说明——
Arduino除了接受数字端口的数字信号,唯一能检测的模拟物理量就是电压。任何模拟传感器的检测值几乎都要通过相关电路转化成电压值,再输入 arduino的模拟端口进行模数转换。电容值就需要相对更复杂和昂贵的电路转化为电压值,才能被Arduino检测,而对很多物理过程的检测,都可以很方便可靠地通过来检测电容值来实现,其中最常用的地方就是触摸传感器。风靡一时的MaKey MaKey就是个例子。这里通过CapacitiveSensor库,使用一个大电阻、一段导线和二个端口,不需要其他元器件的电容触摸触发方法。这个方法的思路是,首先把一个数字端口设成低电位,并打开arduino的内部上拉电阻,开始计算这个端口到达高电位所需要的时间。而这个时间与此端口的对地电容值有关,电容越大,时间越长。在硬件上只需要在一个端口上连一根导线即可。用手指触摸这段导线的裸露端,就会导致电容变化,arduino可以通过上述方法检测这个变化。如果要增加灵敏度,可以在导线上连一片锡箔。为防止你手上有强静电击穿芯片,可以在锡箔上盖一薄层绝缘纸。

6、CapacitiveSensor库包含三个主要方法和一些实用程序方法——
(1)CapacitiveSensor CapacitiveSensor(byte sendPin, byte receivePin)
CapacitiveSensor创建库的实例(请注意大写字母,这与下面的方法不同)

(2)long capacitiveSensorRaw(byte samples)
CapacitySensorRaw需要一个参数sample,并以任意单位返回一个包含绝对电容的长整数。可以使用samples参数来增加返回的分辨率,但要以降低性能为代价。返回的值不会在样本数量上取平均值,并且会报告总值。如果电容值超过CS_Timeout_Millis的值(以毫秒为单位),则CapacitySensorRaw将返回-2。CS_Timeout_Millis的默认值是2000毫秒(2秒)。

(3)long capacitiveSensor(byte samples)
CapacitySensor需要一个参数,对其进行采样,并以任意单位返回包含加法(感测)电容的长整数。CapacitySensor会跟踪最低的基线(未检测到)电容,并从检测到的电容中减去该值,因此在未检测到的情况下应报告一个较低的值。以CS_Autocal_Millis确定的间隔重新校准基线值。默认值为200000毫秒(20秒)。可以通过使用set_CS_AutocaL_Millis()方法将CS_Autocal_Millis设置为较高的值来关闭此重新校准。

(4)void set_CS_Timeout_Millis(unsigned long timeout_millis)
set_CS_Timeout_Millis方法可用于设置CS_Timeout_Millis值,该值确定如果接收(检测)引脚未能在与发送引脚相同的方向上切换,则该方法将花费多长时间。超时是必需的,因为除非提供超时,否则while循环将锁定草图。CS_Timeout_Millis的默认值为2000毫秒(2秒)。

(5)void reset_CS_AutoCal()
reset_CS_AutoCal可用于强制立即校准电容传感器功能。

(6)void set_CS_AutocaL_Millis(unsigned long autoCal_millis)
set_CS_AutocaL_Millis(unsigned long autoCal_millis)方法可用于设置电容传感器功能的超时间隔。通过使用set_CS_AutocaL_Millis将CS_AutocaL_Millis设置为“ 0xFFFFFFFF”,可以关闭重新校准。

7、实验场景图

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/32684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言学习笔记 使用vscode外部console出现闪退-12

前言 在使用vscode的外部console时&#xff0c;会出现闪退现象&#xff0c;这是因为程序运行结束后&#xff0c;系统自动退出了终端&#xff08;终端机制决定的&#xff09;。我们可以在C程序结束后&#xff0c;使用system函数来暂停DOS终端系统&#xff0c;这样就可以完整地看…

SAP Fiori 问题收集

事务代码篇 启动工作台&#xff1a;/N/UI2/FLP 错误日志&#xff1a; /n/IWFND/ERROR_LOG 服务清单&#xff1a; /n/IWFND/MAINT_SERVICE 创建语义对象&#xff1a;/N/UI2/SEMOBJ 创建目录&#xff1a;/N/UI2/FLPD_CONF&#xff08;cross-client&#xff09;或 /N/UI2…

爬虫018_urllib库_cookie反爬_post请求百度翻译获取百分翻译内容_以及详细翻译内容---python工作笔记037

然后我们来看如何用urllib发送post请求,这里我们 用百度翻译为例 我们翻译一个spider,然后我们看请求,可以看到有很多 找到sug这个 可以看到这里的form data,就是post请求体中的内容 然后我们点击preview其实就是 返回的实际内容 然后请求方式用的post 然后我们把上面的信息…

maven是什么?安装+配置

目录 1.什么是maven&#xff1f; 1.2.maven的核心功能是什么&#xff1f; 2.Maven安装配置 2.1Maven的安装 2.2Maven环境配置 1.配置 MAVEN_HOME &#xff0c;变量值就是你的 maven 安装的路径&#xff08;bin 目录之前一级目录&#xff09; 2.将MAVEN_HOME 添加到Path系…

Groovy语法

工程目录 请点击下面工程名称&#xff0c;跳转到代码的仓库页面&#xff0c;将工程 下载下来 Demo Code 里有详细的注释 代码&#xff1a;LearnGroovy 参考文献 配置Groovy开发环境(Windows)IntelliJ IDEA创建第一个Groovy工程基于IntelliJ IDEA创建第一个Groovy工程

Ubuntu18.04版本安装ROS及出现错误的处理方法

前面的文章是在已安装的ROS基础上做的一些应用&#xff0c;这里我们从零开始安装ROS机器人操作系统。 机器人操作系统(Robot Operating System,ROS)是一个开发机器人软件的框架&#xff0c;里面包含了一系列的工具&#xff0c;库和惯例&#xff0c;目的在于简化在大量不同种类机…

Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。

文章目录 前言一、原因分析二、解决方案 前言 前面我也有提到&#xff0c;发现flink运行一段时间后&#xff0c;不再继续消费的问题。这个问题困扰了我非常久&#xff0c;一开始也很迷茫。又因为比较忙&#xff0c;所以一直没有时间能够去寻找答案&#xff0c;只是通过每天重启…

函数的模拟实现

题一&#xff1a; 模拟实现strncpy #include <stdio.h>void my_strncpy(char* arr2, char* arr1, size_t num){int i 0;for (i 0; i < num; i){*(arr2 i) *(arr1 i);}}int main(){char arr1[] "hello liangzai";char arr2[10] { 0 };//strncpy(ar…

安装elasticsearch

一、docker安装elasticsearch 1、下载镜像 docker pull elasticsearch:6.5.4 2、启动容器 docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \ -e "discovery.typesingle-node" \ -e "cluster.nameelasticsearch" \ -e "ES_JAVA_OPTS-Xm…

MySQL——Mysql安装教程- Windows

一、Mysql安装 1、下载mysql安装包 下载链接&#xff1a; 链接&#xff1a; https://pan.baidu.com/s/1rFpMqOCApiQQEwYSs9XSmg https://pan.baidu.com/s/1rFpMqOCApiQQEwYSs9XSmg 提取码&#xff1a;zt88 2、 安装 1&#xff09;选择电脑磁盘空闲的路径&#xff1a; 2&…

Small Tip: 如何Debug Start Routine

我也不知道咋地&#xff0c;在generated ABAP里面打断点进不去。 我也不晓得怎么弄&#xff0c;今天反正是硬找着去弄。不晓得有没有其他好办法。有知道的小伙伴评论下吧。 1、 在DTP里面选Before Transformation&#xff0c;要去debug start routine选这个就够了。其他的随意…

吉利科技携手企企通,打造集团化数智供应链系统

近日&#xff0c;吉利科技集团有限公司&#xff08;以下简称“吉利科技”&#xff09;联合企企通成功召开SRM采购供应链管理项目启动会。企企通与吉利科技高层、项目负责人与团队成员出席此次启动会。 双方将携手在企业供应商全生命周期管理、采购全流程、电子招投标、采购分析…

Python基础小项目

今天给大家写一期特别基础的Python小项目&#xff0c;欢迎大家支持&#xff0c;并给出自己的完善修改 &#xff08;因为我写的都是很基础的&#xff0c;运行速率不是很好的 目录 1. 地铁票价题目程序源码运行截图 2. 购物车题目程序源码运行截图 3. 名片管理器题目程序源码运行…

Maven依赖管理

依赖配置 依赖指的是项目在运行时所需要的jar包&#xff0c;一个项目中可以引入多个依赖 配置方法 1.在项目pom.xml中编写 <dependencies> 标签 2.在 <dependencies> 标签中使用<dependency>引入坐标 3.定义坐标的groupId,artifactId,version 4. 刷新按钮&a…

接口测试—Fiddler工具

文章目录 Fiddler 知识1. 导语2. 配置3. 常用命令面试题1. 利用Fiddler抓取android设备https请求 Fiddler 知识 未完待续 1. 导语 为什么要用Fiddler&#xff1f; 提高测试效率. 测试人员通过使用Fiddler自己调试接口&#xff0c;无需麻烦后台同学帮忙. 模拟多种测试环境. 可…

棒球课堂的发展规划·棒球联盟

棒球课堂的发展规划 1. 棒球课堂的发展环境 探讨棒球课堂如何通过运用创新的教学方法来适应不断变化的市场需求。包括但不限于&#xff0c;科学地运用大数据和人工智能技术来提高教学效率&#xff0c;加强教师队伍的专业培训&#xff0c;以及拓展课外活动&#xff0c;增强学生…

【果树农药喷洒机器人】Part3:变量喷药系统工作原理介绍

本专栏介绍&#xff1a;免费专栏&#xff0c;持续更新机器人实战项目&#xff0c;欢迎各位订阅关注。 关注我&#xff0c;带你了解更多关于机器人、嵌入式、人工智能等方面的优质文章&#xff01; 文章目录 一、变量喷药系统工作原理二、液压通路设计与控制系统封装2.1液压通路…

企业权限管理(八)-登陆使用数据库认证

Spring Security 使用数据库认证 在 Spring Security 中如果想要使用数据进行认证操作&#xff0c;有很多种操作方式&#xff0c;这里我们介绍使用 UserDetails 、 UserDetailsService来完成操作。 UserDetails public interface UserDetails extends Serializable { Collecti…

通过PostMan监视提交文件,验证web文件传输

切换文件流,传输文件 找到图片地址 发送请求然后接受 再来一张 哈&#xff0c;谢谢各位同志的阅读&#xff0c;然后呢如果觉得本文对您有所帮助的话&#xff0c;还给个免费的赞捏 Thanks♪(&#xff65;ω&#xff65;)&#xff89;

OpenStack-Y版安装部署

OpenStack-Y版安装部署 目录 OpenStack-Y版安装部署 1、环境准备 1.1 环境简介1.2 配置hosts解析(所有节点)1.3 配置时间同步1.4 安装openstack客户端(控制节点执行)1.5 安装部署MariaDB(控制节点执行)1.6 安装部署RabbitMQ(控制节点执行)1.7 安装部署Memcache(控制节点执行)2、…