Arduino开发之旅——自己做触摸传感器

2020-03-06  本文已影响0人  Pacoshao

       今天给大家介绍既简单有神奇的作品,用 Arduino 开发板和 A4 纸,外加几个铝箔(或锡纸、铜箔)和电阻制作的Arduino触摸传感器。神奇之处在于它不需要任何外围电路,即可实现触摸传感器的功能。

这个作品是怎么实现的呢?它的秘密在哪里:

        Arduino 除了接受数字端口的数字信号,唯一能检测的模拟物理量就是电压。任何模拟传感器的检测值几乎都要通过相关电路转化成电压值,再输入Arduino 的模拟端口进行模数转换。如果你用手指触摸一根导线的裸露端,就会导致电容变化,而Arduino 可以通过上述方法检测这个变化。如果要增加灵敏度,你可以在导线上连一片锡箔。为防止你手上有强静电击穿芯片,你还可以在锡箔上盖一薄层绝缘纸。

怎么实现?

     我们首先要把一个数字端口设成低电位,并打开 Arduino 的内部上拉电阻,然后多次判断引脚的状态,最后再取得正确的值。在硬件上,您只需要在一个端口上连一根导线即可。

下面介绍制作步骤:

Step 1

要准备工具和材料:

Arduino UNO开发板

绝缘电线

一张铝箔纸

一卷电工胶带

一张A4纸

还有就是对创造的热情(必须)

Step 2

拿一小块铝箔(或锡纸、铜箔),并把它贴在纸上。

Step 2

Step 3

给铝箔(或锡纸、铜箔)接上线,并用电工胶布固定好。

Step 3

Step 4

把刚刚接好的线连接到Arduino UNO 开发板的标号为2的管脚上。


Step 4

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

开始测试!

打开串口监视器:

如果一切正常的话,当您按下您的“触摸传感器”时串口监视器将会显示:“您按下了按钮”,当您松开您的“触摸传感器”时串口监视器将会显示:“您松开了按钮”

这个项目是不是很有趣呢?有兴趣的小伙伴们可以试着用这个原理来做一个触控键盘。

如果您喜欢这篇文章的话,请动动手指,点个赞吧~~

上一篇下一篇

猜你喜欢

热点阅读