这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » 如何使用Arduino构建基于触控的变色植物

共3条 1/1 1 跳转至

如何使用Arduino构建基于触控的变色植物

工程师
2022-08-20 23:50:45     打赏

在本文中,我们将学习如何使用 Arduino 构建基于触控的变色植物。当您触摸植物时,植物花瓶的颜色会自动改变。这是一个不错的室内装饰项目,也是初学者构建和学习一些有趣东西的小爱好项目。

现在,当我们说基于触摸的植物时,可能会出现一个常见问题,即电子电路如何通过植物检测到人类的触摸。如今,触摸感应设备无处不在。我们可以在智能手机和不同类型的电器中看到触摸屏。触摸传感器只是一个开关,当有人触摸触摸传感器时,传感器会关闭电子电路并允许电流流动。

触摸传感器类型

从手机到智能自动售货机,如今,我们可以在所有现代设备中找到触摸传感器。触摸传感器主要有两种类型,即 电阻式触摸式和电容式触摸式。类型名称本身就表明了操作方式和工作原理。

电阻式触摸传感器:顾名思义,电阻式触摸传感器的工作原理是基于导体的电阻。当人体发生触摸时,导体的电阻率会发生变化,也会产生电压变化,这种电压变化会被电路检测到,事情就会发生。

电容式触摸传感器:这是最常用的触摸传感器类型。这仅仅是因为我们可以一次执行多个触摸。电容式触摸传感器基于电容的变化工作,即当我们触摸传感器时,电路的电容发生变化,这将被检测为触摸。现在让我们详细讨论一下我们的电路。

如何检测植物的触摸?

我们厂的电路也是基于电容式触摸传感器。也就是说,我们将一根电线连接到我们的植物上,使其像电极一样,然后当我们触摸植物时,由于我们身体的存在,电容会发生变化,这将被我们的电路检测到。说到电路,我们需要一个微控制器来检测电容的变化并控制整个系统。在我们的例子中,微控制器是 Arduino。

poYBAGLwxtaAZZdUAAXQ_bqFP-0568.png

制作我们的变色植物花瓶所需的材料

阿杜诺

共阴极RGB LED

1兆欧电阻(棕色、黑色、绿色)

连接线

有基地的植物

普通PCB

pYYBAGLwxt2AN3enAAm8-KRWw2A131.png

基于触摸的变色 Arduino Plant 电路图

该项目中使用的完整电路图如下所示。该电路是使用 Easy EDA 创建的,如您所见,它是一个非常简单的电路。

poYBAGLwxuKAVQnEAABycc3MPEA527.png

首先,在 Arduino 引脚 2 和引脚 4 之间连接一个兆欧电阻。然后将一根长线(铜)连接到引脚 4。这条线充当电极或触摸引线,然后将 RGB LED 公共接地连接到地,红色连接到Arduino的D5和D6的绿色,D7的蓝色,最后将电线连接到植物体上,就是这样。连接后我的硬件设置如下所示。

pYYBAGLwxuaABRmHAAkvredqyzU345.png

我已将 RGB LED 连接到一个普通的穿孔板上(如下图所示),最后将底座(玻璃)放在 PCB 上方。而已。

pYYBAGLwxu2ADadAAAdusYy6CwY407.png

用于检测植物触摸并更改 LED 颜色的 Arduino 程序

此项目中使用的完整程序可在此页面底部找到。要检测植物的电容,我们需要使用电容传感器库。您可以从以下链接下载 Arduino 电容式传感器库。

下载 Arduino 电容式触摸传感器库

下载库并将其添加到您的 Arduino IDE 后,将该库包含到您的代码中。该库有助于读取 Arduino 引脚的电容。

#include <电容传感器.h>

我们已经在引脚 2 和 4 之间连接了电阻,因此我们需要测量引脚 4 中的电容,为此,定义引脚。

电容传感器 cs_2_4 = 电容传感器(2,4);

电容传感器切换微控制器引脚,即它将引脚发送到新状态,然后等待接收引脚更改为与发送引脚相同的状态。在设置部分,我为 LED 和传感器引线定义了不同的引脚。

  pinMode(4,输入);
 pinMode(5,输出);
 pinMode(6,输出);
 pinMode(7,输出);

在循环部分借助数字读取,我们可以读取引脚 4 的状态,并将值存储在变量“r”中。

r = 数字读取(4);  if (r == HIGH && p == LOW && millis() - time > debounce) { 
   cnt++;
 如果(状态 == 高)
    状态 = 低;
if(cnt == 1){
   digitalWrite(5, HIGH);
   数字写入(6,低);
   数字写入(7,低);
 }
 if(cnt == 2){
   digitalWrite(5, LOW);
   数字写入(6,高);
   数字写入(7,低);
 }
 if(cnt == 3){
   digitalWrite(5, LOW);
   数字写入(6,低);
   数字写入(7,高);
 }
 if(cnt > 3){
     cnt = 1;
 }
 p = r;

每次检测到触摸时,它都会增加计数,我根据增加的数字给出了不同的条件以不同的颜色点亮。

代码准备好后,只需将其上传到您的 Arduino 板并将 LED 放在您的花瓶下。在这里,我使用的是玻璃花瓶,一切准备就绪后,我的设置看起来像这样。

#include <电容传感器.h>
电容传感器 cs_2_4 = 电容传感器(2,4);// 引脚 2 和 4 之间有 1M 电阻,引脚 4 是传感器引脚,添加一根导线和
诠释cnt = 0;
整数 = 2;
诠释= 4;
诠释状态=高;
诠释r;
诠释 p = 低;
长时间 = 0;
长时间去抖 = 200;
无效设置()
{
pinMode(4,输入);
/* LED 输出 */
pinMode(5,输出);
pinMode(6,输出);
pinMode(7,输出);
}
无效循环()
{
r = 数字读取(4);
if (r == HIGH && p == LOW && millis() - time > debounce) {
cnt++;
如果(状态 == 高)
状态=低;
别的
时间=毫秒();
}
如果(cnt == 1){
数字写入(5,高);
数字写入(6,低);
数字写入(7,低);
}
如果(cnt == 2){
数字写入(5,低);
数字写入(6,高);
数字写入(7,低);
}
如果(cnt == 3){
数字写入(5,低);
数字写入(6,低);
数字写入(7,高);
}
如果(cnt > 3){
cnt = 1;
}
p = r;
}




高工
2022-08-21 13:44:20     打赏
2楼

感谢分享


专家
2022-08-21 13:45:10     打赏
3楼

感谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]