收藏 分销(赏)

水温自动控制新版系统.docx

上传人:精**** 文档编号:2754168 上传时间:2024-06-05 格式:DOCX 页数:45 大小:737.19KB
下载 相关 举报
水温自动控制新版系统.docx_第1页
第1页 / 共45页
水温自动控制新版系统.docx_第2页
第2页 / 共45页
水温自动控制新版系统.docx_第3页
第3页 / 共45页
水温自动控制新版系统.docx_第4页
第4页 / 共45页
水温自动控制新版系统.docx_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、电子技术综合设计设计汇报设计题目: 水温自动控制系统 组长姓名: 学 号: 专业和班级: 工业自动化14-16班 姓 名: 学 号: 专业和班级: 工业自动化14-16班 姓 名: 学 号: 专业和班级: 工业自动化14-16班 时 间: 年第(1)学期 指导老师: 陈烨 成 绩: 评阅日期: 一、 课题任务设计并制作一个水温自动控制系统,对1.5L净水进行加。水温保持在一定范围内且由人工设定。细节要求以下:1.温度设定范围为4090 ,最小分辨率为0.1,误差1。2.可经过LCD显示器显示温度目标值和实时温度。3.能够经过键盘调整目标温度数值。二、 方案比较1. 系统模块设计为完成任务目标,

2、能够将系统分为以下多个部分:5V直流电供电模块、测温模块、80C52单片机控制系统、键盘控制电路、温度显示模块、继电器控制模块、强电加热电路。经过各模块之间相互配合,能够完成水温检测、液晶显示、目标值设置、水温控制等功效。系统方框图以下:2. 5V直流电供电模块方案一:直接用GP品牌9v电池,然后接经过三端稳压芯片7805稳压成5伏直流电源提供给单片机系统使用,接两个5伏电源滤波电容后输出。方案二:经过变压器,将220v市电转换成9v左右交流电,变压器输出端9V电压经桥式整流并电容滤波。要得到一个比较稳定5v电压,在这里接一个三端稳压器元件7805。因为需要给继电器提供稳定5V电压,而方案一中

3、造成电池过分损耗,无法稳定带动继电器连续工作,所以我们选择能够提供愈加稳定5v电源方案二。3. 测温模块经查阅资料,IC式感温器在市场上应用比较广泛有以下多个:AD590:电流输出型测温组件,温度每升高1 摄氏度,电流增加1A,温度测量范围在-55 150之间。其所采集到数据需经A/D 转换,才能得到实际温度值。DS18B20:内含AD转换器,所以除了测量温度外,它还能够把温度值以数字方法(9 B i t ) 送出,所以线路连接十分简单,它无需其它外加电路,直接输出数字量,可直接和单片机通信,读取测温数据。它能够达成0.5固有分辨率,使用读取温度暂存寄存器方法还能达成0.0625以上精度,温度

4、测量范围在-55125 之间,应用方便。SMARTEC感温组件:这是一只3个管脚感温IC,温度测量范围在-45 13,误差能够保持在0.7 以内。max6225/6626:最大测温范围也是-55+125,带有串行总线接口,测量温度在可测范围内误差在4以内,较大,故舍弃该方案。本设计选择DS18B20感温IC,这是因其性能参数符合设计要求,接口简单,内部集成了A/D 转换,测温更简便,精度较高,反应速度快,且经过市场考察,该芯片易购置,使用方便。下面是DS18B20感温IC实物和接口图片4. 80C52单片机控制系统AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes可

5、反复擦写Flash只读程序存放器和256 bytes随机存取数据存放器(RAM),器件采取ATMEL企业高密度、非易失性存放技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存放单元,AT89C52单片机在电子行业中有着广泛应用。5. 键盘控制电路方案一:四键设定,一个十位控制键,一个个位控制键,一个位控制键,一个确定键,经过四键配合设定为度,该方案接线和程序简单,但实际操作不太便捷。方案二:矩阵键盘设定,经过按键输入不一样数字实现温度设定,电路连接比较简单,程序较方案一复杂,但已经在学习过程中接触过矩阵键盘编程技巧,有一定可行性,且操作起来愈加符合我们日常习惯。此次

6、设计暂定采取矩阵键盘来作为温度设定电路输入。6. 温度显示模块方案一:使用数码管显示,经过数码管显示被测温度和设定温度。该方案程序简单,且已学习过其编程技巧,但硬件占用单片机I/O口较多,对于尽可能节省端口,让线路简单来说不是好方法,而且显示也不够直观灵活,只能显示数字,。方案二:使用液晶屏1602显示。1602可显示两行字符及数字,能够用来显示设定温度及测量温度,较之数码管显示愈加清楚直观,即使以前没有接触过相关知识,但该器件上手比较轻易,能够在短期内学会其使用方法。1602较之数码管愈加符合此次设计要求,所以使用1602作为显示器件。7. 继电器控制模块方案一:采取一般控制方法,即水温温度

7、抵达临界温度时,控制继电器开闭。但因为水温改变快,且惯性大,不易控制精度。 方案二:采取PWM控制加PID算法,经过采取PWM能够产生一个波形,而PWM波形占空比是经过PID算法调整,这么就能够经过控制加热电路开、断时间比来控制加热器功率进而控制温度改变,从而使精度提升。此方法中硬件上能够使用固态继电器或晶闸管控制加热器工作。我们选择方案二。三、 电路设计1. 电源电路整个系统需要使用5V直流电和220V交流电。电源电路采取变压器和稳压模块,将工频电压降为5V直流电,为系统供电。首先用变压器模块20V交流电降为9V交流电,接入整流电桥,变为直流电输出,再使用三端稳压芯片7805稳压为5V。L7

8、805输出端要联上电解电容,滤除交流电干扰,预防损坏单片机系统。LM7805最大能够输出1A电流,内部有限流式短路保护,短时间内,比如几秒钟时间,输出端对地(2脚)短路并不会使7805烧坏。2. 温度传感器DS18B20温度传感器只有三根外引线:单线数据传输总线端口DQ ,外供电源线VDD,共用地线GND。外部供电方法(VDD接+5V,且数据传输总线接4.7k上拉电阻,其接口电路以下图(外接电源工作方法)所表示。3. 单片机最小系统单片机最小系统,或称为最小应用系统,是指用最少元件组成单片机能够工作系统.对51系列单片机来说,最小系统通常应该包含:单片机、晶振电路、复位电路4. 按键、显示电路

9、这部分实际上是一个单片机最小系统基础电路,键盘选择矩阵键盘可满足要求,经过按键输入不一样数字实现温度设定。在显示方面选择常见1602液晶显示模块。经过对应程序,能够实现温度实时显示,电路连接也比较简单,只需连接数据总线,和三根控制线即可实现数据控制,实现显示功效。1602显示电路5. 继电器温控单片机驱动继电器通断,从而比较轻易实现对小功率电热棒加热。本系统利用继电器吸合是否来实现水温自动化控制。此次设计采取型号为JRC-21F继电器。其特点有:(1).超小型,低功耗;(2).触点型式:1H,1Z(1A.AC);(3).触点负载:2A,120VAC;(4).外型尺寸:15.7X10.4X11.

10、4图是驱动较大功率继电器接口,当p1.1(连接单片机输出口)输出低电平时,Q1导通,继电器吸合;当p1.1输出高电平时,Q1截止,继电器断开。因为继电器吸合时电流比较大,所以在单片机和继电器之间增加了光电耦合器件作为隔离电路。R3是光电耦合输出管限流电阻,R4是驱动管Q1基极泄放电阻。整体硬件电路见附录四、 程序设计程序结构包含:主程序、传感器测温程序、lcd1602显示程序、键盘扫描程序、PID计算程序、PWM波形发生程序。主程序步骤图以下所表示:传感器测温程序步骤图:lcd1602显示程序步骤图:键盘扫描程序步骤图:温度比较和PID计算程序步骤图:PWM波形发生程序(定时器中止)步骤图:五

11、、 测试方案1.静态测试:室温状态下,分别用温度计和18B20传感器检测水温,观察二者是否有误差。2.动态测试:用继电器控制“热得快”对1升水加热,用键盘设定需加热温度值,观察、统计1602显示器上实时水温值改变过程和每次改变温度设定值后PID调整超调量。数次调试并和修改PID参数来完善该系统。检验水温稳定值是否满足设计目标要求。六、 系统调试1.加热水量和加热器功率确定加热器水量和功率应该组成匹配,加热水量过多或功率过小会造成加热时间过长,而加热水量过少或功率过大会使超调增大,不利于控制。我们选择1L容器作为测试对象,估计将20摄氏度水加热到100摄氏度需要5分钟。经过计算这么加热器功率最少

12、为1120w,所以选择1000w加热管。满足1L容器很多,不过广口盆水位较低,不利于加热管安放。经过努力,找到了适宜容器(实物见附件),恰能使得加热棒处于最为适宜水位深度。2.上下层温差优化和电动机电源选择电动机本不在设计范围里面,不过伴随系统调试进行,发觉容器中水极难实现热均匀。容器中上下层温差过大,造成温度传感器所测数据极不正确,滞后过大,很不利于控制。所以又添加一个直流减速电机带动桨叶加速冷热水对流,从而让容器里面水受热均匀,方便测温模块对系统水温实时监测。这一额外电动机没有在事先考虑器件电气匹配范围内,所以当它和加热模块一同共用5v直流电源时,已超出了整流模块所能提供最大电流,于是又添

13、加了一个电源给电动机供电。3. PID程序修改调试当实际水温和目标值差距过大时,加热器只需满功率工作(或完全停止工作)即可满足要求。此时采取PID控制意义不大,且PID控制范围很大,参数极难整定,而微分步骤也轻易受到干扰造成加热器无法满功率运行。所以,在满足控制精度前提下,可将PID控制范围缩小到设定温度1之内。范围缩小后,PID参数轻易调整,控制效果显著增强。经过调试后PID参数分别为Proportion = 10,Integral = 8,Derivative =6。4.PWM波周期调试PWM波周期越短,控制精度越高。但PWM波形输出需要单片机中止程序进行控制,中止频率过高会干扰单片机中主

14、程序运行。测温模块18B50对时间要求很严格,所以测温模块读取数据期间会和中止程序冲突。若18B20读数期间许可中止中止会造成其温度输出出现大量错误;若不许可中止会造成PWM波周期频繁改变。经过调试,将PWM波周期设为5s。七、 数据测试和处理1.静态温度测试室温状态下,分别用温度计和18B20传感器检测水温,得到结果分别为。温度计显示17.5,18B20传感器显示温度17.9,在误差许可范围内,满足要求。2.动态温度测试:令测温系统工作,对1.5L净水加热,设定温度分别为50,60, 80,每10s统计一次显示器幕上数据,绘制其温度改变曲线,并计算温度控制超调量,稳态误差。温度数据及曲线以下

15、:(1) 目标温度50度:时间(10s)01234567温度()303030.130.531.13232.733.5时间(10s)89101112151718温度()34.535.336.137.138.140.642.343.2时间(10s)1920212324252627温度()44.14545.847.648.449.149.750.8时间(10s)2829303132333435温度()51.251.651.851.851.851.851.851.7时间(10s)3639404346515457温度()51.651.351.150.850.650.550.350.1时间(10s)606

16、3646668697072温度()5049.849.950.150.550.750.750.7时间(10s)7578818487889091温度()50.550.450.250.149.949.85050时间(10s)92温度()50超调量为3.6%(2) 目标温度60度:时间(10s)01234567温度()5050.551.151.852.653.554.155时间(10s)89101112131415温度()55.856.657.558.358.959.860.361.2时间(10s)1617181920212427温度()61.561.661.661.661.561.461.160.8

17、时间(10s)3032333436374041温度()60.460.260.16059.86060.260.3时间(10s)4245474850525354温度()60.360.2606059.859.960.160.3时间(10s)5657温度()60.460.3超调量为2.5%(3) 目标温度80度:时间(10s)01234567温度()6060.861.462.162.863.764.565.3时间(10s)89101112131516.5温度()66.166.867.668.369.170.371.372.4时间(10s)1819212223242526温度()73.574.375.6

18、76.47777.778.478.9时间(10s)2728293031323334温度()79.580.180.380.580.580.380.280.1时间(10s)35363738.539404142温度()79.879.679.479.379.379.379.479.4时间(10s)4344454647484950温度()79.579.679.779.879.9808079.9时间(10s)5152535455565758温度()79.779.679.679.679.779.779.880时间(10s)5960616263温度()80.180808080超调量为0.6%由以上温度曲线能够

19、看出,水温能够保持在设定温度上下,控制过程中超调量4%,且稳态时误差在为0.3,满足系统设计要求。八、 设计总结经过此次应用系统设计,在很大程度上提升了我们独立思索、分析判定和动手实践能力,也对系统设计过程和设计过程中应注意问题有了初步认识,加深了我们对所学知识了解。出于对本身知识及可获取学习资源考虑,我组此次电子综合设计选题最终定为水温自动控制系统设计,该题目为往年电设题目,参考资料较易获取且基础未超出我们现掌握知识水平。在参考了书本及网络上设计思想以后,我们确定了该系统设计方案初稿,并讨论了设计方案可行性。讨论确定出试验所需器材和组员分工,由一名组员进行程序编写,另外两名组员进行硬件电路焊

20、接及调试。经过几次检验、调试和修改以后,基础实现了此次设计部分预期目标:可经过LCD显示器显示温度目标值和实时温度,能够经过键盘调整目标温度数值等功效。在系统调试过程中,碰到部分问题:1.因为一开始没有估量好器件占用空间,所购万用板太小,无法满足试验要求,以后又换用了一个较大万用板。在最小系统焊接完成后,因为没有搞清楚按键内部接线,使单片机一直处于复位状态,无法正常工作,后用万用表排查出该错误。2.在加热控制器件选择上花费了较多精力,开始设计方案是用光电耦合器配合双向晶闸管利用PWM波控制加热功率来实现温度稳定,但在硬件试验时发觉控制导通无法实现,且电压、电流余量有限,不能满足设计要求。便换用

21、了固态继电器配合三极管来实现功率控制。3.在完成基础功效后,发觉因为水温分布不均匀,温度传感器无法立即检测到水温改变以改变加热功率,减小超调量,又在原系统中增加了电机搅拌器以使水温分布均匀。4. 在PID参数整定中,发觉初始PID算法过于简单,造成被控变量误差和稳定性均较差。一般位置PID算法极难满足水温控制系统要求。查阅资料后,缩小了PID控制范围,在满足控制精度前提下,温控范围缩小到设定温度1之内。范围缩小后,PID参数轻易调整,控制效果显著增强。这些问题处理帮助我们融合所学知识,极大提升了我们动手能力。经过对本设计反思总结,加深了对机械,单片机,自动控制等多方面知识了解,也激发了我们对电

22、子设计极大爱好,这对我们以后学习生活有着十分关键作用。 九、 参考文件1.刘海成.AVR单片机原理及测控工程应用 .北京航空航天大学出版社2.周润景 刘晓霞.单片机实用系统设计和仿真经典实例.电子工业出版社3.谢维成 杨加国.单片机原理和应用及C51程序设计.清华大学出版社4.大学生电子设计竞赛组委会.第五届全国电子设计竞赛获奖作品选编.北京理工大学出版社5.黄志伟 全国大学生电子设计竞赛系统设计。北京航空航天出版社6.51黑电子论坛 十、 附录1. 电路原理图2.程序#include #include#include#include#define uchar unsigned char#de

23、fine uint unsigned intsbit DQ =P27; /定义端口sbit RS=P25;sbit RW=P24;sbit EN=P23;sbit output=P20;sbit P0_0=P00;sbit P0_1=P01;sbit P0_2=P02;sbit P0_3=P03;uchar flag;/flag为温度值正负号标志单元uchar c2;/18b20直接输出量 uint cc,cc2;/变量cc为18b20输出量直接计算值,cc2为放大100倍温度值 float cc1;/cc1为温度值uchar buff110=Set temp: ;/1602屏显示uchar

24、buff210=Cur temp: ;/1602屏显示uchar set_c2=5,0;/用于温度设置及1602屏显示uchar buff36=+00.0 ;/1602屏显示uchar temper,set_temper=50;/temper用于PID测量值(整数),set_temper用于PID参考值uint s;/PID测量值(小数)struct PID unsigned int SetPoint; / 设定目标 unsigned int Proportion; / 百分比常数 unsigned int Integral; / 积分常数 unsigned int Derivative; /

25、 微分常数 unsigned int LastError; / Error-1unsigned int PrevError; / Error-2unsigned int SumError; / Sums of Errors;struct PID spid; / 创建PID结构uint rout; / PID Outputuint rin; / PID Inputunsigned char high_time,low_time,count=0;/占空比调整参数void delay(uint useconds) /延时程序 for(;useconds0;useconds-);uchar ow_re

26、set(void) /复位(18B20) uchar presence; DQ = 0; / DQ 低电平 delay(50); / 480ms DQ = 1; / DQ 高电平 delay(3); / 等候 presence = DQ; / presence 信号 delay(25); return(presence); / 0许可, 1严禁 uchar read_byte(void) /从单总线上读取一个字节(18B20) uchar i; uchar value = 0; for (i=8;i0;i-) value=1; DQ = 0; DQ = 1; delay(1); if(DQ)v

27、alue|=0x80; delay(6); return(value);void write_byte(uchar val) /向单总线上写一个字节(18B20) uchar i; for (i=8; i0; i-) / 一次写一位 DQ = 0; DQ = val&0x01; delay(5); DQ = 1; val=val/2; delay(5);void Read_Temperature(void) /读取温度(18B20) ow_reset(); write_byte(0xCC); / 跳过 ROM write_byte(0xBE); / 读 c1=read_byte();/低字节

28、c0=read_byte();/高字节 ow_reset(); write_byte(0xCC); write_byte(0x44); / 再次开始 cc=c0*256.0+c1;/ 18b20输出量直接计算值 if (c00xf8) flag=1;cc=cc+1;else flag=0; cc1=cc*0.0625; /计算出温度值 cc2=cc1*100;/温度值放大100倍,放在整型变量中便于取数字c0=(c04; temper=c0|c1;/温度值整数部分delay(1000);/用于PID测量温度值 return;void fbusy()/检验忙函数(1602)P1 = 0xff;R

29、S = 0;RW = 1;EN = 1;EN = 0;while(P1 & 0x80)EN = 0;EN = 1;void wc51r(uchar j)/写命令函数(1602) fbusy();EN = 0;RS = 0;RW = 0;EN = 1;P1 = j;EN = 0;void wc51ddr(uchar j)/写数据函数(1602) fbusy();/读状态;EN = 0;RS = 1;RW = 0;EN = 1;P1 = j;EN = 0;void init()/1602初始化wc51r(0x01); /清屏wc51r(0x38); /使用8位数据,显示两行,使用5*7字型wc51

30、r(0x0c); /显示器开,光标开,字符不闪烁wc51r(0x06); /字符不动,光标自动右移一格void display(void) /1602显示程序1(初始化显示)uchar k;delay(10); init();wc51r(0x80); /写入显示缓冲区起始地址为第1行第1列for (k=0;k10;k+)/第一行显示提醒信息Set temp: wc51ddr(buff1k);for (k=0;k2;k+) wc51ddr(set_ck);/显示设定温度wc51r(0xc0); /写入显示缓冲区起始地址为第2行第1列for (k=0;k10;k+) /第二行显示提醒信息Cur t

31、emp: wc51ddr(buff2k); buff31=cc2/1000+0x30; if ( buff31=0x30) buff31=0x20;/取出十位,转换成字符,假如十位是0不显示。 buff32=cc2/100%10+0x30;/取出个位,转换成字符 buff34=cc2/10%10+0x30;/取出小数点后一位,转换成字符 if (flag=1) buff30=-;else buff30=+; for (k=0;k6;k+)/第二行显示温度 wc51ddr(buff3k); void display2(void) /1602显示程序2(循环显示)uchar k;delay(10)

32、;wc51r(0xca);buff31=cc2/1000+0x30;if ( buff31=0x30) buff31=0x20;/取出十位,转换成字符,假如十位是0不显示。 buff32=cc2/100%10+0x30;/取出个位,转换成字符 buff34=cc2/10%10+0x30;/取出小数点后一位,转换成字符 if (flag=1) buff30=-;else buff30=+; for (k=0;k6;k+)/第二行显示温度 wc51ddr(buff3k);uchar scan_key()/键盘检测程序,16个按键输出序号116uchar set_num=0;uchar dushu,

33、dushu1;P0=0xff;P0_0=0;/扫描第一行dushu=P0;dushu=dushu&0xf0;if(dushu!=0xf0)delay(900);dushu=P0;dushu=dushu&0xf0;if(dushu!=0xf0)dushu1=dushu;while(dushu!=0xf0)dushu=P0;dushu=dushu&0xf0;delay(900);dushu=P0;dushu=dushu&0xf0;while(dushu!=0xf0)dushu=P0;dushu=dushu&0xf0;if(dushu1=0xe0)set_num=1;else if(dushu1=0

34、xd0)set_num=2;else if(dushu1=0xb0)set_num=3;else if(dushu1=0x70)set_num=4;P0_0=1;delay(900);P0_1=0;/扫描第二行dushu=P0;dushu=dushu&0xf0;if(dushu!=0xf0)delay(900);dushu=P0;dushu=dushu&0xf0;if(dushu!=0xf0)dushu1=dushu;while(dushu!=0xf0)dushu=P0;dushu=dushu&0xf0;delay(900);dushu=P0;dushu=dushu&0xf0;while(du

35、shu!=0xf0)dushu=P0;dushu=dushu&0xf0;if(dushu1=0xe0)set_num=5;else if(dushu1=0xd0)set_num=6;else if(dushu1=0xb0)set_num=7;else if(dushu1=0x70)set_num=8;P0_1=1;P0_2=0;/扫描第三行dushu=P0;dushu=dushu&0xf0;if(dushu!=0xf0)delay(900);dushu=P0;dushu=dushu&0xf0;if(dushu!=0xf0)dushu1=dushu;while(dushu!=0xf0)dushu

36、=P0;dushu=dushu&0xf0;delay(900);dushu=P0;dushu=dushu&0xf0;while(dushu!=0xf0)dushu=P0;dushu=dushu&0xf0;if(dushu1=0xe0)set_num=9;else if(dushu1=0xd0)set_num=10;else if(dushu1=0xb0)set_num=11;else if(dushu1=0x70)set_num=12;P0_2=1;delay(900);P0_3=0;/扫描第四行dushu=P0;dushu=dushu&0xf0;if(dushu!=0xf0)delay(900);dushu=P0;dushu=dushu&0xf0;if(dushu!=0xf0)dushu1=dushu;while(dushu!=0xf0)dushu=P0;dushu=dushu&0xf0;delay(900);dushu=P0;dushu=dushu&0xf0;while(dushu!=0xf0)dushu=P0;dushu=dushu&0xf0;if(dushu1=0xe0)set_num=1

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服