Arduino水位控制器/指示器。
这篇文章是关于一个使用Arduino的全功能的水位控制器。电路显示水位在水箱和开关电机时,水位低于预定的水平。当油箱充满时,电路自动将马达关闭。在16×2 LCD显示屏上显示水位和其他重要数据。该电路还监测集水池(源水池)的水位。如果在水槽的侧面的水平是低的,电机将不会被打开,这保护电机从干运行。当水箱水位过低或传感器故障时,会发出“哔”声。
线路图。
使用Arduino实现的水位控制器电路图如图所示。采用导电法测量液位。传感器组件由四根铝线组成,分别位于油箱的1/4、1/2、3/4和全水平。这些线的干端分别连接到Arduino的模拟输入引脚A1、A2、A3、A4。第五根电线被放置在水箱的底部。电阻R6到R9是下拉电阻。这条线的干端连接到+5V DC。当水接触到一个特定的探针时,由于水有轻微的导电性,探针和+5V探针之间建立了电连接。结果,电流流过探头,电流被向下拉的电阻转换成成比例的电压。Arduino读取每个向下拉电阻的电压下降,以感知水箱中的水位。 Same method is used for measuring the level of water in the sump tank.
Arduino的数字引脚7控制蜂鸣器,数字引脚8控制电机。晶体管Q1驱动蜂鸣器,电阻R5限制Q1的基极电流。晶体管Q2驱动继电器。电阻R3限制Q2的基极电流。D2是一个自由流动二极管。POT R2用于调整LCD的对比度。电阻R1限制通过背光LED的电流。电阻R4限制电流通过电源上的LED。使用Arduino完成的水位控制器程序如下。
程序。
#includeint sump=A0;昆士兰科技大学int = A1;int hlf = A2;int四氢呋喃= A3;int富= A4;int电动机= 8;int蜂鸣器= 7;int年代;int问;int h; int t; int f; int i; //motor status flag int v=100; //comparison variable(needs some adjustment) int b=0; //buzzer flag int m=0; //motor flag int c=0; //sump flag LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { pinMode(qut,INPUT); pinMode(hlf,INPUT); pinMode(qut,INPUT); pinMode(ful,INPUT); pinMode(sump,INPUT); pinMode(motor,OUTPUT); pinMode(buz,OUTPUT); lcd.begin(16, 2); digitalWrite(buz,LOW); } void loop() { i=digitalRead(motor); s=analogRead(sump); q=analogRead(qut); h=analogRead(hlf); t=analogRead(thf); f=analogRead(ful); lcd.clear(); if(f>v && t>v && h>v && q>v ) { lcd.setCursor(0,0); lcd.print(char(219)); lcd.print(char(219)); lcd.print(char(219)); lcd.print(char(219)); lcd.setCursor(5,0); lcd.print("FULL"); m=0; b=0; } else { if(f v && h>v && q>v) { lcd.setCursor(0,0); lcd.print(char(219)); lcd.print(char(219)); lcd.print(char(219)); lcd.print("_"); lcd.setCursor(5,0); lcd.print("3/4th"); b=0; } else { if(f v && q>v) { lcd.setCursor(0,0); lcd.print(char(219)); lcd.print(char(219)); lcd.print("_"); lcd.print("_"); lcd.setCursor(5,0); lcd.print("HALF"); m=1; b=0; } else if(f v) { lcd.setCursor(0,0); lcd.print(char(219)); lcd.print("_"); lcd.print("_"); lcd.print("_"); lcd.setCursor(5,0); lcd.print("1/4th"); b=0; } else { if(f v && m==1) { digitalWrite(motor,HIGH); } if(s v) { c=0; } if(m==0) { digitalWrite(motor,LOW); } if(b==1 || c==1) { digitalWrite(buz,HIGH); delay(500); digitalWrite(buz,LOW); } else { digitalWrite(buz,LOW); } delay(100); lcd.clear(); }
关于这个节目。
Arduino使用analogRead功能通过模拟输入引脚读取传感器输出。例如,q=模拟读数(qut);将“四分之一”探头上的电压(范围0至5V)转换为数字(范围0至1023),并将其保存到变量“q”中。这样,每个探针处的电压被扫描到相应的变量。将这些变量与一个固定数字(此处为100)进行比较,以确定当前状况。实际上,100相当于0.48伏,如果特定传感器处的电压大于此值,则视为电气连续性,并假设水接触探头。固定数字(比较变量“v”)的值需要进行一些调整,因为水的电阻率在不同的地方会发生变化,并且传感器探头之间的间隙在不同的储罐中会有所不同。
笔记。
- 电路通过arduino板上的9V外置电源插孔供电。
- 电路中不同点所需的5V电压可从arduino板上的5V输出抽头。
- 探头采用优质铝线。不要使用铜线。
42评论
请列出图表中使用的项目
如果你不想包含LCD屏幕怎么办
这是char 219
请解释一下
如果可能的话,请逐行解释整个LCD程序
列出使用arduino的水位控制器的更多应用
先生,
我请求你根据我的需要在电路和代码中做一些改变:-
1)使用Atmega328和必要的组件,而不是UNO套件。
2)电机开/关只需开/关电平(不需要1/4、1/2、3/4、Full)。
3)干运行保护(当电机接通时,在规定的时间内没有水流到OHT时(时间通过可变电阻调节)
4) 流量指示灯、电机开启指示灯、电机关闭指示灯、集水坑无水指示灯应包括在内。
5)无流量时蜂鸣器启动,泵启动后复位开关重新启动
6)高/低电压切断,当电压正常时,系统继续工作。你好/低/正常领导指示。
问候
先生,
请在电路上增加干运行保护(带有可调时间,因为当电机开关接通时,水需要一段时间才能到达输出),并相应地改变代码(即。干跑截止,带LED指示灯和蜂鸣器报警。也请增加高/低电压截止电路,并进行必要的代码更改。
是否可以使用ATMEGA328P与引导加载程序(不使用UNO板),如果可以,请发送更新的电路与上述所有代码。
请尽快回复。
谢谢你!
问候
S.AHaleem
钦奈
电路图上没有电机。我们把马达放在哪里???
电机将连接在继电器的另一端
比较变量的值是根据什么选择的?
您好,管理员,请提及此电路中继电器的引脚。iam电子起动器。
如何将继电器连接到电机?
我可以连接12vdc DPDT继电器吗?
请用针尖来消除我的疑虑。
先生,我有急事。
先生,请告诉我如何用Arduino uno打开电机,以及我要用哪台电机。
我尝试了很多次,相同的电路+代码与调整变量v=100,但不工作
马达在哪里??水从集水坑被带到主水箱,或者默认情况下被注满??
我需要一个视频与这个项目的连接。你能提供吗?
你好
使用导电方法来感应水位是一个不好的选择。我为什么这么说?因为随着时间的推移,水会腐蚀一直浸泡在水中的金属区域,所以随着时间的推移,我们面临的是错误的感知。
我们可以使用雷达技术。这意味着我们将产生一些高频脉冲,并将其发射到目标的距离被测量。然后我们检测反弹的波并计算距离。尽管如此,无论我们接收到什么原始数据,我们都可以对其进行处理,以切换内容和显示文本。
因此,使用超声波传感器是一种可行的方法。HC-SR04
但是,如果我们使用HC SR-04,代码中还需要加入哪些额外的更改?
请问这里指的是哪根铝线?它们是氧化铝线和很多,请让我弄清楚。第二,这个项目是否已经建造和测试?设计电路时使用的电机规格是什么?
水泵开启时控制器正在复位。我想这是电磁干扰的缘故。如何解决这个问题需要帮助。
不错的工作。如果我不需要液晶接口和中间的两个探头(1/2和3/4)在顶槽,我将需要在软件上做什么改变?Pl的回复。
在电路图中,R6-R9的值是多少
这可以和超声波传感器一起使用在两个油箱里吗?
干得好!我现在在这条赛道上工作。一旦成功,我会通知你们的。
亲爱的,
真的,这个CKT非常好。
电路工作正常
谢谢
这是一个非常好的项目。它是100%工作。但电机时,水减少一半的水平。我想电机时,1/4的水平。请帮助我先生…。
当我试图上传代码到arduunio uno时,它显示“Sketch使用了3310字节(10%)的程序存储空间”,我不能上传它到arduino..我该怎么做请帮助CT。
长官,我想知道感应器会不会测量垃圾水平我是说街上的垃圾
是的,我们可以通过称重传感器或红外传感器知道垃圾的水平。
先生,
请问如何将16*2 LCD模块与arduino uno接口
你用什么软件来画电路和做仿真我是最后一年的学生想做这个项目作为我的最后一个项目
水位低,但电机没有启动
安装在我家的水位控制器坏了,我调整了这个电路来控制水位。我没有使用LCD,而是使用LED指示水位。
我有两个头顶的水箱-一个太阳能热水器和太阳能水箱的溢出装满了一个大的头顶水箱。当上面的油箱满时,泵关闭。
这个系统我用的是ATMEL8A板。
这个仪器工作了一段时间,比如说10分钟左右,然后事情就乱了套。水位的模拟读数不再可用–波动剧烈,泵间歇打开和关闭。当我重置微控制器(MC)时,系统可以正常工作一段时间。
头顶燃料箱距离MC约25英尺,太阳能燃料箱距离MC约35英尺。
我需要注意什么让它更稳定吗?
我使用AVR-Studio来开发代码。
谢谢inadvance。
亲爱的,
真的,这个CKT非常好,我今天从电路尝试了很多CKT,我发现所有的工作都很好,希望这个CKT工作,还没试过。
拉梅什
您的描述很好,但我有一些疑问,即哪个继电器适合驱动1hp自吸单套泵,以及如何连接?
告诉我有急事....,
你可以使用电路中提到的继电器来控制交流电路中使用的线圈控制隔离器(CCI)。继电器将控制隔离器的线圈侧,触点将照顾交流负载。它将看起来像一个MCB与附加的AB接触线圈。线路线圈电路通过9v继电器触点。
有没有更简单的方法连接水泵而不危及电路中的任何部件?
这就跟你问声好!我是电子学领域的新手,希望能做一个类似的电路。您能帮忙提出一个简单、便宜、耐用和自动化(最大安全性)的电路原型设计方案吗?谢谢你!
我有两台交流电机,一台用于地下储水,另一台用于空中储水。
我开始储存水在地下水箱一旦它来在指定的时间间隔,只有隔天,它需要8-10小时的水箱完全装满。
有时甚至会发生这样的情况:地下储罐的水泵(在不知情的情况下)还在运行,在指定的时间内,公用事业单位的水供应在给储罐加油时结束了。在这种情况下,马达毫无用处地运转,直到有人亲眼看到水流,然后把它关掉。
在我看到有大量的水存在于污水坑,然后只有我打开另一个电机,以填补高架油箱,否则它会烧毁电机。如果油箱完全空了,90分钟后就会加满。在这种情况下,也必须在电机完全充满后及时关闭电机,以防止溢出。
对于这个电路,我想知道水位使用5个LED指示器(空,1/4,1/2,3/4,满)为我的两个水箱。
更重要的是,电路中的手动开关将是它的加分点。这样,如果电路出了故障,我就能把电动机直接连接到电源上。
均为2马力电机,交流220V
图中主罐下面的另一个罐有什么用
@sanjeev -这是一个水池,用来代表水源(比如井或池塘)。如果在水槽的侧面的水平是低的,电机将不会被打开,这保护电机从干运行。
先生,
从上方的槽中取出的铝感测棒的感测线的最大长度是多少,我们可以用于arduino的输入。
我们能对这个电路使用其他的传感装置吗?
我们需要使用arduino c的PCB用于水位控制器