原创
【雕爷学编程】Arduino动手做(80)---4路TTP224触摸模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验八十:
4路TTP224电容式触摸模块 人体数字触摸传感器![](https://static.assets-stash.eet-china.com/album/202104/16/124905qq0qd014rq64q7q6.jpg)
TTP224
是一款使用电容式感应原理设计的触摸IC,其稳定的感应方式可以应用到各种不同电子类产品,面板介质可以是完全绝源的材料,专为取代传统的机械结构开关或普通按键而设计,提供4个触摸输入端口及4个直接输出端口。
![](https://static.assets-stash.eet-china.com/album/202104/16/141333d7c3x3s3wznq4w77.jpeg)
![](https://static.assets-stash.eet-china.com/album/202104/16/142815q8kk86zas0kqj88x.jpg)
TTP224特点
1、工作电压 2.4V~5.5V;
2、可以由外部Option选择是否启用内部稳压电路功能;
3、工作电流@VDD=3V无负载时: 低功耗模式下典型值2.5uA ,快速模式下典型值9uA ;
4、@VDD=3V时,在快速模式下KEY最快响应时间为100mS,低功耗模式下为200mS;
5、各KEY灵敏度可以由外部电容进行调节(0~50pF);
6、提供LPMB端口选择快速模式或低功耗模式;
7、提供直接输出模式,触发模式,开漏输出, CMOS高电平有效或低电平有效输出, 经由TOG/AHLB/OD端口选择;
8、提供两个无二极管保护的输出端口TPQ0D,TPQ2D仅限于低电平有效;
9、提供MOT1, MOT0端口选择最大输出时间:120秒/64秒/16秒/无穷大;
10、上电后约有0.5秒的系统稳定时间,在此期间内不要触摸Touch PAD,且触摸功能无效;
11、有自动校准功能,当无按键被触摸时,系统重新校准周期约为4.0秒。
![](https://static.assets-stash.eet-china.com/album/202104/16/143049tzmh4tv44cu9r9uz.jpg)
![](https://static.assets-stash.eet-china.com/album/202104/16/143049sj886huhg2u1t5th.jpg)
![](https://static.assets-stash.eet-china.com/album/202104/16/143050jraf88w0s56bfup3.jpg)
![](https://static.assets-stash.eet-china.com/album/202104/16/143050ejy6gtsj0jsmi6ip.jpeg)
4路TTP224电容式触摸模块 人体数字触摸传感器
1、板载TTP224电容式4键触摸感应IC
2、板载4路电平状态指示灯
3、工作电压:2.4V-5.5V
4、模块可以设置输出模式、键输出模式、最长输出时间和快速/低功耗选择
5、PCB板子尺寸:35(mm)x29(mm)
![](https://static.assets-stash.eet-china.com/album/202104/16/150150bn2b2khjddothiaf.jpg)
![](https://static.assets-stash.eet-china.com/album/202104/16/150457f9ttmmlr3899a7gj.jpg)
![](https://static.assets-stash.eet-china.com/album/202104/16/151231z3iipjiii9inljjz.jpg)
![](https://static.assets-stash.eet-china.com/album/202104/16/151231u14qhqzcy057fyx3.jpg)
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验八十三: 4路TTP224电容式触摸模块 人体数字触摸传感器对应按键输出数字*/int i;void setup(){for(i=4; i<=7; i++){pinMode(i, INPUT);}Serial.begin(9600);}void loop(){for(i=4; i<=7; i++){if(digitalRead(i) == HIGH){Serial.println(i-3);}}delay(100);}复制代码![](https://static.assets-stash.eet-china.com/album/202104/16/151314awl2ql9yi9i2qnet.jpg)
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验八十: 4路TTP224电容式触摸模块 人体数字触摸传感器程序之二,稳定性很好,不易误触发模块上的1,2,3,4对应于单片机上的7,6,5,4其中引入了布尔型M,主要是为了实现,在按下到松开这个过程中,仅输出一次高电平,即输出语句只输出一句,来避免一直输出。*/#include <Arduino.h>int i;boolean m=true;void setup(){ Serial.begin(9600); }void loop(){ if(m==true){ for(i=0;i<5;i++){ if(digitalRead(8-i)==1){ delay(50); if(digitalRead(8-i)==1){ Serial.print("hello "); Serial.print(i); Serial.println(" ---"); m=false; } } } } if(digitalRead(4)==0 && digitalRead(5)==0 && digitalRead(6)==0 && digitalRead(7)==0) {m=true;}}复制代码![](https://static.assets-stash.eet-china.com/album/202104/16/152946apkzb0pj8p9o9lkk.jpg)
实验场景图
![](https://static.assets-stash.eet-china.com/album/202104/16/154109drhdmd12mm78sdbc.jpg)
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验八十: 4路TTP224电容式触摸模块 人体数字触摸传感器程序之三,使用4路触控模块的其中3个开关,当作LED灯的开关、调亮和调暗控制界面*/const byte LED_PIN = 5; // LED灯的接脚const byte PWR_LED = 13; // 电源指示灯的接脚bool powerOn = false; // LED电源是否开启,默认“否”bool btnStatus; // 按钮状态int pwmVal = 0; // 电源输出值// 宣告触键的自订结构类型typedef struct { byte pin; // 按键的接脚编号 bool lastStatus; // 上次的状态} key;// 宣告电源键的接脚和默认状态key powerKey = { 10, LOW };// 宣告“调亮”键的接脚和默认状态key upKey = { 11, LOW };// 宣告“调暗”键的接脚和默认状态key downKey = { 12, LOW };void setup() { Serial.begin(9600); pinMode(powerKey.pin, INPUT); pinMode(upKey.pin, INPUT); pinMode(downKey.pin, INPUT); pinMode(LED_PIN, OUTPUT); pinMode(PWR_LED, OUTPUT);}void loop() { // 读取电源键的状态 btnStatus = digitalRead(powerKey.pin); // 如果电源键的讯号从低电位变成高电位… if (btnStatus && powerKey.lastStatus == LOW) { powerOn = !powerOn; // 反相电源状态 digitalWrite(PWR_LED, powerOn); if (powerOn) { // 若powerOn为true… // 依照pwmVal的值点亮LED analogWrite(LED_PIN, pwmVal); } else { // 关闭LED灯 digitalWrite(LED_PIN, LOW); } } // 纪录这次的电源键讯号状态 powerKey.lastStatus = btnStatus; // 读取“调亮”键的状态 btnStatus = digitalRead(upKey.pin); // 若“有开启电源”且“此按键讯号是高电位”且“前次讯号是低电位” if (powerOn && btnStatus && upKey.lastStatus == LOW) { // 增加亮度值,每次增加10,不能超过255。 if ((pwmVal+10) <= 255) { pwmVal += 10; Serial.println(pwmVal); analogWrite(LED_PIN, pwmVal); } } upKey.lastStatus = btnStatus; // 读取“调暗”键的状态 btnStatus = digitalRead(downKey.pin); if (powerOn && btnStatus && downKey.lastStatus == LOW) { // 减少亮度值,最低值为0 if ((pwmVal-10) >= 0) { } pwmVal -= 10; Serial.println(pwmVal); analogWrite(LED_PIN, pwmVal); } downKey.lastStatus = btnStatus;}复制代码![](https://static.assets-stash.eet-china.com/album/202104/16/155702vjwbjbbs4v497kv4.jpg)
实验开源仿真编程(Linkboy V4.2)
![](https://static.assets-stash.eet-china.com/album/202104/16/160429a44mm3bnryyw4omn.jpg)
作者: 雕爷学编程, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3894459.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
关闭
站长推荐
/3
雕爷学编程 2021-5-7 10:36
lyyinhe_xi 2021-4-28 09:06
curton 2021-4-18 19:36
您的回复很重要
https://mbb.eet-china.com/forum/topic/88879_1_1.html