风筝
发表于: 2019-1-16 16:15:57 | 显示全部楼层

在本篇文章中,我制作了一个基于Arduino电容式感应库的触摸控制灯。您可以使用铝箔制作触摸传感器(任何金属物体都可以工作)。你可以通过触摸铝箔点亮或熄灭灯。

Prototype.jpeg


首先,简要介绍电容库的工作原理:

capacitiveSensor库将两个或多个Arduino引脚转换为电容式传感器,可以感应人体的电容。所有传感器的设置都需要一个中到高值的电阻和一根导线以及小的铝箔片。在最敏感的情况下,传感器将开始感应距离传感器几英寸的手或身体。电容传感器方法将微控制器发送引脚切换到新状态,然后等待接收引脚切换到与发送引脚相同的状态。

因此,对于高值电阻,这种行为就像接近传感器


要了解Arduino电容式感应库,请点击此链接


所需的硬件

●    Arduino UNO开发板

●    1MΩ电阻

●    LED指示灯

●    铝箔

●    2根连接导线


基本的软件需求

您必须安装电容式感应库,您可以从这里下载Capacitive Sensing Library。

如果你不知道如何安装新的库到Arduino软件,请按照此链接了解如何在Arduino IDE中安装库。


制作触摸传感器

触摸传感器可以由任何金属物体制成。我使用的是铝箔。

对于许多应用,如果传感器用纸、塑料或其他绝缘材料覆盖,则获得更有用的值范围,使得用户实际上不接触金属箔。

所以我用绝缘胶带覆盖它,效果很好。

Circuit.jpeg


代码

以下是本文使用的完整代码:

  1. //arduino code for touch controlled light based on capacitive sensing library

  2. #include <CapacitiveSensor.h>

  3. CapacitiveSensor   cs_2_4 = CapacitiveSensor(2,4); // 1M resistor between pins 2 & 4, pin 4 is sensor pin, add a wire and or foil

  4. int in = 2;
  5. int out = 4;  
  6. int state = HIGH;  
  7. int r;           
  8. int p = LOW;   
  9. long time = 0;      
  10. long debounce = 200;
  11. void setup()
  12. {
  13.   pinMode(4, INPUT);
  14.   pinMode(8, OUTPUT);
  15. }
  16. void loop()                    
  17. {

  18.   r = digitalRead(4);
  19.   if (r == HIGH && p == LOW && millis() - time > debounce) {
  20.     if (state == HIGH)
  21.       state = LOW;
  22.     else
  23.       state = HIGH;
  24.     time = millis();   
  25.   }
  26.   digitalWrite(8, state);
  27.   p = r;
  28. }
复制代码

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-20 10:16 , Processed in 0.178146 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表