随着科技的不断发展,数字化技术在各个领域的应用越来越广泛。在液位监测领域,数字水位指示器作为一种先进的监测设备,因其高精度、高可靠性和智能化等特点,受到了广泛的关注和应用。
数字水位指示器是一种用于实时监测和显示液体水位的数字化设备。它利用先进的传感器技术和数字信号处理技术,将液体的水位高度转换为数字信号,并通过显示屏或其他输出设备直观地显示出来。数字水位指示器具有高精度、高稳定性、易读性和可扩展性等优点,广泛应用于水处理、工业生产、环境监测、农业灌溉等领域。
数字水位指示器的工作原理主要包括以下几个步骤:
数字水位指示器在液位监测领域发挥着重要作用,主要包括以下几个方面:
数字水位指示器广泛应用于以下领域:
水是宝贵的资源,因此我们需要更加有意识地利用和处理,大量的水由于处理不当而被浪费。本文给出了一个简单易行的利用Arduino制作的数字水位指示器电路。
该电路设计用于监测地下水箱和高架水箱的水位,并在16X2 LCD显示屏上显示水位,并根据我们需要的水位触发继电器并打开或关闭电机。
Arduino uno 板经过编程,可根据传感器接线(两个水箱中均无套管铝线)显示水位,并根据预定的水位控制蜂鸣器和继电器。
模拟引脚A0测量地下水箱的水位,A1、A2、A3、A4引脚测量高架水箱的水位,数字引脚D7控制蜂鸣器,当水箱满/空时发出声音警报,数字引脚D8控制继电器来打开或关闭电机。数字引脚 D2、D3、D4、D5、D11 和 D12 连接 16 X2 LCD 显示屏,控制电路上传和设置后可以连接外部 9V电池源。
Arduino代码
#include < LiquidCrystal.h >
int ugnd=A0;
int quarter=A1;
int half=A2;
int threfrth=A3;
int full=A4;
int relay=8;
int buzzer=7;
int i; //relay status flag
int v=100; //comparison variable and give some adjustment for to get proper value
int b=0; //buzzerzer flag
int m=0; //relay flag
int c=0; //ugnd flag
int s;
int q;
int h;
int t;
int f;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode(quarter,INPUT);
pinMode(half,INPUT);
pinMode(quarter,INPUT);
pinMode(full,INPUT);
pinMode(ugnd,INPUT);
pinMode(relay,OUTPUT);
pinMode(buzzer,OUTPUT);
lcd.begin(16, 2);
digitalWrite(buzzer,LOW);
}
void loop()
{
i=digitalRead(relay);
s=analogRead(ugnd);
q=analogRead(quarter);
h=analogRead(half);
t=analogRead(threfrth);
f=analogRead(full);
lcd.clear();
if(f >v && t >v && h >v && q >v ) //Statement to compare water levels from Arduino Analog pins
{
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("fullL");
m=0;
b=0;
}
else
{
if(f< v && t >v && h >v && q >v)//Statement to compare water levels from Arduino Analog pins
{
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 && t< v && h >v && q >v)//Statement to compare water levels from Arduino Analog pins
{
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 && t< v && h< v && q >v)//Statement to compare water levels from Arduino Analog pins
{
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 && t< v && h< v && q< v)//Statement to compare water levels from Arduino Analog pins
{
lcd.setCursor(0,0);
lcd.print("_");
lcd.print("_");
lcd.print("_");
lcd.print("_");
lcd.setCursor(5,0);
lcd.print("LOW");
b=0;
}
else
{
digitalWrite(relay,LOW);
lcd.setCursor(0,0);
lcd.print("ERROR!");
b=1;
}
}}}
if(i==HIGH)
{
lcd.setCursor(0,1);
lcd.print("relay ON");
}
else
{
lcd.setCursor(0,1);
lcd.print("relay OFF");
}
if(s >v && m==1)//Statement to compare water levels from Arduino Analog pins
{
digitalWrite(relay,HIGH);
}
if(s< v)
{
digitalWrite(relay,LOW);
lcd.setCursor(11,0);
lcd.print("Low");
lcd.setCursor(11,1);
lcd.print("ugnd");
c=1;
}
if(s >v)
{
c=0;
}
if(m==0)
{
digitalWrite(relay,LOW);
}
if(b==1 || c==1)//Statement to compare water levels from Arduino Analog pins
{
digitalWrite(buzzer,HIGH);
delay(500);
digitalWrite(buzzer,LOW);
}
else
{
digitalWrite(buzzer,LOW);
}
delay(100);
lcd.clear();
}
全部0条评论
快来发表一下你的评论吧 !