09测控-鱼缸温度控制系统
2011华东交通大学第八届电子设计大赛
设计报告
项目名称: 鱼缸温度控制系统 小组成员: 刘圣阳 乔卉卉 所在系(院)、年级: 09测控 填表时间:
摘要: 本系统的硬件系统主要由ATMEL 公司的AT89S52单片机为核心,配合DALLAS 公司的DS-18B20数字温度传感器以足够频率进行温度采集,对比标准温度,通过软件设计PID 算法快速得出最优的控制方案,系统通过AT89S52标准I/O口 控制脉宽制L298电机驱动模块和TWH8751电子开关,采用PWM 控制技术对水泵和加热器进行无级调速。系统在对温度进行控制的整个执行过程中的温度动态,加热速度及水泵供水速度等都通过LCD1602直观显示。系统具有一定的容错能力,能够及时对错误进行警告,并强制停止加热系和水循环系。温度采样周期低于50ms 。PWM 频率高于1KHZ 。
关键词:AT89S52,PID 算法,PWM 脉宽调制,加热系,供水系。
Tract : The hardware of the system mainly use the AT89S52 microcontroller of the ATMEL company as the core, with the company's DS-18B20 DALLAS digital temperature sensor with sufficient frequency temperature acquisition, compared to standard temperature, through the software optimal PID control algorithm we can get the best Program fast, the system through the AT89S52 standard I / O port control PWM motor drive system module and TWH8751 L298 electronic switch, the use of PWM control techniques for variable speed pump and heater. The LCD1602 can show the activity temperature, heat pump water speed, and visual display of speed and so on, in the whole process that the system controlling the temperature. System has certain fault tolerance, the timely warning of errors, and forced to stop the heating system and water supply system. Sampling period the temperature is lower than 50ms. PWM frequency is higher than 1KHZ.
目录
一、总体设计方案选择 .................................................................................................................... - 1 -
二、各模块方案论证及设计 ............................................................................................................. - 2 -
1、温度采集模块............................................................................................................................ - 2 -
2、程序算法模块............................................................................................................................ - 2 -
3、驱动模块及执行控制模块 . ....................................................................................................... - 3 -
三、硬件概述 . .................................................................................................................................... - 3 -
1、AT89S52单片机 ........................................................................................................................ - 3 -
2、DS-18B20数字温度传感器 ..................................................................................................... - 3 -
3、L298电机驱动芯片................................................................................................................... - 3 -
4、TWH8751功率开关..................................................................................................................... - 3 -
四、电路与程序设计 ......................................................................................................................... - 4 -
1、电路设计.................................................................................................................................... - 4 -
(1)供电模块 .......................................................................................................................... - 4 -
(2)单片机最小系统模块 ...................................................................................................... - 4 -
(3)单片机系统外围模块 ...................................................................................................... - 4 -
2、部分核心程序............................................................................................................................ - 5 -
(1)温度转换 .......................................................................................................................... - 5 -
(2)PID 算法部分 ................................................................................................................... - 5 -
(3)PWM输出部分 ....................................................................................................................... - 6 -
一、总体设计方案选择
方案一、AT89S52单片机为控制系统,利用热敏电阻与AD 转换器结合采集温度信号,由单片机推算出偏差,通过查表法得出控制方案。但热敏电阻与AD 转换器电路复杂,占用较多单片机硬件资源,且干扰因素大。
方案二、AT89S52单片机为控制系统,利用DS-18B20芯片采集温度信号,由单片机通过PID 算法得出控制方案,使用PWM 脉宽调制技术对加热器和供水器进行调速。
方案三、AT89S52单片机为控制系统,利用DS-18B20芯片采集温度信号,由单片机通过PID 算法得出控制方案,使用PWM 脉宽调制技术对加热器和供水器进行调速,通过软件和硬件方法,增加系统的容错能力和人工控制升温降温功能及报警系统。
二、各模块方案论证及设计
1、温度采集模块
方案一、
采用SEMITEC 热敏电阻和ADC08004转换器联合对温度进行采集,理论精度为 1℃ ,最高采样周期为500ms 。采用该电路的优点是采样周期短,无须单片机利用程序来转换,减少单片机的工作负担。但是明显的不足是精度不够高,占用单片机硬件资源过多,而且热敏电阻有个先天不足,容易产生温漂。
方案二、
采用占用的温度芯片DS-18B20对进行温度采集,最高为12位分辨率理论精度达0.5℃,最高数字量转换周期为200ms (典型值)。该温度采样模块的优点是硬件电路简洁,可采用寄生电源使用双线控制,只占用单片机一个I/O口,而且精度高,采样速度快。缺点是读温度时需要单片机特定程序完成,且时序要求高。
2、程序算法模块
方案一、
单片机使用查表方法,对特定的温度进行合适的控制。单片机接收并转换温度后,然后计算出偏差,通过程序中制定的表,得出应该采取的动作。该方案的优点是程序简单明了,硬件调试容易。但是此方案反应滞后,由于系统惯性较大,该算法容易使系统处于不稳定状态,并且会产生一定稳态误差。
方案二、 系统采用PID 算法,在过程控制中,按偏差的比例 P、积分I 、微分D 进行选定的控制。比例环节可以增加闭环系统的灵敏度,减少稳态误差。积分环节可使消除系统稳态误差。微分控制反映信号的变化趋势,加快系统的动作,减少调节时间。该方案须通过硬件调试来确定比例常量、微分常量和积分常量。PID 算法,它具有控制精度高,能够克服容量滞后的特点,特别适用于负荷变化大、容
3、驱动模块及执行控制模块
加热系和供水系使用12V 电源,电流超过1A ,因此须加一大功率驱动模块。采用PWM 脉宽调制技术,通过调节占空比可以实现无级调压。PWM 控制电机转速的一般要求是,PWM 脉冲频率不低于1KHZ ,这样电机转动才不会产生明显的附加振动。因此驱动模块开关周期不能太长,目前电磁继电器难以达到这个要求,而固态继电器价格昂贵,不适用于此。系统使用L298电机驱动芯片控制供水系水泵,TWH8751功率开关芯片控制加热系发热芯,这样在速度和驱动能力上都可以满足要求。
三、硬件概述 1、AT89S52单片机
AT89S52具有低功耗,高性能,工作电压范围宽(3.5V ~5.5V )的8位CMOS 单片机,片内含8k 可ISP 编程Flash 和256 bytes RAM,3个16位可编程定时计数器。全静态工作频率0Hz-33MHz ,完全兼容标准 MCS-51指令系统。支持ISP 在线编程,可在线进行硬件调试。
2、DS-18B20数字温度传感器
DS18B20具有体积小,使用方便,适用于各种狭小空间的数字温度传感器。使用中不需要任何外围元件,其独特的单线接口方式,在与微处理器连接时仅需要一条I/O口线即可实现双向通讯,多个DS18B20可以并联在同I/O口线上,实现多点测温。测温范围 -55℃~+125℃;固有测温分辨率0.5℃;工作电压:3.0~5.5V 。可使用寄生电源工作,实现双线测温。
3、L298电机驱动芯片
L298N 是专用电机驱动集成芯片,可驱动两路直流电机或四相步进电机。其特点是输出电流大,其输出电流为2A ~4A ,最高工作电压为50V ,无须复杂的外围元件即可驱动大功率电机。输入端可以直接与单片机相连,从而很方便地受单片机控制。但为了尽量减少对单片机的干扰,电路一般加入光耦进行隔离。L298正常PWM 脉冲频率是25KHZ, 最大可达40KHZ 。
4、TWH8751功率开关
TWH8751开关速度快开关动作仅1us ,工作频率高(可达到1MHZ ),自带散热片。工作电压为12V ~24V ,内部设有反馈环路和减流型输出保护电路。TWH8751的输入端和选通端所需输入控制电流很小,仅100~200μA ,而输出允许通过的
最大电流为2A 。内部另设有智能减流型保护电路,当输出电流超过3A 时,保护电路能自动使输出电流减至1A ,在使输出截止后,集成开关电路将重新恢复至2A 的输出负载能力。由于其工作频率高,通断无噪声,常用来取代继电器。
四、电路与程序设计
1、电路设计
(1)供电模块
设计要求使用5V 和12V 两种电压,5V 用于单片机LCD 等数字电路部分,12V 用于加热系和供水系。要求电源电流大无波动。
(2)单片机最小系统模块
单片机工作的最基本电路,包含复位电路,晶振电路。该复位电路采用了按键脉冲复位兼上电复位功能的电路,使用12M HZ晶振工作。
(3)单片机系统外围模块
该部分是系统的核心单元,是实现系统功能的执行部分,包含了信号采集模块,电机驱动模块,加热模块和显示模块。
2、部分核心程序
(1)温度转换
unsigned int Check_temper( void )
{
unsigned char TL;
unsigned char TH;
unsigned int Temperature;
if( Init_DS18B20 () == 1 )
Display_error ();
Readyread ();
TL = Readchar ();
TH = Readchar ();
Temperature = TH * 160 + TL / 1.6;
return Temperature;
}
(2)PID 算法部分
int PIDCalc ( struct PID *pp, unsigned int NextPoint )
{
unsigned int dError,Error;
Error = pp->SetPoint - NextPoint;
pp->SumError += Error;
dError = pp->LastError - pp->PrevError;
pp->PrevError = pp->LastError;
pp->LastError = Error;
/* 比例项 */ /* 积分项 */ /* 微分项 */
return(pp->Proportion*Error+pp->Integral*pp->SumError + pp->Derivative * dError); }
(3)PWM输出部分
void Time0 ( void ) interrupt 1 using 0
{
if( high_t_hotter > 5 )
{
if( Hotter == 1 )
high_t_hotter = 100 - high_t_hotter ;
TH0 = ( 8191 - 20 * high_t_hotter ) / 256;
TL0 = ( 8191 - 20 * high_t_hotter ) % 256;
TR0 = 1;
Hotter = ~Hotter;
}
else
TR0 = 0;
}