使用Arduino制作水位指示器和泵控制器是一个非常好的想法。我们可以利用传感器、电子设备和一些编程知识,使供水系统完全自动化。我们正在制作的水泵控制器会根据水位自动开关。此外,它还显示水位。
观看这个视频
组件要求:
- 超声波传感器x 1
- Arduino微控制器(UNO, Mini, Pro Mini)
- 液晶显示(16 × 2)
- 电位器x 1
- BJT (bc547晶体管)
- 电阻220Ω x 1
- 1kΩ电阻x 1
- 直流电机(水泵)
- 你可以通过在电路中添加一个5V继电器来控制一个交流230V电机。你可以通过BJT (bc547晶体管)控制继电器。
线路图:
电路图如图所示。
电路说明:
超声波传感器连接Arduino的数字输入引脚。Arduino在16 × 2 LCD上显示电机状态和水位。如果水位下降到100厘米以下,则电机启动。当水位超过40厘米时,单片机自动关闭电机。所以不会因为溢出而浪费水,而且全自动节省电力。电位器用来调节液晶显示器的亮度。我们用BJT BC547来驱动电机,可以用它来驱动继电器。
使用Arduino实现水位指示器的工作:
让我们通过代码来了解电路的工作原理。
#include#define ECHO 9 #define TRIGGER 10 #define TRIGGER_pulse 1 #define motor 11 int DURATION;浮动的距离;浮动DIST;浮动领导;液晶液晶(7,6,5,4,3,2);int num = 1;
在上面的代码中,我们包含了液晶显示库。它是一个内置库。你也可以使用I2C液晶库如果你有用于LCD的I2C模块。我们已经定义了回声、触发器和电机引脚。此外,我们已经声明了液晶显示器的引脚。距离值声明为浮点类型。
无效的设置(){//设置LCD的列数和行数:pinMode(TRIGGER, OUTPUT);pinMode(呼应,输入);pinMode(电动机、输出);Serial.begin (9600);液晶显示器。开始(16日2);液晶显示器。打印(“LevelApprox:”);}
在void设置循环输入和输出中,引脚已经声明。TRIGGER和motor设置为输出,ECHO为输入引脚。9600为Arduino与LCD电路串行通信的波特率。
无效循环(){digitalWrite(触发、高);触发器是给定一个逻辑高输入延迟(TRIGGER_pulse);延迟是给触发引脚digitalWrite(触发、低);逻辑高用于触发//查看接收响应脉冲需要多长时间DURATION = pulseIn(ECHO,HIGH);//以厘米为单位的距离距离= 0.01716* duracion;// d = ((100- distance)/100)*255;距离= 1.25*距离;以(距离);控制电机的代码if(DIST <= 40){digitalWrite(11、低);lcd.setCursor (0,1);液晶显示器。打印(" ");} if(DIST >=100){digitalWrite(11日高);lcd.setCursor (0,1);液晶显示器。打印(“水灌装”);}水位打印距离液晶显示器。setCursor (12,0);lcd.print (int(经销));延迟(1000);lcd.setCursor (12,0);液晶显示器。打印(" ");}
# include < LiquidCrystal.h >
#定义ECHO 9
#定义触发器10
#定义触发器
#定义电机
int持续时间;
浮动的距离;
浮动DIST;
浮动领导;
液晶液晶(7,6,5,4,3,2);
int num = 1;
无效设置(){
//设置LCD的列数和行数:
pinMode(触发、输出);
pinMode(呼应,输入);
pinMode(电动机、输出);
Serial.begin (9600);
液晶显示器。开始(16日2);
液晶显示器。打印(“LevelApprox:”);
/ / lcd.setCursor (0,1);
/ /液晶。打印(“:”);
}
无效循环(){
digitalWrite(触发、高);
延迟(TRIGGER_pulse);
digitalWrite(触发、低);
//查看接收响应脉冲需要多长时间
DURATION = pulseIn(ECHO,HIGH);
//以厘米为单位的距离
Distance = 0.01716DURACION;
/ /领导=(距离(100 -)/ 100)255;
距离= 1.25*距离;
以(距离);
if(DIST <= 40){
digitalWrite(11、低);
lcd.setCursor (0,1);
液晶显示器。打印(" ");
}
如果(DIST > = 100) {
digitalWrite(11日高);
lcd.setCursor (0,1);
液晶显示器。打印(“水灌装”);
}
液晶显示器。setCursor (12,0);
lcd.print (int(经销));
延迟(1000);
lcd.setCursor (12,0);
液晶显示器。打印(" ");
}
这是使用Arduino和泵控制器的水位指示器的最终代码。
我希望你喜欢学习,如果你有任何疑问或建议,请评论下来。
亲爱的,我想购买自动水位控制器,请分享价格和联系方式。
你可以在亚马逊或其他网站上买到。