0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于Arduino开发板和电磁阀的自动饮水机制作方案

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

来源: elecfans
2021-01-20
类别:工业控制
eye 22
文章创建人 拍明

原标题:基于Arduino开发板和电磁阀的自动饮水机制作方案

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

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

  

1.jpg


  所需的材料

  ●电磁阀

  ●ArduinoUno开发板

  ●HCSR04-超声波传感器

  ●MOSFET场效应管IRF540

  ●1k和10k电阻

  ●面包板

  ●连接导线

  工作原理

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

  电路原理图

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

  

image.png


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

  该项目中使用的开关器件是IRF540NN沟道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。整个电路很简单,因此可以很容易地在面包板上构建。在建立连接后,看起来像下面这样的东西。

  image.png

  编程Arduino开发板

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

  #definetrigger9

  #defineecho8

  #defineLED13

  #defineMOSFET12

  在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关闭了阀门。如果您对此工作过程有任何疑问,请在本帖下面进行回复。

  

1.jpg


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

  代码

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

  #definetrigger9

  #defineecho8

  #defineLED13

  #defineMOSFET12

  floattime=0,distance=0;

  voidsetup()

  {

  Serial.begin(9600);

  pinMode(trigger,OUTPUT);

  pinMode(echo,INPUT);

  pinMode(LED,OUTPUT);

  pinMode(MOSFET,OUTPUT);

  delay(2000);

  }

  voidloop()

  {

  measure_distance();

  if(distance<10)

  {

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

  }

  else

  {

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

  }

  delay(500);

  }

  voidmeasure_distance()

  {

  digitalWrite(trigger,LOW);

  delayMicroseconds(2);

  digitalWrite(trigger,HIGH);

  delayMicroseconds(10);

  digitalWrite(trigger,LOW);

  delayMicroseconds(2);

  time=pulseIn(echo,HIGH);

  distance=time*340/20000;

  }


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯