时间:2019年01月05日 分类:电子论文 次数:
为保证水池液位一直处于安全位置以下,下面文章提出设计了一种以STC89C52单片机为控制芯片的超声波非接触式液位控制系统。该系统采用HC-SR04实现测距功能,温度采集用于声速补偿,固态继电器控制三相电动机通断,LCD1602作为显示界面,按键用于参数设定。测量距离不在设定范围内时,系统自动判断并控制三相电动机的启停,该系统实现了弱电控制强电,实现无人值守自动排水。
关键词:STC89C52,超声波,固态继电器,三相电动机,LCD1602
在现实生活中利用超声波测距的应用越来越多,超声波是一种非接触式的测距传感器。超声波指向性强,能量消耗缓慢且在介质中传播的距离较远。与其它测距方式相比,它不受天气、光线及被测物体颜色的影响。对于被测物处于烟雾、有灰尘、电磁干扰、黑暗等恶劣的环境下有一定的适应能力[1]。
该系统采用HC-SR04超声波传感器作为距离测量传感器,测量出与液位之间的距离,把测量数据显示在LCD1602上面,单片机通过测量的数据间接控制固态继电器,实现对三相电机的启停控制。该系统在测量的距离小于上限距离时,系统报警,同时启动三相电机自动排水,当系统测量的距离大于下限距离时,三相电机自动停止,系统距离阈值可根据实际情况设置。该系统实现了弱电控制强电,实现无人值守自动排水功能,减少了人工操作环节,避免了人工操作的安全隐患并且安装简单,成本低,具有很强的实用价值。
1系统设计原理
1.1系统工作原理
采用超声波测量距离,将距离显示在LCD1602上,通过按键设置水池水位的上端和下端的安全距离,当测量的距离低于上端的安全距离时,系统报警提示,同时单片机通过P2.0引脚输出低电平信号,触发小型直流继电器工作,小型直流继电器导通,从而触发固态继电器导通,三相电机将启动进行自动排水;当测量的距离低于下端的安全距离时,单片机通过P2.0引脚输出高电平信号,小型直流继电器停止工作,无输出信号,从而固态继电器不导通,三相电机将自动停止抽水。
1.2超声波测距原理
采用超声波测量传感器与水池水面之间的距离,当超声波传感器的发射端发出信号后,遇到水面,就会将信号反射回来,利用超声波的这种特性,采用时间差值检测法[2]进行对水池水面距离的测量。其测量原理是超声波发射端向水面方向发射超声波,在发射声波的同时开始计时。声波在空气中传播,碰到水面立即反射回来,超声波接收端接收到反射信号就立即停止计时。
根据计时器记录的传播时间及声波在空气中传播的速度,就可以计算出发射端距水面的距离,计算公式为:S=Vt/2,由公式V=331.5+0.607T,可以确定出安装使用环境下的声速V。公式中:S表示测量距离;t表示声波发射到声波返回的时间间隔;V表示声波在空气中传播的速度,其值受到环境温度的影响;T表示安装环境的温度(℃)[3]。将测量的距离在LCD1602上面显示出来。
2系统硬件电路设计图
本系统硬件电路设计主要分为:电源模块、单片机最小应用系统、温度模块、超声波模块、继电器模块、按键模块,1602LCD显示电路。
3系统软件设计
3.1系统程序流程图
该系统采用C语言模块化程序设计。系统程序主要包括温度采集模块、超声波测距模块程序、继电器模块程序、LCD显示模块程序、按键模块程序、报警模块程序等。
3.2主程序设计
程序采用模块化设计,进入主程序,首先检测蜂鸣器状态,初始化单片机IO口,初始化LCD1602和定时器,调用执行一次温度采集函数和超声波测距函数,LCD显示用户设定初始的上限和下限值。进入while循环,执行主程序。voidmain(){speaker=0;delay_1ms(200);P0=P1=P2=P3=0XFF;init_1602();time_init();get_temperature();ultrasouic_dis();write_lcd(2,3,Up);write_lcd(2,11,Down);while(1){get_temperature();ultrasouic_dis();write_lcd(1,8,distance);Relay();key();if(key_can<5){key_with();}}}
3.3温度采集程序设计
在本系统设计中采用DS18B20温度传感器采集环境温度,将采集的温度用于计算超声波测距的声速,补偿声速受环境温度的影响,提高测量距离的精确性。uintget_temperature(){floattemperature;uchara,b;delay_1ms(2);write_lcd_byte(0xcc);write_lcd_byte(0xbe);a=write_lcd_byte();b=write_lcd_byte();temp=b;temp<<=8;temp=temp|a;temperature=temp*0.0625;temp=temperature*100+0.5;returntemp;}
3.4超声波测距程序设计
首先超声波的发射端发射出一个超声波脉冲信号,延时10ms关闭脉冲信号,等待接收端接收返回的信号,开启定时器T0计时,当接收到信号后立即执行while(ultrasouic_recive)函数,利用计数器T0中的计数计算出被测液面与超声波测距仪之间的距离[4]。voidultrasouic_dis(){TH0=0;TL0=0;TR0=0;ultrasouic_send=1;delay();ultrasouic_send=0;while(!ultrasouic_recive);TR0=1;while(ultrasouic_recive){flag_time0=TH0*256+TL0;if((flag_time0>23530)){TR0=0;distance=888;break;}else{flag_ultrasouic_utility=1;}}if(flag_ultrasouic_utility==1){TR0=0;V=331.5+0.607*temp;distance=flag_time0/2*V;if((distance>400)){distance=888;}}}
3.5继电器程序设计
对测量的距离与用户设定的上限和下限距离相比较,当测量的距离小于用户设定的上限距离时,固态继电器吸合,此时启动三相异步电机;水位不断下降,当测量的距离大于用户设定的下限距离时,固态继电器断开,三相异步电机停止工作。voidRelay(){if(distanceDown)Relay1=1;}
4安装调试与应用
将制作好的超声波测距仪安装在应急排水池上方60cm处固定好,通过实验得到以下数据。通过实验数据表明,在有效数据测量范围内,测量距离与实际距离的误差均小于1.5%,满足系统设计要求。当系统测量的距离小于设定的安全距离上限时,电机自动启动进行排水,当系统测量的距离大于设定的安全距离下限时,电机自动停止排水。经过一段时间实际安装测试应用,该系统满足厂内自动排水要求,能够保证液面一直处于安全位置,避免了因积液而造成的安全隐患。
5结束语
通过超声波测量距离,实现了应急排水池的自动排水,保证液面一直处于安全位置,减少了人工操作环节,避免了人工操作的安全风险,避免了夜间水池液面超过安全距离而造成的危险。该测距自动排水系统设计简单,安装方便,实现无人值守自动排水的功能,在实际安装应用中取得很好的效果。
在硬件制作中充分考虑了三相交流固态继电器扇热性能,采用铝排安装固定并在接触面涂有散热硅胶,避免雨季因频繁启动过热而损坏继电器;考虑了环境温度对超声波声速的影响,采用DS18B20测量安装环境的温度,用于补偿超声波传感器声速受温度的影响,提高测量距离的精确性。该系统实现了弱电控制强电,具有抗干扰能力强,设计简单,安全可靠,精确度高、成本低和操作简单等特点,可以广泛应用于排水、防洪坑的自动排水。
参考文献:
[1]刘玉芹,刘敬文.超声波测距仪在移动机器人避障中的应用[J].仪器仪表学报,2006(S2):541-542.
[2]李航,王可人.基于STC89C52RC的超声波测距系统设计[J].电子测试,2010(1):55-58.
[3]唐万伟,张银蒲,申彦春.基于AT89S52单片机的超声波测距系统设计[J].唐山学院学报,2012(25):17-18,21.
[4]郭清.基于STC89C52的超声波测距防撞系统设计[J].仪表技术与传感器,2011(6):74-77.
相关期刊推荐:仪器仪表学报(月刊)创刊于1980年,是中国科协主管、中国仪器仪表学会主办,中国仪器仪表学科最具影响力的学术性刊物。