0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Arduino开发板和电磁阀的自动饮水机制作

电子设计 来源:一板网 作者:风筝 2021-01-13 16:45 次阅读

大约71%的地表都被水覆盖,但遗憾的是只有2.5%的水是可以饮用。随着人口增加、污染严重以及气候变化,预计到2025年我们将遇到长期的水资源短缺。一方面,各国和各州之间就共享河水已经发生了轻微的争议,另一方面,由于我们的疏忽,人类浪费了大量的饮用水。

刚开始时可能问题不大,但如果你的水龙头每秒滴一滴水,你只需要花费大约五个小时就可以浪费一加仑水,这对普通人来说是足够的水来生存两个天。那么可以做些什么来阻止这种情况呢?一如既往,答案就在于技术的进步。如果我们用自动打开和关闭的智能水龙头替换所有手动水龙头,我们不仅可以节约用水,还可以拥有更健康的生活方式,因为我们不需要用脏手操作水龙头。因此,在这个项目中,我们将使用Arduino开发板和电磁阀制作一个自动饮水机,当杯子放在它附近时,它可以自动放满水。听起来很酷吧!那么让我们建立一个......

所需的材料

● 电磁阀

● Arduino Uno开发板

● HCSR04 - 超声波传感器

MOSFET场效应管IRF540

● 1k和10k电阻

● 面包板

● 连接导线

工作原理

自动饮水机背后的概念非常简单。我们将使用HCSR04超声波传感器检查饮水机前是否有物体,如玻璃杯。电磁阀将用于控制水流,当通电时水将流出,当断电时水将停止。因此我们将编写一个Arduino程序,它始终检查是否有物体放置在水龙头附近,如果是,则电磁阀将打开并等待物体被移除,一旦物体被移除,电磁阀将自动关闭,从而关闭供水。

电路原理

基于Arduino的饮水机的完整电路图如下所示

pIYBAF_-snCAAmdgAALoQg5R90s559.png

本项目使用的电磁阀是12V阀门,最大额定电流为1.2A,额定电流为700mA。也就是说,当阀门打开时,它会消耗大约700mA的电流来保持阀门开启。我们知道Arduino开发板是一个以5V工作的开发板,因此我们需要一个开关驱动电路,让电磁阀开启和关闭它。

该项目中使用的开关器件是IRF540N N沟道MOSFET。它有3个引脚,分别是栅极、源极和漏极。如电路图所示,电磁阀的正极端子由Arduino的Vin引脚供电。因为我们将使用12V适配器为Arduino供电,因此Vin引脚将输出12V,可用于控制电磁阀。电磁阀的负极端子通过MOSFET的源极和漏极引脚连接到地。因此,只有在MOSFET导通时才会为电磁阀供电。

MOSFET的栅极引脚用于打开或关闭它。如果栅极引脚接地,它将保持关闭状态,如果施加栅极电压,它将导通。为了在没有电压施加到栅极引脚时保持MOSFET关断,栅极引脚通过10k电阻接地。 Arduino引脚12用于打开或关闭MOSFET,因此D12引脚通过1K电阻连接到栅极引脚。该1K电阻用于限流目的。

超声波传感器由Arduino的+ 5V和接地引脚供电。 Echo和Trigger引脚分别连接到引脚8和引脚9。然后我们可以对Arduino进行编程,使用超声波传感器测量距离,并在检测到物体时打开MOSFET。整个电路很简单,因此可以很容易地在面包板上构建。在建立连接后,看起来像下面这样的东西。

o4YBAF_-sn2APFZNAAUzk5gcOZk527.png

编程Arduino开发板

对于这个项目,我们必须编写一个程序,该程序使用HCSR-04超声波传感器来测量物体前方的距离。当距离小于10cm时,我们必须打开MOSFET,否则我们必须关闭MOSFET。我们还将使用连接到引脚13的板载LED并将其与MOSFET一起切换,以便我们可以确保MOSFET是处于开启还是关闭状态。接下来,我将其分解为小的有意义的片段来解释该程序。

该程序以宏定义开始。我们有超声波传感器的触发和回声引脚,MOSFET栅极引脚和LED作为我们Arduino的I / O。所以我们已经定义了它们将连接到哪个引脚。在我们的硬件中,我们将Echo和Trigger引脚分别连接到第8和第9个数字引脚。然后MOSFET引脚连接到引脚12,默认情况下板载LED连接到引脚13。我们使用以下代码定义引脚

#define trigger 9

#define echo 8

#define LED 13

#define MOSFET 12

在setup函数中,我们声明哪些引脚是输入的,哪些是输出的。在我们的硬件中,只有超声波传感器的Echo引脚是输入引脚,其余都是输出引脚。因此我们使用Arduino的pinMode函数来指定如下所示

pinMode(trigger,OUTPUT);

pinMode(echo,INPUT);

pinMode(LED,OUTPUT);

pinMode(MOSFET,OUTPUT);

在主loop函数内部,我们调用了名为measure_distance()的函数。此功能使用超声波传感器测量物体前方的距离,并将值更新为变量“distance”。要使用超声波传感器测量距离,必须首先将触发引脚保持低电平两微秒,然后保持高电平持续10微秒并再次保持低电平持续2微秒。这将向空气中发出超声波信号的声波,它将被前方的物体反射,回声引脚将拾取由它反射的信号。然后我们使用时间值来计算传感器前方物体的距离。计算距离的程序如下

digitalWrite(trigger,LOW);

delayMicroseconds(2);

digitalWrite(trigger,HIGH);

delayMicroseconds(10);

digitalWrite(trigger,LOW);

delayMicroseconds(2);

time=pulseIn(echo,HIGH);

distance=time*340/20000;

一旦计算出距离,我们就必须使用简单的if语句比较距离值,如果值小于10cm,我们会使MOSFET和LED变为高电平,在紧接着的else语句中我们将MOSFET和LED设置为低电平。程序如下所示。

if(distance<10)

{

digitalWrite(LED,HIGH);digitalWrite(MOSFET,HIGH);

}

else

{

digitalWrite(LED,LOW);digitalWrite(MOSFET,LOW);

}

自动饮水机的工作过程

按照电路中所示进行连接,并将下面给出的程序上传到Arduino开发板。做一些简单的安装,将电磁阀连接到进水口,并使用12V适配器将电路连接到Arduino板的DC插孔。确保板载LED指示灯熄灭,这样可确保电磁阀也关闭。

如您所见,我已将超声波传感器直接放置在电磁阀下方,这样当玻璃杯放置在电磁阀下方时,它会直接与超声波传感器相对。超声波传感器将探测到这个物体,并且MOSFET和LED一起打开,从而使电磁阀打开,水流下来。

同样,当移除玻璃杯后,超声波传感器告诉Arduino开发板,它前面没有玻璃杯,因此Arduino关闭了阀门。如果您对此工作过程有任何疑问,请在本帖下面进行回复。

o4YBAF_-spCAJ3LFAAagdu6QY40690.png

注意:不同的电磁阀有不同的工作电压和额定电流,确保电磁阀工作在12V,最大功耗不超过1.5A。

代码

本篇文章使用的完整代码如下所示:

#define trigger 9

#define echo 8

#define LED 13

#define MOSFET 12

float time=0,distance=0;

void setup()

{

Serial.begin(9600);

pinMode(trigger,OUTPUT);

pinMode(echo,INPUT);

pinMode(LED,OUTPUT);

pinMode(MOSFET,OUTPUT);

delay(2000);

}

void loop()

{

measure_distance();

if(distance<10)

{

digitalWrite(LED,HIGH);digitalWrite(MOSFET,HIGH);

}

else

{

digitalWrite(LED,LOW);digitalWrite(MOSFET,LOW);

}

delay(500);

}

void measure_distance()

{

digitalWrite(trigger,LOW);

delayMicroseconds(2);

digitalWrite(trigger,HIGH);

delayMicroseconds(10);

digitalWrite(trigger,LOW);

delayMicroseconds(2);

time=pulseIn(echo,HIGH);

distance=time*340/20000;

}
编辑:hfy

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

    关注

    13

    文章

    483

    浏览量

    30754
  • 超声波传感器

    关注

    18

    文章

    551

    浏览量

    35598
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184813
  • Arduino开发板

    关注

    0

    文章

    8

    浏览量

    7375
收藏 人收藏

    评论

    相关推荐

    请问电磁阀关断时如何保护电路不被高压损坏?

    现在做了一个板子,单片机通过io口控制三极管,进而控制外部电磁阀的通断。采用三极管集电极开路的方式外接电磁阀。 当电磁阀关断时,可能会由于感应电动势产生较高的电压损坏三极管,如何做好保护呢? 1.在
    发表于 04-24 08:03

    维修饮水机

    维修饮水机 家里饮水机用久了不加热线路好的 检查溫控管好的.加热胆坏了 网上购买一个换上 指示灯恢复加热 修复成功
    发表于 02-27 15:55

    电磁阀控制器如何控制电磁阀

    电磁阀控制器是指利用智能控制技术来控制电磁阀的设备,主要功能是可以使电磁阀控制系统达到所需的自动控制要求,从而达到一定的水力控制,实现对系统的智能控制和监控功能。
    的头像 发表于 01-03 16:57 527次阅读
    <b class='flag-5'>电磁阀</b>控制器如何控制<b class='flag-5'>电磁阀</b>?

    光电液位传感器在饮水机中的应用

    应用在饮水机的液位检测,采用哪种传感器合适?
    的头像 发表于 12-07 16:15 332次阅读
    光电液位传感器在<b class='flag-5'>饮水机</b>中的应用

    光电液位开关在饮水机中的作用

    光电液位开关在饮水机中发挥着重要的作用。首先,光电液位开关能够实时监测饮水机中的液位,确保饮水机在缺水或满水时能够及时停止或启动。这有助于避免因缺水或满水而引起的设备故障,保证饮水机
    的头像 发表于 11-20 15:02 233次阅读

    宠物饮水机缺液提醒的原理是什么

    一些宠物饮水机为了美观,会将宠物饮水位置设计为透明,而底部补水的部分是采取不透明的,要想实现检测,会采用电容式液位开关,当水箱缺水时,传感器检测到无水给出缺水信号。
    的头像 发表于 11-14 17:38 266次阅读
    宠物<b class='flag-5'>饮水机</b>缺液提醒的原理是什么

    电磁阀怎么控制开关的大小?

    怎么用单片机控制电磁阀的开关大小
    发表于 10-30 06:06

    饮水机也能离线语音控制

    通过在饮水机中安装离线语音模块,我们可以通过简单的语音指令来控制饮水机的开关、温度调节、水量控制等功能
    的头像 发表于 09-26 14:29 1121次阅读
    <b class='flag-5'>饮水机</b>也能离线语音控制

    基于单片机的饮水机温度控制系统设计

    本次设计为一个基于单片机的饮水机的温度控制系统,该系统可以实时检测饮水机水箱的水温,并且可以通过数码管显示饮水机水箱水温度数,可以通过键盘或开关选择制冷或加热,可以人为设置水的温度的上下限,如加热
    发表于 09-26 07:25

    从传统饮水机到智能即热饮水机

    电子发烧友网报道(文/黄山明)水是生命之源,饮水是我们每天的日常习惯,除了瓶装水以外,烧水饮用成为生活中的常态。而饮水机作为可以便捷烧热水工具,也开始被引入到千家万户。从过去的传统饮水机,到直
    的头像 发表于 08-22 01:12 1627次阅读

    饮水机低液位提醒功能是如何实现的

    饮水机低液位提醒功能是通过光电液位传感器实现的。光电液位传感器内置了红外发射管和光敏接收器,并且其检测部位是棱镜结构。 当饮水机处于无水状态时,光电液位传感器会发出红外光。这些光线经过透镜后会
    发表于 08-15 14:11

    沐渥共享饮水机开发让饮用水更放心

    共享饮水机是指基于共享经济模式,将饮水机资源进行共享的服务,区别于传统饮水机,它是一款集物联网控制、远程上报、设备检测等为一体的设备。通过共享饮水机,用户可以方便地获得新鲜的饮用水而不
    的头像 发表于 08-09 15:02 522次阅读
    沐渥共享<b class='flag-5'>饮水机</b><b class='flag-5'>开发</b>让饮用水更放心

    电磁阀是怎么控制气缸的

    电磁阀
    YS YYDS
    发布于 :2023年07月07日 19:25:14

    基于STM32的智能饮水机系统设计

    随着智能化的迅速发展,人们对于生活中的各类设备也越来越有智能化的需求,其中智能饮水机是一种比较常见的设备。智能饮水机不仅可以提供饮用水,还可以通过智能化的技术满足人们对于水质、水温、出水量等方面的需求。因此,当前设计了一种基于STM32的智能
    的头像 发表于 05-23 09:13 3017次阅读
    基于STM32的智能<b class='flag-5'>饮水机</b>系统设计

    Wifi如何控制电磁阀

    房子的管道,我决定放置一个通过 nodemcu 控制的电磁阀。虽然就在房子的 wifi 信号范围内,但我们不想让阀门断电,因此设计为使用太阳能/电池。因此,我们用 12vdc 闭锁螺线管更换了通常
    发表于 05-22 09:10