在这个项目中,我将向您展示如何使用铝箔和高阻值电阻器(电阻从 10 MΩ 到 40 MΩ)创建接近传感器。它基于 Arduino电容传感库工作。每当您将手(任何导电物体)靠近传感器时,LED 的亮度都会根据距离发生变化。在最短距离处,它显示最大亮度。
电容传感器库将两个或多个Arduino引脚变成电容传感器,可以感应人体的电容。所有的传感器设置都需要一个中到高值的电阻器和一个小的(到大的)铝箔片。在最敏感的情况下,传感器将开始感应到距离传感器几英寸远的手或身体。
电容感应是一种接近感应技术。电容式传感器通过产生电场来工作,并通过感测该电场是否已被破坏来检测附近的物体。电容式传感器可以检测任何导电的或介电常数与空气明显不同的物体,例如人体或手。介电常数是衡量在材料周围形成电场的难易程度的指标。它是物质在电场中储存电能的能力。
首先,您需要:
小型传感器(大约指纹大小)最适合用作触敏按钮,而较大的传感器在接近模式下效果更好。
铝箔的大小会影响传感器的灵敏度,因此如果您愿意,可以尝试几种不同的尺寸,看看这会如何改变传感器的反应方式。
在 Arduino 的第 2 和第 4 引脚之间插入一个 10 M 欧姆电阻。根据程序,引脚 4 是接收引脚。将铝箔连接到接收引脚。将 Led 的 +ve 端子连接到第 9 针 –ve 端子到 Arduino 的 GND。
#include
CapacitiveSensor cs_2_4 = CapacitiveSensor(2,4); // 10M ohm resistor between pins 2 & 4, pin 4 is sensor pin, add a wire and or foil
int in = 2;
int out = 4;
void setup()
{
Serial.begin(9600); // // initialize serial communication at 9600 bits per second:
pinMode(4, INPUT);
pinMode(9, OUTPUT);
}
void loop()
{
long start = millis();
long total1 = cs_2_4.capacitiveSensor(30); //sensor resoultion. Default 30.
// increase for higher resolution, but slower performance.
Serial.print(millis() - start); // check on performance in milliseconds
Serial.print("\t"); //tab character for debug window spacing
Serial.println(total1); // print sensor output 1
delay(10); // arbitrary delay to limit data to serial port
if(total1>=140) // change this based on serial Monitor's output
{
analogWrite(9, total1);
}
else
{
digitalWrite(9,LOW);
}
}
伟大的!现在所有的实际工作都已完成,我们可以开始编写代码了。确保您已经安装了电容感应库。
现在我们准备测试您的传感器!确保您的计算机已插入墙上,或者 Arduino 已接地,因为这可以提高传感器的稳定性。要检查传感器的输出,请在 Arduino 编程环境中打开串行监视器(确保监视器设置为 9600 波特,因为这是代码中指定的)。
如果它工作正常,将你的手靠近和远离箔片应该会改变 LED 的亮度。
传感器板和您的身体形成一个电容器。我们知道电容器储存电荷。它的电容越大,它可以存储的电荷就越多。
这种电容式触摸传感器的电容取决于您的手离板的距离。
基本上,Arduino 会测量电容器(即触摸传感器)充电所需的时间,从而估算出电容值。电容可能很小,但 Arduino 可以准确测量它。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !