原创 【雕爷学编程】Arduino动手做(80)---4路TTP224触摸模块

2021-4-16 16:10 7045 25 3 分类: MCU/ 嵌入式 文集: 雕爷学编程

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

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验八十:4路TTP224电容式触摸模块 人体数字触摸传感器

TTP224
是一款使用电容式感应原理设计的触摸IC,其稳定的感应方式可以应用到各种不同电子类产品,面板介质可以是完全绝源的材料,专为取代传统的机械结构开关或普通按键而设计,提供4个触摸输入端口及4个直接输出端口。



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秒。








4路TTP224电容式触摸模块 人体数字触摸传感器

1、板载TTP224电容式4键触摸感应IC

2、板载4路电平状态指示灯

3、工作电压:2.4V-5.5V

4、模块可以设置输出模式、键输出模式、最长输出时间和快速/低功耗选择

5、PCB板子尺寸:35(mm)x29(mm)


模块电原理图




  1. /*
  2. 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3. 实验八十三: 4路TTP224电容式触摸模块 人体数字触摸传感器
  4. 对应按键输出数字
  5. */
  6. int i;
  7. void setup(){
  8. for(i=4; i<=7; i++)
  9. {
  10. pinMode(i, INPUT);
  11. }
  12. Serial.begin(9600);
  13. }
  14. void loop(){
  15. for(i=4; i<=7; i++)
  16. {
  17. if(digitalRead(i) == HIGH)
  18. {
  19. Serial.println(i-3);
  20. }
  21. }
  22. delay(100);
  23. }


  1. /*
  2. 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3. 实验八十: 4路TTP224电容式触摸模块 人体数字触摸传感器
  4. 程序之二,稳定性很好,不易误触发
  5. 模块上的1,2,3,4对应于单片机上的7,6,5,4
  6. 其中引入了布尔型M,主要是为了实现,在按下到松开这个过程中,
  7. 仅输出一次高电平,即输出语句只输出一句,来避免一直输出。
  8. */
  9. #include <Arduino.h>
  10. int i;
  11. boolean m=true;
  12. void setup(){
  13. Serial.begin(9600);
  14. }
  15. void loop(){
  16. if(m==true){
  17. for(i=0;i<5;i++){
  18. if(digitalRead(8-i)==1){
  19. delay(50);
  20. if(digitalRead(8-i)==1){
  21. Serial.print("hello ");
  22. Serial.print(i);
  23. Serial.println(" ---");
  24. m=false;
  25. }
  26. }
  27. }
  28. }
  29. if(digitalRead(4)==0 && digitalRead(5)==0 && digitalRead(6)==0 && digitalRead(7)==0)
  30. {m=true;}
  31. }

实验场景图

  1. /*
  2. 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3. 实验八十: 4路TTP224电容式触摸模块 人体数字触摸传感器
  4. 程序之三,使用4路触控模块的其中3个开关,当作LED灯的开关、调亮和调暗控制界面
  5. */
  6. const byte LED_PIN = 5; // LED灯的接脚
  7. const byte PWR_LED = 13; // 电源指示灯的接脚
  8. bool powerOn = false; // LED电源是否开启,默认“否”
  9. bool btnStatus; // 按钮状态
  10. int pwmVal = 0; // 电源输出值
  11. // 宣告触键的自订结构类型
  12. typedef struct {
  13. byte pin; // 按键的接脚编号
  14. bool lastStatus; // 上次的状态
  15. } key;
  16. // 宣告电源键的接脚和默认状态
  17. key powerKey = { 10, LOW };
  18. // 宣告“调亮”键的接脚和默认状态
  19. key upKey = { 11, LOW };
  20. // 宣告“调暗”键的接脚和默认状态
  21. key downKey = { 12, LOW };
  22. void setup() {
  23. Serial.begin(9600);
  24. pinMode(powerKey.pin, INPUT);
  25. pinMode(upKey.pin, INPUT);
  26. pinMode(downKey.pin, INPUT);
  27. pinMode(LED_PIN, OUTPUT);
  28. pinMode(PWR_LED, OUTPUT);
  29. }
  30. void loop() {
  31. // 读取电源键的状态
  32. btnStatus = digitalRead(powerKey.pin);
  33. // 如果电源键的讯号从低电位变成高电位…
  34. if (btnStatus && powerKey.lastStatus == LOW) {
  35. powerOn = !powerOn; // 反相电源状态
  36. digitalWrite(PWR_LED, powerOn);
  37. if (powerOn) { // 若powerOn为true…
  38. // 依照pwmVal的值点亮LED
  39. analogWrite(LED_PIN, pwmVal);
  40. } else {
  41. // 关闭LED灯
  42. digitalWrite(LED_PIN, LOW);
  43. }
  44. }
  45. // 纪录这次的电源键讯号状态
  46. powerKey.lastStatus = btnStatus;
  47. // 读取“调亮”键的状态
  48. btnStatus = digitalRead(upKey.pin);
  49. // 若“有开启电源”且“此按键讯号是高电位”且“前次讯号是低电位”
  50. if (powerOn && btnStatus && upKey.lastStatus == LOW) {
  51. // 增加亮度值,每次增加10,不能超过255。
  52. if ((pwmVal+10) <= 255) { pwmVal += 10;
  53. Serial.println(pwmVal);
  54. analogWrite(LED_PIN, pwmVal); } }
  55. upKey.lastStatus = btnStatus; // 读取“调暗”键的状态
  56. btnStatus = digitalRead(downKey.pin);
  57. if (powerOn && btnStatus && downKey.lastStatus == LOW) { // 减少亮度值,最低值为0
  58. if ((pwmVal-10) >= 0) {
  59. }
  60. pwmVal -= 10;
  61. Serial.println(pwmVal);
  62. analogWrite(LED_PIN, pwmVal);
  63. }
  64. downKey.lastStatus = btnStatus;
  65. }

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


作者: 雕爷学编程, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3894459.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论3条评论)

登录后参与讨论

雕爷学编程 2021-5-7 10:36

lyyinhe_xi: zhijing
    谢谢鼓励

lyyinhe_xi 2021-4-28 09:06

zhijing

curton 2021-4-18 19:36

相关推荐阅读
雕爷学编程 2023-06-20 08:52
【雕爷学编程】Arduino动手做(117)---P10V706LED屏模组
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为...
雕爷学编程 2023-06-18 14:52
【雕爷学编程】Arduino动手做(116)---五向导航按键模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为...
雕爷学编程 2023-06-18 13:23
【雕爷学编程】Arduino动手做(115)---HB100多普勒雷达模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为...
雕爷学编程 2023-06-18 11:10
【雕爷学编程】Arduino动手做(114)---US-015高分辨超声波模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为...
雕爷学编程 2023-06-17 09:10
【雕爷学编程】Arduino动手做(113)---5110液晶屏模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为...
雕爷学编程 2023-06-17 06:36
【雕爷学编程】Arduino动手做(112)---2.4G24L01无线模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为...
我要评论
3
25
关闭 站长推荐上一条 /2 下一条