资源描述
徵或和总此二卷学晓Chengdu University of Information Technology控制工程学院集中实践环节课程 工作记录及成绩评定册自动检测系统设计1项目名称:嵌入式液位自动检测装置指导老师:项目负责人:项目组成员:学号姓名2014 年6 月26日控制工程学院制嵌入式液位自动检测装置 摘要随着社会的发展我们的生活不断向自动化、 智能化方向发展,在生活中很多 地方都要求我们对液位进行测量以满足我们生产生活的各种要求。通过本文的研究,总结出了压力传感器实现液位测量的优势: 体积小,实际 应用系统简单实用,成本低,效益好;具有较高的性能价格比;系统不易受到干 扰,可靠性高。同时基于嵌入式的测量系统具有实时性强、可移植性好,便于二 次开发开发。将测量技术应用到实际生产过程做了有益的尝试也为液位测量提供 了有参考价值的设计思路。关键词:传感器;传感器技术;液位测量;嵌入式系统;Automatic detection device embedded levelAbstractWith the development of the society we live we to automation, intelligent direction, in many places in life we are required to measureliquid level to meet a variety of production and living our requirements.Through this research, summed up the advantages of pressure sensor for liquid level measurement:small size, practical application system is simple and practical, low cost, good benefits; to have the high performance price ratio; the system less susceptible to interference, high reliability. At the same time measurementsystem based on embedded system has strong real-time performance, good portability, convenient for the two development. The measurementtechnique is applied to the actual production process and do some beneficial attempt also provides a valuable reference idea for liquid level measurement.Keywords: sensor; sensor technology; liquid level measurement; embedded system;设计说明书目录论文总页数: 15 页1 .引言 12 .设计要求 13 .方案比较与论证 13.1 超声波测量 13.2 电阻式测量 13.3 压差法测量 13.4 压力传感器概述 23.5 传感器选型 24 .硬件系统设计 34.1 信号调理电路 34.2 AD 采集电路 44.3 嵌入式模块电路 65.1 软件设计 65.2 AD 采集与信号处理 65.3 串口 95.4 数据采集 105.5 显示 116.数据误差 136.1 数据测量与校准 136.2 误差分析 14参考文献 151 .引言随着社会的发展我们的生活不断向自动化、 智能化方向发展, 在生活中很多地方都要求我们对液位进行测量以满足我们生产生活的各种要求。 我们这次的课 题研究液位的测量方法与实现通过对液位的测量研究使用嵌入式系统完成液位的测量。2 .设计要求( 1)制作一个单面板,实现液位测量。注意,该题目测试不严格要求精度,但能直观的测量出液位( 2)该测量板可以带处理器、串口与TQ2440 相连,也可直接相连,最后需在 TQ2440 中得出测量数据(3)技术指标:测量范围0150cm,分辨率3cm3 .方案比较与论证3.1 超声波测量超声波测量通过换能器将电功率脉冲转换为超声波, 射向液面, 经液面反射后再由换能器将该超声波转换为电信号。 超声波是机械波, 传播衰减小, 界面反射信号强, 且发射和接收电路简单, 因而应用较为广泛; 但超声波的传播速度受 介质的密度、浓度、温度、压力等因素影响,其测量精度较低。3.2 电阻式测量电阻式测量方法特别适用于导电液体的测量, 敏感器件具有电阻特性, 其电阻值随液位的变化而变化, 通过电阻值变化值变化可以的得到电压值的变化经过校准即得到液位。 同时也可以通过浮力用探针式利用跟踪测量法来测量液位, 以液位上升的情形为例来说明液位测量原理, 当液位上升时, 提起探针完全脱离液体, 然后缓慢降低探针寻找液面, 则探针与液体刚接触时的位置即与液位相对应。探针式的特点是测量精度很高、控制电路复杂。3.3 压差法测量我们都知道液体会在容器里会产生压力且压强P= p gH在液体密度均匀不变的情况下p、g保持不变,液位的高度H和压强P成正比,通过压强的变化我 们可以得到液位高度。 我们可以用压力传感器来测量水压的变化来测量液位。 通 过这种方法测量液位精度高、测量稳定维护方便,是比较成熟的液位测量方法。 我们这次课题采用压差法测量液体液位,提高测量精度简化外围电路设计。潮位显示,图3-1系统框图通过压力传感器测量水压,由于传感器输出信号比较微弱我们通过差分方式 输入仪表放大器进行放大,将信号放大到05V然后用STC12C5A60S2进彳TAD 采集,并进行数据的采集滤波。最后通过串口将数据发送到TQ2440开发板上进行数据显示。3.4 压力传感器概述在各类传感器中压力传感器具有体积小、重量轻、灵敏度高、稳定可靠、成 本低、便于集成化的优点,可广泛用于压力、高度、加速度、液体的流量、流速、 液位、压强的测量与控制。除此以外,还广泛应用于水利、地质、气象、化工、 医疗卫生等方面。由于该技术是平面工艺与立体加工相结合,又便于集成化,所以可用来制成血压计、风速计、水速计、压力表、电子称以及自动报警装置等。压力传感器已成为各类传感器中技术最成熟、 性能最稳定、性价比最高的一类传 感器。压力传感器是用于测量液体与气体的压强的传感器。压力传感器工作时将压 力转换为电信号输出。随着微电子工业的迅速发展,单片机控制的智能型控制系 统作为压力传感器的一种被广泛应用于电子产品中, 为了使自己对单片机控制的 智能型控制系统有较深的了解。经过综合分析选择了由单片机控制的智能型液位 控制系统作为研究项目,通过训练充分激发自己分析问题、 解决问题和综合应用 所学知识的潜能。并且,液位控制在高层小区水塔水位控制, 污水处理设备和有 毒,腐蚀性液体液位控制中也被广泛应用。3.5 传感器选型传感器我们选用MPS20N0040D-S,它是一款SMD封装的产品。此款产品 被广泛应用于与气压相关的产品。并且具有良好的可重复性和长时间的工作稳定 性。量程040KPa,线Tt度0.3%,其内部结构为一个电桥可有效的抑制共模干 扰,同时也可以进行在线校准提高精确度。传感器外部安装1根直径为5mm的软管,一端安装在被测液位底部;另一端与传感器连接。水箱水位高度发生变化 时,引起软管内气压变化,输送到A/D转-Output-Output+ Input-Input+ Output图3-2传感器内部结构图然后传感器把气压转换成电压信号,换器。4 .硬件系统设计4.1 信号调理电路水箱水位高度发生变化时,引起软管内气压变化,然后传感器把气压转换成 电压信号,电压信号经过放大电路,单片机采集到输出信号就可以判断出液位高 度。1N CV DD,C AP +OSC,G NDLV,C AP -VoICL 76 60ICL 134VCCC4R291K5-LC2=C 1C5C2-5VCC104D3工.VCC图4-1信号调理电路如图4-1所示,为信号调制信号电路图,液位变化引起传感器 MPS20N0040D-S输出电压信号有微弱的变化,将微弱的信号用 INA282仪表运 放将信号放大,单片机采集INA282输出信号,INA282采用双电源供电,放大更精确,ICL7660为正压变负压芯片,将+5V转变为-5V。D3为电源指示灯图4-2信号调理电路实物图4.2 AD采集电路通过压力传感器测量水压,通过差分方式输入仪表放大器进行放大, 将信号 放大到0 5 V然后用STC12C5A60S2进彳TAD采集,并进行数据的采集滤波。 最后通过串口将数据发送到 TQ2440开发板上进行数据显示。J1C6105+5TU2C81053-4-56IN 7OUTC9|105C1+VCCV+GNDC1-MAOU23C2+1C inC2-151out2Cin 251out1615 14 13T2 11 10 9C10105P31P30h,图4-3 AD采集电路如图4-3所示,为AD采集电路和单片机用口电路,单片机选择 STC12C5A60S2,单片机采集INA282放大过后的电压,再通过内部滤波,再通 过串口发送出去,选择芯片为 MAX232.图4-4单片机实物电路图4.3 嵌入式模块电路嵌入式模块选择天嵌公司的TQ2440开发板,开发板详细资料和电路接口见 其他资料。RTCSlave 备静电池Host电菱精座复收检处GPIO 接口Jiag4 口244。林。枚东优惠栽抽口用户中新桂岐电也开美Ad好人可调电随CMOSH像头#。电濠注示打RJ45同卦左手,三小4o(TTL)AT24co2*4 极下面USS #男 队“遗 Nor/Nand“人*领输出逸择开更6郴一*蜂鸣JtAcd电用户Led拄02Led林。I SD+施旦it算就式 Led打,嗯基PWM挂电11 IWWILi -,犯图4-3 TQ2440嵌入式开发板TQ2440开发板上有用口( RS232), AD采集电路板上也纯在用口 ( RS232), 将两个串口接在一起,两个电路板经过程序控制,就实现串口通信,能够把水位 高度先通过STC12C5A60S2采集,再通过串口发送到 TQ2440开发板,然后再 通过QT显示出液面高度。5.1. 件设计5.1 AD采集与信号处理我们通过STC12C5A60S2单片机自带的AD采集气压传感器的变化程序流 程图如图:开始图5-1 AD采集程序流程图=0x91; IO输出模式寄存器特殊功能寄存器说明sfr ADC_CONTR = 0xBC;sfr ADC_RES = 0xBD;sfr ADC_RESL = 0xBE;sfr P1ASF = 0x9D;sfr P1M0 = 0x92;sfr P1M1主要代码说明1、ADC初始化/ADC控制寄存器/ADC结果寄存器高位/ADC结果寄存器低位/P1 口模拟功能控制寄存器/IO输出模式寄存器void InitADC()/设置P1 口为 AD 输入口/清零结果寄存器/ADC 控制寄存器设置1000 1000-即开启P1ASF=0xff;ADC_RES=0;ADC_RESL=0;ADC_CONTR=0x88;ADC 的电源, 540 时钟转换周期Delay(2);/延时一段时间让ADC 的电源稳定/ ADC_CONTR=0x88;/开启 ADC 转换,选择通道0AUXR1&=0xfb;/将 ADRJ 置 0P1M0 = 0x01;P1M1 = 0x01;2、开始AD 转换uint AD_get(uchar channel)ES = 0;ADC_CONTR=0x88|channel;/ 开启 AD/要经过4 个 CPU 时钟/等待转换完/ 关闭 AD/返回AD 转换完成的 8 位转换 1000 1000 即 POWER SPEED1 SPEED0 ADC_FLAG ADC_START CHS2CHS1 CHS0_nop_();_nop_();_nop_();_nop_();ADC_CONTR 寄存器while(!(ADC_CONTR&0x10);成ADC_CONTR&=0xe7;转换, ADC_FLAG 位由软件清0ES = 1;return(ADC_RES);数据3.滤波与液位换算void Get_ADdate()float res;uint res1;res = AD_work(channel1);/ Clr_lux();res1=res*10000;res1 = 5300 - res1;res1 = res1 / 5;lux0=res1/10000+0;lux4=c;lux5=m;lux1=res1%10000/1000+0;lux2=res1%1000/100+0;lux3=res1%100/10+0;/lux5=res1%10+0;lux6=0;send_com(lux);send_char(n);/send_char(0x0d);/send_char(0x0a);/Delay(100);我们通过采集100 次 AD 值进行均值虑波提高数据精度。5.2 串口通过单片机采集的数据用串口发给TQ2440 进行处理。串口初始化设置定时器1 工作方式 2 波特率设置为 9600.void Init_UART()TMOD = 0x20;SCON = 0x50;PCON = 0x00;TH1 = 0xfd;TL1 = 0xfd;TR1 = 1;/ SM0 = 0;/ SM1 = 1;/ REN = 1;EA = 1;ES = 1;/ 设置定时器1 工作方式 2/ 启动定时器1/打开总中断5.3数据采集主函数主要代码如下:#includeAD.h#include UART.h /#include reg51.h void INIT();void main()Delay(100); Init_UART();InitADC();send_com(12345); while(1)Get_ADdate(); Delay(500);开始V结束 i图5-2主程序流程图5.4显示(1)设置波特率本项目中首先使用gedit test.cpp命令打开test.cpp文件,修改串口设备号。使用串口 2进行数据交互。lL/IJ-TJjrE 映UaMUEWt1J7 J4M UIU UJtBst.cpp (/mnt/hgfs/lmages/SfiOOIihija) - gedit文件任)ima()查香(心 炼 工具口)文档1口)帮助出1-P Y 2 邑:呵苑就逮 打开 保存 HIP-查找 瞽摸* test.cpp XsetNaimf test j:resize( 596r 490 );settaptjon ( tr( htesf ) );TextBnowserL - new QTextBrowser( this, TextBrnseri卜Textsnowserl.-setGeometry( ORect( 6% 5G, 35L 151 );serial fd =opert(/dev/ttySAC?, o_rdwr,o); /open serial, if TQ2440ruse /dev/tty$AC2, fcntl(rislJdd f_SETFL, 0MNRl6uQ;收复曲口束阻香状套/下面设置娜率警to fl廿$h ($erial_fdF tcioflush) ; /WSi堞存 cfsetispeed(Mpt, 8960G);/tSf 幅入波特零 c f se to speed (Mpt, BgbGGh,/设置牖出波将军 tcsetattrfseriaWd, TCSANOW. Sflpt);“靠活配置使其生效 tc flush ($erjal_fdF tuqflu弱)W,副赖蚌人舞存,,其他设置可以使用线筝tcgetsttr(serial_fdr &oLdOpt);Opt.C_Cflag |= (CLGCAL|CREAD);Opt二Rag 6=5IZE;Optrc_cflag |= CS8;Opt.CcfUg &= PARENB;J行 K - 22ISAH| . rootHKMX:mnt4igfc/tnages/96MWtiui |第 Lee匕cpp(nrigHlfnE5/9EDU/lihuaj 一野面七图5-3设置波特率修改函数 serial_fd = open(*/dev/ttySAC2*,0_PDWR,0);选择用 口号 2.修改波特率下面嫉置波特率等tcflj sh (se rial_fd, TCIOFLUSH);涮新近理存 cfsetispeed(,Opt,旧96钝;/设置输入波特率 cfsetospeed(&Opt, B960);“设置输出波特率 tcsetattr( serial_fdf TCSANOW, &Opt);翻船曙使其生效 tcfljshfserial_fd, TCIOFLUSH);涮新输入堤存“其也设置可以使用缺省._ _图5-4设置波特率主要代码这里仅仅使用数据输入,只需 cfsetispeed(&0pt,B9600);(2)编译arm版本的test.使用 make 命令编译完成后,应用程序“test在/opt/EmbedSky/Qte/arm-qtopra-2.2.0/qtopia/opt/Qtpia/bin下,桌面图标 test.png在/opt/EmbedSky/Qte/arm-qtopra-2.2.0/qtopia/opt/Qtpia/pics启 动器 test.desktop 在/opt/EmbedSky/Qte/arm-qtopra-2.2.0/qtopia/opt/Qtpia/apps/EmbedSky/T .然后使 用。将这三个文件分别考到TQ244开发板上相应文件夹下。重启生效。图5-5液位显示效果图6.数据误差6.1 数据测量与校准我们通过实验完成了液位测量,采用AD采集得到了气压传感器的电压值但 是不能得到我们需要测量的液位高度,我们采用米尺测量校准得到了液位高度。 下面是测量数据。表6-1测量数据校准实际液位(cm)测量液位(cm)56109151720222528303150538081通过测量我们将测量误差控制在 3cm以内,并在TQ2440上进行了液位显示 完成了设计要求。图6-1液位校准6.2 误差分析可以看出本次课程设计制作的液位检测装置精度不是很高误差到达 3cm,由 于本次设计不强调精度在器件选型方面, 选用了精度较低的器件。误差主要由以 下几个方面。(1) AD精度不够高压力传感器输出信号比较微弱且当距离在小范围内变化( 0-10cm)时电压 值的变化很小,这就要求我们 AD的精度较高能够分别出10mv内电压的精确变 化,我们选用的STC12C5A60S2单片机AD位数为8位,不足以精确测量液位。(2)气压测量存在误差压差法测量液位高度需要测量起始气压然后通过做差得到液位高度。如果起始气压测量不准缺也会造成测量不准。(3)受环境影响由于外界环境温度不同也会使气压有所不同,同时在不同的密度液体里也会使压强不一样,在不同地域重力常数也会影响气压值。参考文献1 王俊峰 ,孟令启.现代传感器应用技术M. 北京 :机械工业出版社,2007.2 范晶彦 .传感器与检测技术应用 M. 北京 :机械工业出版社,2005.3 宋文绪 ,杨帆 .自动检测技术M. 北京 :高等教育出版社 ,2000.4 周航慈 .单片机应用程序设计技术M. 北京:北京航空航大大学出版社, 2005.5 徐惠民 ,安德宁.单片微型计算机原理接口与应用M 北京:北京邮电大学出版社, 1996.6 刘侃 ,张永泰,刘洛琨 .ARM 程序设计优化策略与技术J 单片机与嵌入式系统应用 ,2004,(04).7 徐千洋 .LinuxC 函数库参考手册 .M 中国青年出版社 .2002.8 杜春雷 .ARM 体系结构与编程M. 清华大学出版社.20039 邹思铁 .嵌入式 Linux 设计与应用 M. 北京清华大学出版社.2002
展开阅读全文