【雕爷学编程】Arduino动手做(203)---TTP224 四路八路数字触摸传感器模块3

在这里插入图片描述

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

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零三:TTP224 四路 电容式 触摸开关 数字触摸传感器模块

四位与八位电容按键实物图片

四位与八位电容按键矩阵模块实验环境
一、四位与八位电容按键矩阵模块实验所需硬件清单

Arduino Uno开发板 X1
杜邦线 若干(备了9条)
LED发光二极管(蓝色)X1
四位TTP224矩阵键盘模块X1
八位TTP226矩阵键盘模块X1
高电平触发有源蜂鸣器模块X1
5MM三色RGB全彩LED模块X1
高电平触发单路5V继电器模块X1
三色LED交通灯模块(红绿黄灯)X1
Proto Shield 原型扩展板(带mini面包板)X1

在这里插入图片描述

四、程序四:TTP224電容觸控控制LED燈
1、Arduino参考开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序四:TTP224電容觸控控制LED燈

  实验结果:用3个按键控制3个LED灯,触碰开关时,LED灯亮,
  手一放开就会熄灭。按键4是开关的功能,按一下全开,再按一下全关。
*/

boolean b4=false; // LED 状态

void setup() {
    Serial.begin(9600);
    
    // LED
    pinMode(9, OUTPUT);    // LED 1
    pinMode(10, OUTPUT);   // LED 2
    pinMode(11, OUTPUT);   // LED 3

    // 按鍵
    pinMode(2, INPUT);    // 按鍵 1   
    pinMode(3, INPUT);    // 按鍵 2  
    pinMode(4, INPUT);    // 按鍵 3   
    pinMode(5, INPUT);    // 按鍵 4               
}

void loop() {

    // 按鍵 1
    if(digitalRead(2)){
      Serial.println("Button 1 Touched "); 
      digitalWrite(9, HIGH); // LED 亮   
      delay(200);
    }
    else{
      digitalWrite(9, LOW);  // LED 熄灭
    }

    // 按鍵 2 
    if(digitalRead(3)){
      Serial.println("Button 2 Touched "); 
      digitalWrite(10, HIGH); // LED 亮
      delay(200); 
    }
    else{
      digitalWrite(10, LOW);  // LED 熄灭
    }   

    // 按鍵 3 
    if(digitalRead(4)){
      Serial.println("Button 3 Touched "); 
      digitalWrite(11, HIGH); // LED 亮       
      delay(200); 
    }
    else{
      digitalWrite(11, LOW);  // LED 熄灭
    }     

   // 按鍵4
    if(digitalRead(5)){
      Serial.println("Button 4 Touched ");
      b4=!b4;      // 改变开关状态
      delay(300);
    }

    if (b4) {  // LED 全亮
       digitalWrite(9, HIGH);  
       digitalWrite(10, HIGH);   
       digitalWrite(11, HIGH);  
    }
    else{    // LED 熄灭 
       digitalWrite(9, LOW);
       digitalWrite(10, LOW);
       digitalWrite(11, LOW);
    }
}

2、实验接线参考示意图

在这里插入图片描述
3、实验串口返回情况

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

在这里插入图片描述
五、程序五:检查每个键是否被触摸,输出是否显示在串行监视器上

1、Arduino参考开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序五:检查每个键是否被触摸,输出是否显示在串行监视器上
*/

//定义按键
const int touchButton_1 = 4;
const int touchButton_2 = 5;
const int touchButton_3 = 6;
const int touchButton_4 = 7;


void setup() {
  Serial.begin(9600);
  //设置输入按键
  pinMode(touchButton_1, INPUT);
  pinMode(touchButton_2, INPUT);
  pinMode(touchButton_3, INPUT);
  pinMode(touchButton_4, INPUT);
}

void loop() {
  //串口打印按键数值
  Serial.print(digitalRead(touchButton_1));
  Serial.print("\t");
  Serial.print(digitalRead(touchButton_2));
  Serial.print("\t");
  Serial.print(digitalRead(touchButton_3));
  Serial.print("\t");
  Serial.println(digitalRead(touchButton_4));

  delay(1500);
}

2、实验串口返回情况

在这里插入图片描述
六、程序六:控制 RGB LED 的颜色值并在串行监视器上显示当前值
1、Arduino参考开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序六:控制 RGB LED 的颜色值并在串行监视器上显示当前值
*/

#define Button1 2 //按钮引脚
#define Button2 3
#define Button3 4
#define Button4 5

#define LED_R 9   //RGB 引脚应该是 pwm
#define LED_G 10
#define LED_B 11

int Red = 0, Blue = 0, Green = 0; //要影响到RGB的颜色值

//存储按钮状态
bool Button1_State, Button2_State, Button3_State, Button4_State; 

void setup() {

  Serial.begin(9600);        //设置串口通讯

  pinMode(Button1, INPUT);   //设置引脚模式
  pinMode(Button2, INPUT);
  pinMode(Button3, INPUT);
  pinMode(Button4, INPUT);

  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  pinMode(LED_B, OUTPUT);

}

void loop() {

  Serial.print(Red);     //在串口监视器上显示颜色值
  Serial.print("\t");
  Serial.print(Green);
  Serial.print("\t");
  Serial.println(Blue);

  Button1_State = digitalRead(Button1); //读取按钮状态
  Button2_State = digitalRead(Button2);
  Button3_State = digitalRead(Button3);
  Button4_State = digitalRead(Button4);

  analogWrite(LED_R, Red);     //将值写入RGB
  analogWrite(LED_G, Green);
  analogWrite(LED_B, Blue);

  if (Button1_State == HIGH)  //按钮1控制红色,2绿色和3蓝色
    Red += 20;               //每次按下该值都会增加20,您可以根据需要更改
  if (Red >= 255)           //如果超过限制将被带回0
    Red = 0;

  if (Button2_State == HIGH)
    Green += 20;
  if (Green >= 255)
    Green = 0;

  if (Button3_State == HIGH)
    Blue += 20;
  if (Blue >= 255)
    Blue = 0;

  if (Button4_State == HIGH) { //按钮4将值重置为0

    Red = 0;
    Green = 0;
    Blue = 0;

  }
  //为了避免一次触摸被计为10或更多,虽然100相当大,
  //你可以减少它并实验测试
  delay(100); 
}

2、实验接线参考示意图

在这里插入图片描述

3、实验串口返回情况

在这里插入图片描述

4、实验场景图

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值