欢迎光临散文网 会员登陆 & 注册

Arduino触摸传感器教程(Touch Sensor)

2023-03-25 00:41 作者:宇宙很大脑洞很圆  | 我要投稿

【Arduino触摸传感器教程 Touch Sensor with Arduino Tutorial】 

图一:由Bing Image生成的照片

什么是触摸传感器touch sensor?

触摸传感器的英文是touch sensor。 它有如下特点:

a) 可用来代替传统按键。

b) 提供了一个触摸感应区域。当未被触碰时,传感器的信号引脚,signal pin,会输出低电平。当可导电物体,比如手指,触摸该区域时,信号引脚会输出高电平。

c) 具有体积小、功耗低、方便使用、和稳定性好的特点。

d) 传感器有3个引脚:

    - GND接地;

    - VCC接五V电源;

    - SIG代表SIGNAL信号,用以连接开发板的数字模拟口。


触摸传感器的工作原理?

触摸传感器的工作原理就像一个开关,当触摸传感器表面有接触、触摸或压力时,它就会闭合电路,让电流流过。当触点松开时,传感器的内部电路会断开,电流会停止流动。


材料清单

- 触摸传感器 x1

- 面包板 x1

- 面包线 x7 (黑线x3, 红线x2, 黄线x1, 橘线x1): 颜色不重要,但有助于理解教程

- LED 灯 x1

- 220欧姆电阻 x1

- Arduino Uno 开发板 x1

- UBS接线 x1

-  装有Arduino IDE的电脑 x1


电路图

图二:电路图

接线细节

图三:接线细节

代码

const int SENSOR_PIN = 3;   // 传感器的信号引脚连接到开发板模拟口3

const int LED_PIN = 7;     // LED灯的长腿连接到开发板模拟口7


int last_state = LOW;      // 之前的传感器信号状态,默认是低电平,没被触碰

int current_state;        // 现在的传感器信号状态

bool light_on = false;   // 灯光的状态,默认是false, 关灯状态


void setup() {

  Serial.begin(9600);          // 设置串口通信为 9600 位/秒

  pinMode(SENSOR_PIN, INPUT); // 设置模拟口3为输入模式

}


void loop() {

  current_state = digitalRead(SENSOR_PIN); //读入传感器的电平状态


//**假如之前的信号状态是低,现在的信号状态是高,代表传感器的被触碰到了

  if(last_state == LOW && current_state == HIGH){ 

    Serial.println("touch detected by sensor"); //打印信号

    if (light_on == false) {                 //假如现在是关灯状态

      digitalWrite(LED_PIN, HIGH); //打开LED灯

      light_on = true;                        //设置灯的状态为开

    } else {                                       //假如现在是开灯状态

      digitalWrite(LED_PIN, LOW); //关掉LED灯

      light_on = false;                     //设置灯的状态为关

    }

  }


  last_state = current_state;  // 把当前的信号状态赋值给之前的信号状态,开始另一个循环

}

**前面介绍过,传感器没被触碰时,它是低电平状态,被触碰时是高电平。如果我们只依据现在的状态等于高电平作为触碰的判断条件,可能会产生一些问题,比如我们按住传感器的时间过长,可能会被判断为多次触碰。因此,我们需要两个条件,传感器之前的状态是低,和现在的状态是高,来判断它是否刚被触碰了一次。


如何上传代码?

a) 点击Arduino图标, 打开编程IDE。一个Sketch会跳出来。

b) 点击文件(F) >> 新建项目, 打开一个新的Sketch。

c) 复制并粘贴上面的代码进IDE。

d) 点击工具 >> 开发板 >> Arduino AVR Boards >> 选择你现在用的开发板。

e) 点击工具 >> 选择端口。(端口不一定是6,由电脑分配。)

f) 点击打勾图标检查代码。

g) 如果IDE没有报错,点击右箭头图标上传代码。

h) 点击工具 >> 打开串口监视器, 看传感器被触碰时是否有正确的信息打印出来。


const 的应用

const 可以用来限定一个变量,不让它被改变。如果强行改变这个变量,IDE会报错。使用const在一定程度上可以提高程序的安全性和可靠性。


图四: const的应用

参考资料:

Arduino Touch Sensor: https://arduinogetstarted.com/tutorials/arduino-touch-sensor 

Touch Sensor Working and Its Applications: https://www.elprocus.com/touch-sensor-working-and-its-appplications/#:~:text=Working%20Principle%20of%20Touch%20Sensor,act%20as%20an%20open%20switch.

小熊图片:由微软Bing生成

电路图:用virtual Breadboard制作

音乐:The Wild and the Free, provided by Storyblocks

十年种木,一年种谷,都付儿童。老夫惟有,醒来明月,醉后清风。

Arduino触摸传感器教程(Touch Sensor)的评论 (共 条)

分享到微博请遵守国家法律