美文网首页
Arduino开发之旅——自己做触摸传感器

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

作者: Pacoshao | 来源:发表于2020-03-06 22:04 被阅读0次

           今天给大家介绍既简单有神奇的作品,用 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

    开始测试!

    打开串口监视器:

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

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

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

    相关文章

      网友评论

          本文标题:Arduino开发之旅——自己做触摸传感器

          本文链接:https://www.haomeiwen.com/subject/lvonrhtx.html