基于压力传感器的水位报警器_第1页
基于压力传感器的水位报警器_第2页
基于压力传感器的水位报警器_第3页
基于压力传感器的水位报警器_第4页
基于压力传感器的水位报警器_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023年测控专业创新实践第二届自动化与电气工程学院仪器仪表设计竞赛设计报告设计题目:基于压力传感器的水位控制报警器队伍编号:323队员姓名:陈昊、吴天剑、张赟、董嘉仪年月日摘要控制器单片机,液位控制高度,报警、高度显示等功能,主要元器件时应变片,使其附着在容器外壁,使其具有与液面不接触的特点,可用于有毒、腐蚀性液体液位的控制,具有较高的研究价值。该控制器不仅可用于学校进行教学研究,还可用于生产实际,是目前比拟缺少的一种产品。由物理学原理可知,液体的压力是与液体的高度有关系的,当液体的高度越高,底部所受的压力也就越大,即P=ρhg,所以我们可以通过底部所受的压力来获取液面的高度,因此我们可以添加一个压力传感器,也就是常用的应变片,获取与液体地面所受的压力,由于应变片输出的电压量非常小,所以我们必须加放大器来将电压量变大,来提高他的灵敏度,由于单片机只能读取数字信号,而我们应变片输出的是模拟信号,所以得添加一个模数转换芯片来实现单片机对数据的读取,而后通过单片机实现对蜂鸣器和led报警灯的控制,实现液位报警,后期还可以在单片机的其他引脚添加点击可以实现自动的控制水位的高度,因为能力和时间有限,这里只做到报警,所以该作品还能继续改良,功能还能拓展。关键词:传感器;AD转换;控制器;外围硬件电路目录1.系统方案设计11.1课题分析11.1.1设计目的11.1.2液位的获取11.2总体方案设计11.2.1系统框图1总体设计实现1硬件设计22.1主要元器件原理22.1.1AT89C5122.1.2应变片32.1.3模数转换芯片HX71152.1.4显示屏LCD160273.软件设计83.1主程序流程图83.2子程序流程图93.3仿真电路图114.实验结果125.设计心得14参考文献15附录A16附录B17附录C181.系统方案设计1.1课题分析1.1.1设计目的运用目前所学的知识,设计一款可以实现无人监督的,液位报警器,利用51单片机,模数转换芯片,仪用放大器等元器件,运用自己所学的单片机技术,与模电技术等知识来实现目的,利用这次活动来是自己的所学的知识得到运用,加深所学的知识在脑海里的印象,并且可以通过实现来检验自己在课上所学的知识,对自己也是很大的锻炼。1.1.2液位的获取方案一:采用浮子获取液位,通过杠杆和浮子的链接可以实现对变阻器的控制,来获取不同的电压值,后传输到单片机。方案二:通过对液体的压力会随高度的改变而改变,故可以在底部添加应变片来获取压力来获取液面的高度。由于方案一会对场地要求比拟大所以不方便选择,于是选择方案二同时液位的显示也可以采用1602或者数码管,两者都可以做到,但都有利弊,可酌情选择。1.2总体方案设计1.2.1系统框图应变片模数转换器应变片模数转换器AT89C51单片机蜂鸣器蜂鸣器显示屏显示屏图1系统框图1.2.2总体设计实现将水箱放到应变片上,随着水位上升,总体重量也随之上升。通过其按压应变片产生的微小变化,来测定重量。通过模数转换器将模拟量转换成数字量并送到单片机中处理,然后根据其体积与高度的关系,进而来测定水位高度,显示在显示屏上,到一定高度通过蜂鸣器实现报警。2.硬件设计2.1主要元器件原理2.1.1AT89C51AT89C51是一种带4K字节FLASH存储器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的低电压、高性能CMOS8位微处理器俗称单片机。AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。如图2所示。图2AT89C51内部结构图3AT89C51实物图2.1.2应变片一般的应变片是在称为基底的塑料薄膜〔15-16μm〕上贴上由薄金属箔材料制成的敏感栅〔3-6μm〕,然后再覆盖上一层薄膜做成迭层构造。图4应变片模型将应变片贴在被测物上,使其随着被测定物的应变一起伸缩,这样里面的金属箔材就随着应变一起伸长或缩短。很多金属在机械性的伸长或缩短时其电阻会随之变化。应变片就是应用这个原理,通过测量电阻的变化而对应变进行测定。一般应变片的敏感栅使用的是铜铬合金,其电阻变化率为常数,与应变成正比例关系。即:其中,R:应变片原电阻值K:比例常数〔应变片常数〕Ε:应变不同的金属材料有不同的比例常数K。铜铬合金的K值约为2,这样应变的测量就通过应变片转换为对电阻变化的测量。表1应变片的参数量程〔kg〕3,15综合误差〔%F.S〕0.05额定输出温度漂移〔%F.S/10℃〕<=0.15灵敏度〔mv/v〕1.0±0.1零点输出〔mv/v〕±0.1非线性〔%F.S〕0.05输入电阻〔Ω〕1000±50重复性〔%F.S〕0.05输入电阻〔Ω〕1000±50滞后〔%F.S〕0.05绝缘电阻〔MΩ〕>=2000蠕变〔%F.S/3min〕0.05推荐鼓励电压〔v〕5-10零点漂移〔%F.S/1min〕0.05工作温度范围〔℃〕-10~+50零点温度漂移〔%F.S/10℃〕0.2过载能力〔%F.S〕1502.1.3模数转换芯片hx711hx711采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其他芯片相比,改芯片与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机本钱,提高了整机的性能和可靠性。特点:

两路可选择差分输入

片内低噪声可编程放大器,可选增益为64和128

片内稳压电路可直接向外部传感器和芯片内A/D转换器提供电源

片内时钟振荡器无需任何外接器件,必要时也可使用外接晶振或时钟

上电自动复位电路

简单的数字控制和串口通讯:所有控制由管脚输入,芯片内存放器无需编程

可选择10Hz或80Hz的输出数据速率

同步抑制50Hz和60Hz的电源干扰

耗电量〔含稳压电源电路〕:

典型工作电流:<

1.7mA,

断电电流:<

1µA

工作电压范围:2.6

~

5.5V

工作温度范围:-20

~

+85℃

16管脚的SOP-16封装图5SOP-61L封装表2管脚描述考前须知

所有数字输入管脚,包括RATE,XI和PD_SCK管脚,芯片内均无内置拉高或拉低电阻。这些管脚在使用时不应悬空。

2.建议使用通道A与传感器相连,作为小信号输入通道;通道B用于系统参数检测,如电池电压检测。

3.建议使用PNP管S8550与片内稳压电源电路配合。也可根据需要使用其他MOS或双极晶体管,但应注意稳压电源的稳定性。

4.无论是采用片内稳压电源或系统上其他电源,建议传感器和A/D转换器使用同一模拟供电电源。

5.PD_SCK的输入时钟脉冲数不应少于25或多于27,否那么会造成串口通讯错误。2.1.4显示屏LCD1602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动〔Static〕、单纯矩阵驱动〔Simple

Matrix〕和主动矩阵驱动〔Active

Matrix〕三种。1602LCD分为带背光和不带背光两种,基控制器大局部为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差异。本次设计采用16脚。图61602字符型液晶显示器实物3.软件设计3.1主程序流程图开始,AD转换器及显示器初始化,将数据送到AD转换器,之后判断AD转换是否完成,假设完成那么进行十进制转换调整,并输出。如图7所示。图7主程序流程图3.2子程序流程图十进制数据转换调整子程序流程图如图8所示图8十进制数据转换调整子程序流程图A/D转换流程图:启动转换,假设转换结束那么读取数据。如图9所示图9A/D转换流程图3.3仿真电路图protel仿真电路如图10,图11所示图10仿真电路图〔1〕图11仿真电路图〔2〕4.实验结果当水位高度为5时,显示屏上显示501;水位到达12之后,由于应变片出现非线性的变化,所以显示的示数有一定误差;水位到达15之后,蜂鸣器开始报警。图12水位高度为5图13水位过限报警5.设计心得通过本次设计,主要掌握了以下几个方面的知识:首先是各个芯片的功能和结构,其次是更加熟练的掌握了单片机方面的编程与调试。作为一个学生,发现我们掌握的知识是多么的疏浅,很多东西都是要重新拾起课本学习。另外自己钻研精神还不够,只想在一天之内得到满意的实验结果,不能沉下心一点点调试。现在想起来很惭愧,在设计的过程中发现了自己的缺乏之处,比方编程问题,仿真图形的连接和怎样去调试。经过这次设计实验,我收获了很多,除了一些新的知识外,还有就是一些新的领悟。例如做事情时不能太急功近利,要注重过程,要能够静下心来做一件事情。这次设计实验还验证了一个真理:实践出真知。通过自己亲手搜集资料、编程、仿真、调试、查错,整个过程下来虽然遇到过很多困难,但经过思考后的豁然开朗,以及对原有知识的更深层次的理解,是仅仅靠死读课本所学不来的。参考文献[1]刘军.单片机原理与接口技术.华东理工大学出版社[2]柳春.Protel99se实用教程.高等教育出版社[3]陈杰.传感器与检测技术.高等教育出版社附录A元器件清单组别器件名称器件型号个数单片机最小系统AT89c511单片机最小系统〔备用〕1电阻包2k2个,8k2个,10k4个蜂鸣器1电位器4.7k、10k2仪用放大器1三极管包1单片机89c512AD转换器HX7111排阻9脚1数码管4位假设干LED显示灯1应变片2显示器16021附录B基于压力传感器的水位控制报警器的实物图如下列图所示:图1实物图附录C#include"main.h"#include"HX711.h"#include"uart.h"#include"LCD1602.h"#defineucharunsignedchar#defineuintunsignedintunsignedlongHX711_Buffer=0;unsignedlongWeight_Maopi=0;longWeight_Shiwu=0;unsignedcharflag=0;bitFlag_ERROR=0;#if1sbitBEEP=P2^0;#endifuintGapValue=716;ucharflag2;sbitsda_24c16=P3^1;sbitscl_24c16=P3^0;voiddisplay_weight();voiddelay_3us();voidup_Key();voiddown_Key();voidnack_24c16();voidstop_24c16();voidstar_24c16();voidcack_24c16();voidmack_24c16();voidw1byte_24c16(ucharbyte1);ucharrd1byte_24c16(void);voidread_24c16();voidwrite_24c16();voidmain(){Uart_Init();Send_Word("Welcometouse!\n");Send_Word("Madeby!\n"); Init_LCD1602(); LCD1602_write_com(0x80);// LCD1602_write_word("Welcometouse!");LCD1602_write_word("yeweixianshi");Delay_ms(2000);read_24c16();Get_Maopi();while(1) { EA=0;Get_Weight(); EA=1;Scan_Key();up_Key();down_Key();if(Flag_ERROR==1) {Send_Word("ERROR\n"); LCD1602_write_com(0x80+0x40); LCD1602_write_word("waring"); }else {display_weight(); } }}//扫描按键voidup_Key(){if(up_key==0) {Delay_ms(5);while(up_key==0) {GapValue++;Get_Weight();display_weight(); } write_24c16(); }}//减小键voiddown_Key(){if(down_key==0) {Delay_ms(5);while(down_key==0) {GapValue--;Get_Weight();display_weight(); } write_24c16(); }}voiddisplay_weight(){Send_ASCII(Weight_Shiwu/1000+0X30);Send_ASCII(Weight_Shiwu%1000/100+0X30);Send_ASCII(Weight_Shiwu%100/10+0X30);Send_ASCII(Weight_Shiwu%10+0X30);Send_Word("10um\n"); LCD1602_write_com(0x80+0x40); LCD1602_write_data(Weight_Shiwu*3/1000+0X30);LCD1602_write_data(Weight_Shiwu*3%1000/100+0X30);LCD1602_write_data(Weight_Shiwu*3%100/10+0X30);LCD1602_write_data(Weight_Shiwu*3%10+0X30); LCD1602_write_word("10u");//下面5行显示的是校准参数,如果不显示直接删除下面5行LCD1602_write_com(0x80+0x40+8); LCD1602_write_data(GapValue/1000+0X30);LCD1602_write_data(GapValue%1000/100+0X30);LCD1602_write_data(GapValue%100/10+0X30);LCD1602_write_data(GapValue%10+0X30);}//扫描按键voidScan_Key(){if(KEY1==0) {Delay_ms(5);if(KEY1==0) {while(KEY1==0);Get_Maopi(); } }}voidGet_Weight(){Weight_Shiwu=HX711_Read();Weight_Shiwu=Weight_Shiwu-Weight_Maopi;if(Weight_Shiwu>0) {Weight_Shiwu=(unsignedint)((float)Weight_Shiwu/GapValue);if(Weight_Shiwu*3>1500) {Flag_ERROR=1; BEEP=0; }else {Flag_ERROR=0; BEEP=1; } }else {Weight_Shiwu=0; }}voidGet_Maopi(){Weight_Maopi=HX711_Read();}voidDelay_ms(unsignedintn){unsignedinti,j;for(i=0;i<n;i++)for(j=0;j<123;j++);}voiddelay_3us(){;;}voidnack_24c16(){sda_24c16=1;delay_3us();delay_3us();scl_24c16=1;delay_3us();delay_3us();scl_24c16=0;sda_24c16=0;}voidstop_24c16(){sda_24c16=0;scl_24c16=1;delay_3us();delay_3us();sda_24c16=1;delay_3us();delay_3us();scl_24c16=0;}voidstar_24c16(){sda_24c16=1;scl_24c16=1;delay_3us();delay_3us();sda_24c16=0;delay_3us();delay_3us();scl_24c16=0;}//****************************************************//功能:判断应答或非应答//说明:通讯出错时标志为1,否那么为0voidcack_24c16(){scl_24c16=0;sda_24c16=1;delay_3us();scl_24c16=1;flag2=0;//去除错误标志if(sda_24c16)flag2=1;scl_24c16=0;}//****************************************************//功能:发送应答信号voidmack_24c16(){sda_24c16=0;scl_24c16=1;delay_3us();delay_3us();scl_24c16=0;sda_24c16=1;}//*************************************************//功能:向24C16写入一字节的数据voidw1byte_24c16(ucharbyte1){uchari=8;while(i--){delay_3us();delay_3us();delay_3us();if(byte1&0x80){sda_24c16=1;}else{sda_24c16=0;}delay_3us();delay_3us();delay_3us();scl_24c16=1;delay_3us();delay_3us();delay_3us();scl_24c16=0;byte1<<=1;}}//****************************************************//功能:从24C16中读出一字节的数据ucharrd1byte_24c16(void)//;读1字节子程序(通用〕读出的数据存放在30H中{uchari;ucharddata=0;sda_24c16=1;//置IO口为1,准备读入数据for(i=0;i<8;i++){ddata<<=1;delay_3us();delay_3us();delay_3us();scl_24c16=1;if(sda_24c16)ddata++;delay_3us();delay_3us();delay_3us();scl_24c16=0;}returnddata;}//***************************************************//读数据操作voidread_24c16(){ucharx1,x2;read1:nack_24c16();star_24c16();/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论