利用atmega16l设计的温度控制系统
概述:一种基于atmega16l单片机的温度控制系统,阐述该系统的软硬件设计方案。采用模块化设计方法,利用增量式pid算法使被控对象的温度值趋于给定值。实验结果表明该系统具有良好的检测和控制功能。
1 引言
随着科学技术的进步,检测行业发展快速,除了检测项目和内容不断扩大,更重要的是检测愈来愈科学化、职能化,主要表现在检测过程及检测结果由计算机监控和显示。多点温度的采集控制近年来在检测行业应用较为广泛,其中以微机为核心的监控技术价格低廉,使用方便,应用也最普遍。
本文主要介绍基于atmega16l单片机的温度控制系统的设计,具体包括炉温的采集和控制、lcd显示以及pc机绘制温度变化的曲线图等。硬件和软件设计采用模块化的思想,系统集成度较高。
2 系统的硬件设计
图1为系统硬件的总体结构图。系统由主控制器、温度传感器、运算放大电路、液晶显示电路、键盘电路、串口通信电路等构成。由结构图1可看出,系统模块较多,所以应合理分配i/o 口资源,各模块以atmega16l单片机为核心相连接。
2.1 主控制器
系统主控制器采用atmega16l,该单片机是一款高性能、低功耗的8位avr微处理器,具有先进的risc结构,内部有大容量的rom、ram、flash和eeprom,集成4通道pwm,spi串行外设接口,同时具有8路10位a/d转换器,对于数据采集系统而言,外部无需单独的a/d转换器,从而可节省成本。另外,该单片机提供jtag调试接口,可采用自制的简易jtag仿真器进行程序调试。
2.2 温度采集电路
图2为温度采集电路。该电路主要由温度传感器ad590和差分运算放大器ad524组成,其中温度传感器ad590是一种新型的两端式恒流器件。激励电压范围是4~30 v,测温范围为-55~+150℃。当ad590的电流流过一个5 kω的电阻时,温度升高1 k,该电阻上的电压增加5 mv,即转换成5 mv/k。因此,温度在0~100℃间变化时,电阻电压在1.365~1.865 v间变化。运算放大器ad524用于把绝对温度转换成摄氏温度。
2.3 温度控制电路
该电路主要由光电耦合器和可控硅组成,如图3所示。单片机发出的控制信号(pwm)经驱动器后控制光电耦合器的工作状态。当光电耦合器工作后,使双向可控硅的触发极处于高电平,可控硅处于导通状态,进而控制加热棒的工作。
2.4 其他电路
(1)显示电路系统的模块较多,i/0接口紧张,显示器选用液晶显示器tcl602a,接口采用高4位数据传输方式。
(2)键盘电路系统采用非矩阵式键盘,该键盘结构简单,使用方便,不会占用较多i/o,适用于按键个数较少的场合。
(3)串口电平转换 电路电平转换由max488器件完成,max488为rs-488收发器,速度高于max232,简单易用,单+5 v供电,外接少量器件即可完成从ttl电平到rs-488电平的转换。
3 系统软件设计
系统采用分层控制方式保证温度控制系统稳定。下位机采用atmega16l单片机作为硬件开发核心,采用c语言编程。上位机采用工控机作为监控系统,采用visual basic6.0编程,两层之间采用rs-488通讯实现数据交换。在单片机部分,软件设计采用模块化设计方法,整个软件可分为主程序、按键处理程序、a/d转换程序、增量式pid处理程序、串行通信程序和显示处理程序、数据保存处理程序、看门狗处理程序。
(1)主程序 系统主程序主要完成系统各部件初始化操作,此外,在系统开始运行后等待按键处理。图4为其流程。
(2)按键处理程序 键盘处理程序通常采用查询方法实现按键的识别,cpu只要一有空闲就调用键盘扫描程序,查询键盘,识别键值,并予以处理。
(3)a/d转换程序 atmega16有一个10位包括采样保持电路的逐次逼近型a/d转换器,该转换器与一个8通道模拟多路复用器连接,能对来自端口a的8路单端输入电压进行采样。通过设置adcsra寄存器的aden即可启动a/d转换器,只有当aden置位时,参考电压及输入通道选择才生效。向a/d转换器启动转换位adsc位写“1”可启动单次转换。在转换过程中此位保持为高电平,直到转换结束触发中断。然后被硬件清零。
(4)增量式pid处理程序 该温度控制系统具有滞后性、时变性和非线性,不可能建立该系统的精确数学模型,因此如果使用常规的线性控制理论,要达到满意的控制效果非常困难。采用 增量式数字pid控制器,可解决这个难题。
增量式pid是指数字控制器的输出只是控制量的增量,由于计算机输出的是增量,所以误动作时对输出的影响较小。控制增量的确定仅与最近的k、k-1、k-2次的采样有关,所以能够较容易地通过加权处理而获得较好的控制效果。另外,对于数字控制系统,由于a/d转换器位数的限制,其输出控制量受最小和最大值的限制,系统加入抗积分饱和法对其优化。图5为增量式pid控制算法程序流程。
以下是增量式pid控制的程序代码:
(5)串行通信程序 系统与上位计算机之间采用rs-488的串行数据传输方式。单片机采用中断方式接收数据,而发送数据则采用查询方式。
(6)显示处理程序 lcd-tc1602a lcd接口设计采用4位控制方式,使用4位数据线d4~d7控制时序分两次传送,先传送高4位数据,再传送低4位数据。
(7)数据读写处理程序 atmega16单片机内部集成有512 b的eeprom,它是作为一个独立的数据空间而存在的。atmesa16单片机通过对相关寄存器的操作实现对eeprom按字节读写。
(8)看门狗处理程序 atmega16单片机内部集成有硬件看门狗,看门狗由片内独立的振荡器驱动,设置看门狗的步骤为:先初始化并打开看门狗,然后把喂狗指令放在循环程序中。
4 系统测试分析
各个模块测试完成后,将下位机由测试端的硬件通过串口与pc机连接,构成完整的温度测试系统。在上位机中运行visual basic编写的监控程序,通过下位机的键盘设置加热炉温度为80℃.单击“打开通信端口”,选择所要通信的端口后,单击“开始测温”,这时下位机就会向上位机发送实时温度值,并实时绘出温度趋势曲线。
当单击“结束”时,整个系统停止工作。上位机显示的温度趋势曲线如图6所示,测试结果显示,该系统对加热炉温度的采集和控制比较准确。
5 结束语
充分利用avr atmega16单片机的内部资源,系统集成 度高,系统利用增量式pid算法改变pwm的输出值,然后控制可控硅的开关,最终使被控对象的温度值趋向于给定的温度值。该系统操作容易、可靠性好,具有较高的实用价值。就其采样频率和分辨率来说属于中速类型,适合于对数据采样频率要求不是特别高的应用场合。
详细解读CAN总线原理和数据帧问题
恩智浦推出业界首款全新超快速I2C总线控制器
收发一体芯片TRF7970A的特点性能及的NFC模块设计介绍
德新交运拟以现金6.9亿元收购东莞致宏精密100%股权
基于STM32片内信号的ADC应用演示案例
利用ATmega16L设计的温度控制系统
我国宣布从文昌航天发射中心成功发射“长征5号”运载火箭
从有效到高效,UniPro特色功能帮研发团队加强沟通协作
MPL 物理层技术简介
基于Dragon Board 410c实现对家庭电器的智能开关控制
消息称苹果发布汽车招聘岗位,秘密组建造车团队
AMD Infinity Fabric升级后可支持CPU-GPU之间的连接
电子围栏日常运行、检修及故障排除
无磁芯变压器(CT)隔离驱动芯片技术优势及产品系列
起火事件频发,新能源汽车的未来该由谁决定?
嵌入式设计需要注意什么问题
关于非洲猪瘟荧光层析定量分析仪的原理及性能
空气开关十大品牌排行榜
中国电信近日宣布:成立一家全资子公司!
HSC如何使用呢?不同工况下HSC的使用方法