在本篇文章中,我制作了一个基于Arduino电容式感应库的触摸控制灯。您可以使用铝箔制作触摸传感器(任何金属物体都可以工作)。你可以通过触摸铝箔点亮或熄灭灯。
工作原理:
首先,简要介绍电容库的工作原理:
capacitiveSensor库将两个或多个Arduino引脚转换为电容式传感器,可以感应人体的电容。所有传感器的设置都需要一个中到高值的电阻和一根导线以及触摸传感器。在最敏感的情况下,传感器将开始感应距离传感器几英寸的手或身体。电容传感器方法将微控制器发送引脚切换到新状态,然后等待接收引脚切换到与发送引脚相同的状态。
因此,对于高值电阻,这种行为就像接近传感器
要了解Arduino电容式感应库,请点击此链接。
所需的硬件
● Arduino UNO开发板
● 1MΩ电阻
● LED指示灯
● 铝箔
● 连接导线
基本的软件需求
1、下载Arduino 开发软件,Arduino 下载地址:
https://downloads.arduino.cc/arduino-1.8.9-windows.zip
2、您必须安装电容式感应库,您可以从这里下载Capacitive Sensing Library。
3、如果你不知道如何安装新的库到Arduino软件,请按照此链接了解如何在Arduino IDE中安装库。
制作触摸传感器
触摸传感器可以由任何金属物体制成。我使用的是铝箔。对于许多应用,如果传感器用纸、塑料或其他绝缘材料覆盖,则获得更有用的值范围,使得用户实际上不接触金属箔。所以我用绝缘胶带覆盖它,效果很好。
上传代码
点击项目中验证/编译
点击项目上传
如下图所示:
若显示上传成功,代码正确了
测试方法:
你可以通过触摸铝箔,你可以观察到灯变红了,再触摸一下,红灯变暗了,这样即表示铝箔触摸器是可行的。
代码
以下是本文使用的完整代码:
//arduino code for touch controlled light based on capacitive sensing library
#include <CapacitiveSensor.h>
CapacitiveSensor cs_2_4 = CapacitiveSensor(2,4); // 1M resistor between pins 2 & 4, pin 4 is sensor pin, add a wire and or foil
int in = 2;
int out = 4;
int state = HIGH;
int r;
int p = LOW;
long time = 0;
long debounce = 200;
void setup()
{
pinMode(4, INPUT);
pinMode(8, OUTPUT);
}
void loop()
{
void loop()
}
r = digitalRead(4);
if (r == HIGH && p == LOW && millis() - time > debounce) {
if (state == HIGH)
state = LOW;
else
state = HIGH;
time = millis();
}
digitalWrite(8, state);
p = r;
}