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

描述

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

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

  触摸传感器类型

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

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

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

  如何检测植物的触摸?

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

Arduino

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

  阿杜诺

  共阴极RGB LED

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

  连接线

  有基地的植物

  普通PCB

Arduino

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

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

Arduino

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

Arduino

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

Arduino

用于检测植物触摸并更改 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;
}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分