极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: eagler8

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

[复制链接]
 楼主| 发表于 2019-8-5 16:29:10 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 16:31:36 | 显示全部楼层
4路TTP224电容式触摸模块 人体数字触摸传感器

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 17:04:49 | 显示全部楼层
1、板载TTP224电容式4键触摸感应IC
2、板载4路电平状态指示灯
3、工作电压:2.4V-5.5V
4、模块可以设置输出模式、键输出模式、最长输出时间和快速/低功耗选择
5、PCB板子尺寸:35(mm)x29(mm)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 18:11:47 | 显示全部楼层
模块电原理图



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 18:55:04 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 19:18:17 | 显示全部楼层
  1. /*
  2.   【Arduino】66种传感器模块系列实验(81)
  3. 实验八十三: 4路TTP224电容式触摸模块 人体数字触摸传感器
  4. 对应按键输出数字
  5. */

  6. int i;

  7. void setup()
  8. {

  9. for(i=4; i<=7; i++)
  10. {
  11. pinMode(i, INPUT);

  12. }
  13. Serial.begin(9600);
  14. }

  15. void loop()
  16. {
  17. for(i=4; i<=7; i++)
  18. {
  19. if(digitalRead(i) == HIGH)
  20. {
  21. Serial.println(i-3);
  22. }
  23. }
  24. delay(100);
  25. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 19:33:00 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 19:43:52 | 显示全部楼层
  1. /*
  2.   【Arduino】66种传感器模块系列实验(81)
  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. {
  14.   Serial.begin(9600);
  15.   
  16. }

  17. void loop()
  18. {  
  19.      if(m==true){
  20.         for(i=0;i<5;i++){
  21.         if(digitalRead(8-i)==1){
  22.           delay(50);
  23.             if(digitalRead(8-i)==1){
  24.               Serial.print("hello ");
  25.               Serial.print(i);
  26.               Serial.println(" ---");
  27.               m=false;
  28.             }
  29.           }
  30.         }
  31.      }
  32.      
  33.       if(digitalRead(4)==0 && digitalRead(5)==0 && digitalRead(6)==0 && digitalRead(7)==0)
  34.       {m=true;}
  35. }

复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 19:47:49 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 20:32:26 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 20:41:02 | 显示全部楼层
  1. /*
  2.   【Arduino】66种传感器模块系列实验(81)
  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.   // 若“有开启电源”且“此按键讯号是高电位”且“前次讯号是低电位”
  51.   if (powerOn && btnStatus && upKey.lastStatus == LOW) {
  52.     // 增加亮度值,每次增加10,不能超过255。
  53.     if ((pwmVal+10) <= 255) { pwmVal += 10;
  54.     Serial.println(pwmVal);
  55.     analogWrite(LED_PIN, pwmVal); } }
  56.     upKey.lastStatus = btnStatus; // 读取“调暗”键的状态
  57.     btnStatus = digitalRead(downKey.pin);
  58.     if (powerOn && btnStatus && downKey.lastStatus == LOW) { // 减少亮度值,最低值为0
  59.       if ((pwmVal-10) >= 0) {
  60.     }
  61.       pwmVal -= 10;
  62.       Serial.println(pwmVal);
  63.       analogWrite(LED_PIN, pwmVal);
  64.     }
  65.   downKey.lastStatus = btnStatus;
  66. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 20:44:49 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-5 20:58:15 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-6 07:48:36 | 显示全部楼层
实验八十四: 8位LED数码管MAX7219模块(支持级联八位串行3个IO口控制)

MAX7219
是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。只有一个外部寄存器用来设置各个LED的段电流。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-6 07:52:49 | 显示全部楼层
一个方便的四线串行接口可以联接所有通用的微处理器。每个数据可以寻址在更新时不需要改写所有的显示。MAX7219同样允许用户对每一个数据选择编码或者不编码。整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。只需要3个IO口即可驱动8位数码管!数码管显示时无闪烁!支持级联!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 18:18 , Processed in 0.037434 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表