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

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

什么是触摸传感器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在一定程度上可以提高程序的安全性和可靠性。

参考资料:
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
十年种木,一年种谷,都付儿童。老夫惟有,醒来明月,醉后清风。