【雕爷学编程】Arduino动手做(11)---KY-036金属触摸传感器模块之顺序点亮红灯、绿灯和蓝灯及测试触摸产生的电压值

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

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验十一:人体手指触摸Touch金属触摸传感器模块FOR KY-036电路板电子积木

在这里插入图片描述

四、程序四:测试模块的触摸灵敏度,控制LED

实验开源图形编程(Mind+、Mixly、编玩边学)

在这里插入图片描述
五、程序五:触摸控制LED灯,并在串口输出波形
1、Arduino参考开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序五:触摸控制LED灯,并在串口输出波形
*/

//引脚和变量的声明
int led = 13 ;         // 引脚 13 用于输出 LED
int touch = 2;        // 当我们触摸传感器时将发送信号的 Pin 2 数字输入
int potenciometro = A0;       // 引脚 A0 模拟输入
int valsensor = 0;            
int val = 0;                  // 传感器检测变量


void setup () {
  Serial.begin (9600);            
  pinMode (led, OUTPUT) ;           // 我们将 LED 引脚定义为输出
  pinMode (potenciometro, INPUT) ;  // // 定义触摸端作为输入
}

void loop () {
  valsensor = analogRead (potenciometro);   //读数的值分配给 valsensor
  Serial.println (valsensor);               //在串行监视器中,读数值将被打印出来
  val = digitalRead(touch);       // val 将被分配 touch - Pin 2 的输出值
  if (val == HIGH)     //条件,如果传感器被触摸并且 val 为 HIGH-HIGH 那么
  {
    digitalWrite (led, HIGH);  //打开引脚 13 输出的 LED
  }
  else                    //否则,如果传感器没有被触摸...
  {
    digitalWrite (led, LOW);  //LED 熄灭
  }
}

2、实验串口绘图器返回情况(长线为有触摸信号,点亮LED)

在这里插入图片描述
六、程序六:测试串口输出的触摸产生电压值
1、Arduino参考开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序五:测试串口输出的触摸产生电压值
*/

int Analog_Input = A0; // 传感器的模拟输出
int Digital_Input = 2; // 传感器的数字输出

void setup  ( ) {
  pinMode (Analog_Input, INPUT);
  pinMode (Digital_Input, INPUT);
  Serial.begin (9600) ;
}

// 程序读取输入引脚的当前值
// 并在串行输出上输出
void loop  ( ) {
  float  Analogous;
  int Digital;

  //读取实际值,转换为电压值...
  Analogous =  analogRead (Analog_Input)  *  (5.0 / 1023.0);
  Digital = digitalRead (Digital_Input) ;

  //... 并在此时输出串口
  Serial.print  ("模拟电压值:");
  Serial.print (Analogous,  4) ;
  Serial.print  ("V, ");
  Serial.print ("限制")  ;
  if  (Digital == 1)
  {
    Serial.println ("到达");
  }
  else
  {
    Serial.println ("尚未到达");
  }
  Serial.println  ( " ----------------------------------------------------------------") ;
  delay (1000)  ;
}

2、实验串口返回情况

在这里插入图片描述
七、程序七:触摸传感器顺序点亮红灯、绿灯和蓝灯
Arduino参考开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序七:触摸传感器顺序点亮红灯、绿灯和蓝灯
*/

byte touch_sense = 2; // 指定输入引脚D2

// 这是指定 三色RGB LED 引脚的地方
byte led_red = 8;
byte led_green = 9;
byte led_blue = 10;

// 这些变量用于计时目的
int kk = 1; int time_out = 1;
bool state_on = 0;

void setup() {
  // 以每秒 9600 位初始化串行通信
  Serial.begin(9600);
  // 使触摸传感器引脚成为输入
  pinMode(touch_sense, INPUT);
  // 使 LED 输出
  pinMode(led_red, OUTPUT);
  pinMode(led_green, OUTPUT);
  pinMode(led_blue, OUTPUT);
  // 将 LED 预定义为关闭
  digitalWrite(led_red, LOW);
  digitalWrite(led_green, LOW);
  digitalWrite(led_blue, LOW);
}

void loop() {
  time_out++; // 迭代
  int touch_state = digitalRead(touch_sense);
  Serial.print(touch_state);
  // if 语句询问它被触发了多少次
  if (touch_state == 1 and state_on == 0) {
    kk++;
    state_on = 1;
    time_out = 1;
    delay(50);
  } else if (state_on == 1 and touch_state == 0) {
    state_on = 0;
    delay(50);
  }
  // 更改此项以更改必须触摸触摸传感器以注册更改的速度
  if (time_out > 40) {
    Serial.println(" ");
    Serial.println(kk);
    if (kk == 2) {
      // red on for 1 click
      digitalWrite(led_red, HIGH);
      digitalWrite(led_green, LOW);
      digitalWrite(led_blue, LOW);
    } else if (kk == 3) {
      // green on for 2 clicks
      digitalWrite(led_green, HIGH);
      digitalWrite(led_blue, LOW);
      digitalWrite(led_red, LOW);
    } else if (kk == 4) {
      // blue on for 3 clicks
      digitalWrite(led_blue, HIGH);
      digitalWrite(led_green, LOW);
      digitalWrite(led_red, LOW);
    }
    kk = 1;
    time_out = 1;
    delay(10);
  }
  Serial.println(touch_state); // 查看状态
  delay(1);
}

2、实验串口返回情况

在这里插入图片描述
3、实验场景图(触摸传感器顺序点亮蓝灯、绿灯和红灯)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

驴友花雕

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

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

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

打赏作者

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

抵扣说明:

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

余额充值