使用Arduino的自动饮水机

原文:https://circuitdigest.com/microcontroller-projects/arduino-automatic-water-dispenser

使用Arduino的自动饮水机

ARDUINO项目

经过**阿斯温斯·拉吉(Aswinth Raj)** 2018年8月14日修改
在这里插入图片描述使用Arduino的自动饮水机

大约71%的地球被水覆盖,但可悲的是,其中只有2.5%是饮用水。随着人口,污染和气候变化的增加,预计到2025年,我们将长期遭受水资源短缺的困扰。一方面,国家和州之间在共享河水方面已经存在一些小争议,另一方面,由于人类的疏忽,我们浪费了许多饮用水。

乍一看可能看起来并不大,但是如果您的水龙头每秒滴一滴水,那么您只需要花费大约五个小时就可以浪费一加仑的水,这对于一个普通的人来说可以生存两个小时天。那么该怎么做才能阻止这种情况?一如既往的答案在于技术的进步。如果我们用一个能自动打开和关闭的智能水龙头代替所有手动水龙头,则不仅可以节水,而且可以拥有更健康的生活方式,因为我们不必用脏手操作水龙头。因此,在此项目中,我们将使用Arduino和一个电磁阀构建自动饮水机,当附近放置玻璃时**,该电磁阀**可自动为您供水。听起来不错吧!所以让我们建立一个…

所需材料

  • 电磁阀
  • Arduino Uno(任何版本)
  • HCSR04 –超声波传感器
  • IRF540 MOSFET
  • 1k和10k电阻
  • 面包板
  • 连接线

工作理念

自动饮水机的概念非常简单。我们将使用HCSR04超声波传感器检查是否有任何物体将玻璃杯放置在分配器之前。电磁阀将用于控制水的流量,即在通电时水将流出,而在断电时水将被停止。因此,我们将编写一个Arduino程序,该程序始终检查是否在水龙头附近放置了任何物体,如果是,则电磁阀将打开并等待直到物体移开,一旦物体移开,电磁阀将自动关闭,从而关闭电磁阀。供水。在此处了解有关将超声波传感器与Arduino结合使用的更多信息。

电路图

基于Arduino的饮水机的完整电路图如下所示
在这里插入图片描述
本项目中使用的电磁阀是12V阀,最大额定电流为1.2A,连续额定电流为700mA。就是说,当打开阀门时,它将消耗约700mA的电流来保持阀门开启。众所周知,Arduino是一个以5V电压运行的开发板,因此我们需要一个开关驱动器电路来使电磁阀开启和关闭。

该项目中使用的开关器件是IRF540N N沟道MOSFET。它分别具有来自引脚1的3个引脚Gate,Source和Drain。如电路图所示,电磁阀的正极通过Arduino的Vin引脚供电。由于我们将使用12V适配器为Arduino供电,因此Vin引脚将输出12V,可用于控制电磁阀。电磁阀的负极通过MOSFET的source源极和Drain引脚接地。因此,只有在MOSFET导通的情况下,电磁阀才会通电。

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

超声波传感器是由Arduino的+ 5V和接地引脚供电。回声触发pin被连接到pin8和分别pin9。然后,我们可以对Arduino进行编程,以使用超声波传感器测量距离并在检测到物体时打开MOSFET。整个电路很简单,因此可以很容易地建立在面包板上。建立连接后,我的情况如下所示。

使用Arduino的自动饮水机的电路硬件

编程Arduino开发板

对于这个项目,我们必须编写一个程序,该程序使用HCSR-04超声波传感器测量物体前方的距离。当距离小于10cm时,我们必须打开MOSFET,否则我们必须关闭MOSFET。我们还将使用连接到引脚13的板上LED并将其与MOSFET一起切换,以便我们可以确保MOSFET处于打开还是关闭状态。完成此操作的完整程序在本页面的结尾。在下面,我通过将程序分成一些有意义的小片段来说明了该程序。

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

#define trigger 9
#define echo 8
#define LED 13
#define MOSFET 12

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

pinMode(trigger,OUTPUT); 
pinMode(echo,INPUT); 
pinMode(LED,OUTPUT); 
pinMode(MOSFET,OUTPUT);

在主循环函数内部,我们调用了名为measure_distance()的函数此功能使用US传感器测量物体在其前面的距离,并将该值更新为变量“*距离”*。要使用US传感器测量距离,触发引脚必须首先保持低电平2微秒,然后保持高电平10微秒,然后再次保持低电平2微秒。这将向空中发送超声波信号,并被其前面的物体反射,而回波针将拾取由其反射的信号。然后,我们使用时间获取值来计算物体在传感器之前的距离。如果您想了解更多有关如何将HC-SR04超声波传感器与Arduino连接,请阅读链接。下面给出了计算距离的程序

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关闭了阀门。您可以在下面的视频中找到该项目的完整工作。如果您对此无法解决有任何疑问,请将其发布在评论部分或使用论坛获取技术帮助。

警告: 不同的电磁阀具有不同的工作电压和额定电流,请确保您的螺线管工作在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;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值