今天给大家介绍既简单有神奇的作品,用 Arduino 开发板和 A4 纸,外加几个铝箔(或锡纸、铜箔)和电阻制作的Arduino触摸传感器。神奇之处在于它不需要任何外围电路,即可实现触摸传感器的功能。
这个作品是怎么实现的呢?它的秘密在哪里:
Arduino 除了接受数字端口的数字信号,唯一能检测的模拟物理量就是电压。任何模拟传感器的检测值几乎都要通过相关电路转化成电压值,再输入Arduino 的模拟端口进行模数转换。如果你用手指触摸一根导线的裸露端,就会导致电容变化,而Arduino 可以通过上述方法检测这个变化。如果要增加灵敏度,你可以在导线上连一片锡箔。为防止你手上有强静电击穿芯片,你还可以在锡箔上盖一薄层绝缘纸。
怎么实现?
我们首先要把一个数字端口设成低电位,并打开 Arduino 的内部上拉电阻,然后多次判断引脚的状态,最后再取得正确的值。在硬件上,您只需要在一个端口上连一根导线即可。
下面介绍制作步骤:
Step 1
要准备工具和材料:
Arduino UNO开发板
绝缘电线
一张铝箔纸
一卷电工胶带
一张A4纸
还有就是对创造的热情(必须)
Step 2
拿一小块铝箔(或锡纸、铜箔),并把它贴在纸上。
Step 2Step 3
给铝箔(或锡纸、铜箔)接上线,并用电工胶布固定好。
Step 3Step 4
把刚刚接好的线连接到Arduino UNO 开发板的标号为2的管脚上。
Step 5
上传以下代码到您的Arduino开发板中,大功告成!
int my_digitalRead(uint8_t pin) {
pinMode(pin, INPUT);
return digitalRead(pin);
}
boolean Get(uint8_t pin) {
for (int i = 1; i <= 100; i = i + (1)) {
if (my_digitalRead(pin) == LOW) {
return LOW;
}
}
return HIGH;
}
void setup() {
pinMode(2, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(2, LOW);
pinMode(2, INPUT_PULLUP);
if (Get(2) == LOW) {
Serial.println("您按下了按钮");
while (true) {
if (Get(2) == HIGH) {
Serial.println("您松开了按钮");
break;
}
}
}
pinMode(2, OUTPUT);
Step 6
开始测试!
打开串口监视器:
如果一切正常的话,当您按下您的“触摸传感器”时串口监视器将会显示:“您按下了按钮”,当您松开您的“触摸传感器”时串口监视器将会显示:“您松开了按钮”
这个项目是不是很有趣呢?有兴趣的小伙伴们可以试着用这个原理来做一个触控键盘。
如果您喜欢这篇文章的话,请动动手指,点个赞吧~~
网友评论