基于AVR单片机设计的加热控制系统

发布者:巳午未最新更新时间:2013-10-11 来源: eefocus关键字:AVR单片机  加热控制系统  PWM 手机看文章 扫描二维码
随时随地手机看文章

1 引言
温度是工业生产中主要的被控参数之一,与之相关的各种温度控制系统广泛应用于冶金、化工、机械、食品等领域。文中介绍的文化测量及加热控制系统以 ATmega8型AVR系列单片机为核心部件,通过对系统软件和硬件设计的合理规划,发挥单片机自身集成众多系统级功能单元的优势,在不减少功能的前提下有效降低了硬件成本,系统操控简便。实验证明该温控系统具有很高的可靠性和稳定性。
2 系统结构及控制算法
2.1系统总体结构
温度测量及加热系统控制的总体结构如图1所示。系统主要包括现场温度采集、实时温度显示、加热控制参数设置、加热电路控制输出、与上位机串行通信和系统核心ATmega8型单片机等。
温度采集电路以模拟电压形式将现场温度传至单片机。单片机通过自身集成的 A/D转换器将模拟电压转化为控制系统可用的数字量。单片机结合现场温度与用户设定的目标温度,按照已经编程固化的增量式PID控制算法计算出实时控制量。以此控制量使能光电隔离驱动电路,决定加热电路的工作状态,使炉温逐步稳定于用户设定的目标值。系统运行过程中的各种状态参量均由数码管实时显示,并通过RS232串口与上位计算机进行全双工通信。用户直接在上位机完成温度测量和加热控制的全部操作。


2.2系统控制算法
系统采用基于增量式 PID算法的脉宽调制(PWM)控制方法,即PWM方波的占空比由增量式PID算法求得。增量式PID算法的输出量为
Δ Un=Kp[(en-en-1)+(T/Ti)en+(Td/T)(en-2 en-1+en-2)] (1)
式中, en、en-1、en-2分别为第n次、n-1次和n-2次的偏差值,Kp、Ti、Td分别为比例系数、积分系数和微分系数,T为采样周期。
单片机每隔固定时间 T将现场温度与用户设定目标温度的差值带入增量式PID算法公式,由公式输出量决定PWM方波的占空比,后续加热电路根据此PWM方波的占空比决定加热功率。现场温度与目标温度的偏差大则占空比大,加热电路的加热功率大,使温度的实测值与设定值的偏差迅速减少;反之,二者的偏差小则占空比减小,加热电路加热功率减少,直至目标值与实测值相等,达到自动控制的目的。
3 硬件设计
3.1 ATmega8单片机[1]
ATmega8型单片机是ATMEL公司推出的基于AVR RISC结构的高档Flash型单片机。其核心将32个工作寄存器和指令集连接在一起,所有工作寄存器都与ALU(算术逻辑单元)直接相连,实现了1个时钟周期执行1条指令同时访问(读写)二个独立寄存器的操作。这种结构提高了代码效率,使得大部分指令的执行时间仅为一个时钟周期。因此,ATmega8具有接近1 MI /s/MHz的性能,运行速度比普通CISC单片机高10倍。
ATmega8型单片机内集成了执行速度为二个时钟周期的硬件乘法器、8KB的Flash程序存储器、512字节的E2PROM、2个具有比较模式的8位定时器、1个具有比较和捕获模式的16位定时器、3路最大精度为16位的PWM输出、8通道10位A/D转换器,SPI/TWI同步串口及USART异步串口。ATmega8片内集成的众多系统级功能单元为控制系统的开发提供了很大的便利。设计的过程中,尽量通过软件编程简化硬件电路,有效缩短了开发周期。
3.2 现场温度采集
现场温度由温度传感器获得。在本系统中,温度传感器选用 Pt100铂电阻器,利用铂金属自身阻值随温度变化的特性测温。铂电阻经变送器放大及线性化处理,输出4mA—20mA的标准直流信号,对应用于现场温度0℃— 400℃ ,通过 150Ω高精度金属膜电阻转化为0.6V—3V直流电压信号。此模拟电压信号符合ATmega8自带A/D转换器输入要求,连接至ATmega8的PC0即可进行A/D转换。
ATmega8内部集成有8通道10位高速A/D转换器。本系统只选用通道PC0作为A/D转换的模拟电压输入。A/D转换的参考电压使用系统自带的Vcc。基于前述,输入10位A/D转换器的模拟电压0.6V—3V代表 0℃ — 400℃ ,则现场温度 T可以表示为:
T=400[(3.0-Vcc)(AD_Data/AD_Max)]/(3.0-0.6)] (2)
式中,A/D_Data是A/D转换后得到的10位数字量,AD_Max是10位A/D转换器参考电压对应的数字量,此处为0x03ff。温度测量绝对误差为400/210℃,相对误差小于0.1%,符合系统精度要求。
至此,温度值由非电模拟量转换为数字量,可以直接用于单片机内部加热控制算法的运算。实际编程时,为了降低采样过程瞬态误差的干扰,运用了算术均值滤波的方法,即最终参与控制运算的温度值 T通过10次采样的温度值求算术平均取得。
3.3 数码管显示电路
加热过程中,被控对象的实际温度,用户设定的目标炉温等参量通过数码管显示电路实时显示。数码管显示电路的原理如图2所示。
 

 

此显示电路采用“单片机→串入并出芯片→数码管”的动态显示技术。单片机与 74HC164型串入并出电路使用同步串口SPI方式连接,单片机工作在主机模式,时钟输出端SCK接至74HC164的CLK引脚,数据输出端MOSI接至74HC164的数据输入引脚AB。[page]
单片机将需要显示的 8位字段码通过SPI传至74HC164,由74HC164输出8位并行逻辑电平驱动数码管显示。单片机依次使能4位共阳极数码管的位选择端,按顺序点亮4位数码管的各位。由于人眼观察时特有的“视觉暂存”效应,当亮灭频率达到一定程度时无法觉察数码管明暗的变化,认为4位数码管各位始终点亮,即实现了4位数码管的动态显示。通过使用同步串口SPI与74HC164型串入并出芯片驱动数码管的8位字段码,比传统并行驱动方式节约6个单片机I/O口,并且利用ATmega8自带的硬件SPI单元,无需软件模拟SPI通信。
由于采用动态显示技术,编程时必须注意每次更新显示数值应先将待显示字段送到 74HC164,再通过PC1—PC4使能数码管中某一位点亮,否则就会发生错位显示现象。
3.4 加热驱动电路
ATmega8的I/O口输出负载能力最大为40mA,无法直接驱动工业环境中使用的电炉、电机等大功率设备,必须通过中间驱动电路实现单片机对功率设备工作状态的控制。实际应用中,通常采用继电器或交流接触器间接驱动。由于继电器或交流接触器具有机械接触特点,因而很大程度上降低了控制系统整体的稳定性和可靠性。
为了避免机械接触开关的缺点,本系统选用以可控硅为主体的完全光电隔离的中间驱动电路。可控硅是大功率开关型半导体器件。能在高电压、大电流条件下工作,具有无器械接触、体积小、便于安装等优点,广泛应用于电力电子设备中。加热驱动电路示意图如图3所示。


ATmega8根据现场温度的和用户设定的目标温度计相关的控制参数算出实时控制量。将此控制量写入单片机定时器1的OC 1A 寄存器,以决定输出 PWM波的占空比。在PWM波的高电平期间,通过限流保护电阻器R4的双向光电耦合器上电工作,双向可控硅TRIAC1栅极被经由R1、R2和双向光电耦合器的信号触发导通,加热电路得电工作;PWM波低电平期间,双向光电耦合器截止,双向可控硅TRIAC1栅极无触发信号被关断,加热电路断电停止工作。
电路中的 R3、C2组成阻容吸收单元,可减少可控硅关断时加热电路中感性元件产生的自感电动势对可控硅的过压冲击。R1、C1组成低通滤波单元,能降低双向光电耦合器误触发对后续电路的影响。同时、双向光电耦合器的使用彻底隔离了强弱电路,避免了大功率器件对单片机的干扰。
4 软件设计
系统程序由主程序、温度采集子程序、加热控制子程序、键盘扫描子程序、串行通信子程序和中断子程序等部分组成。主程序主要完成加热控制系统各部件的初始化和自检,以及实际测量中各个功能模块的协调。键盘扫描和控制算法等子程序利用 ATmega8丰富的中断资源,在外部中断和定时器溢出中断子程序中完成上述工作。与上位机的串行通信采用ATmega8自带的UART硬件传输中断,以满足数据双向传输的异步性和实时性要求。单片机温度采集子程序和加热控制子程序流程如图4所示。


上位机监控程序基于 Visual C++6.0环境开发。使用微软公司提供的MsComm控件有效避免了直接调用Win32API造成的编程烦琐等弊端,以较少代码量实现本系统要求的全双工步通信。用户可通过上位机程序完成温控参数设定、温度数据保存和离线分析等操作。
5 结束语
笔者设计的温度测量及加热控制系统充分发挥了 ATmega8型单片机的特点,结合现有技术,大大降低了硬件电路的设计复杂度。该系统已经设计制作完成,并在仿真深海高温热液环境试验中取得了良好的效果,具有温控准确、操控界面友好、稳定性高,抗干扰能力强等优点。

关键字:AVR单片机  加热控制系统  PWM 引用地址:基于AVR单片机设计的加热控制系统

上一篇:基于AVR单片机与串行时钟器件DS3231的应用设计
下一篇:基于单片机的仪表步进电机的细分控制原理及应用

推荐阅读最新更新时间:2024-03-16 13:28

定时器做PWM脉冲
简介 STM32 的定时器除了 TIM6 和 TIM7。其他的定时器都可以用来产生 PWM 输出。 高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。 通用定时器也能同时产生多达 4路的 PWM 输出, PWM 寄存器与功能原理 TIMx_CCR1~4,捕获/比较寄存器 该寄存器的值与 CNT 的值比较,可以控制 PWM 的输出脉宽 TIMx_CCMR1/2,捕获 / 比较模式寄存器 CCMR1/2:OCxM 位,用于设置 PWM模式1 ,只要TIMx_CNT CCR(计数值小于比较标准值)则为有效电平 PWM模式2 ,只要TIMx_CNT CCR(计数值小于比较标准
[单片机]
用于单相电机调速的单片PWM控制技术
1 引言   随着家用电器产品变频技术的发展,单相电机的变频调速已成为一种可行的方法,在这种调 速系统中,脉宽调制(PWM)技术仍然是提高调速性能的主要手段 [1,2,3] 。虽然PWM技术的实现方法很多 [4] ,然而,为了降低产品的制造成本,采用微机控制软件实 现PWM控制具有成本低、调制方式灵活等特点,比较适合于家用电器产品的要求。本文针对 洗衣机电机的调速要求,提出了采用直接PWM(DPWM)软件计算的方法,并在AVR系列单片机AT 90C8535上实现,该方法可以很容易地实现电机的恒V/f比调速,其PWM算法简单,易于实现,是一种较为实用的方法。 2 直接PWM技术的算法   
[工业控制]
基于dsPIC30F4012型微处理器的三相电压型PWM整流器研究
摘要:建立了电压型PWM整流器模型,提出一种实用的电流解耦方案,给出一种由dsPIC30F4012型微处理器控制的三相电压型PWM整流器控制系统,详细介绍其系统组成、控制原理及硬件结构,论述其软件流程,给出实验结果。 关键词:PWMi dsPIC30F4012;电流解耦控制;电压型整流器 引言 近几年,在AC/DC变换中,PWM整流器因其能够实现高功率因数运行且几乎不产生谐波而倍受关注。关于PWM整流器的研究在我国也进行了很多年,其实施方案主要有电压型PWM整流器和电流型PWM整流器。电流型PWM整流器由于存在直流储能电感及交流LC滤波环节.因此结构和控制相对复杂,系统损耗较大。而电压型PWM整流器以其较低的损耗、简单的结
[单片机]
PIC16F877的Timer2与CCP模块的PWM
Timer2是一个8位定时器,带有一个预分频器、一个后分频器和一个周期寄存器。当将预分频器和后分频器设置为最大值时,其溢出时间与 16位定时器的相同。在PWM模式下使用 CCP模块时, Timer2 为PWM时基。 下图显示了Timer2的结构框图。后分频器对TMR2寄存器和PR2寄存器的匹配次数进行计数。这样有助于减少中断服务程序的调用频率,优化CPU性能。 与Timer2有关的寄存器 PWM模式 在脉冲宽度调制(PWM) 模式下,CCPx引脚可输出分辨率高达10位的 PWM 输出。因为CCPx引脚与端口数据锁存器是复用的,所以相应的TRIS位必须清零以使CCPx引脚为输出状态,下图为PWM结
[单片机]
【STM32H7教程】第34章 STM32H7的定时器应用之TIM1-TIM17的PWM实现
34.1 初学者重要提示 学习本章节前,务必优先学习第32章,HAL库的几个常用API均作了讲解和举例。 如果配置的GPIO引脚无法正确输出,注意本章2.1小节,保证是定时器复用支持的引脚。 STM32H7支持TIM1-TIM8,TIM12-TIM17共14个定时器,而中间的TIM9,TIM10,TIM11是不存在的,这点要注意。 STM32H7的PWM输出100MHz也是没问题的。输出效果见本章2.3小节。 34.2 定时器PWM的驱动设计 针对STM32H7的定时器PWM功能,专门设置了一个超级函数,用户可以方便的配置TIM1-TIM17所有定时器的PWM输出。 34.2.1 定时器PWM输出支持的引脚 STM32H7支持
[单片机]
AVR单片机(学习ing)—(二)、ATMEGA16的中断系统—01
二、ATMEGA16的中断系统 二—(01)、两路防盗系统试验 上一篇已经说了,这款单片机就是控制所谓的寄存器来控制单片机的相关功能(之所以比51强大,就是集合了这些还有好几种总线,会在下面的学习中遇到的,呵呵 。 好了,不废话了,显示它所应用到的寄存器: (这里先介绍一下下,呵呵 ,便于理解吗~~) 外部中断通过引脚INT0、INT1和INT2触发(注意,这是引脚,就是D口引脚的第二功能啦)。只要使能了中断,即使引脚INT0到2配置为输出,只要电平发生了合适的变化(相信大家都知道,咱们触发中断是通过外部信号的输入来触发的,这里的意思是,如果我们设置引脚为输出,呵呵,不管你怎么设置的,只要引脚变化,然后就是和你寄存器配置的变化合适
[单片机]
<font color='red'>AVR单片机</font>(学习ing)—(二)、ATMEGA16的中断系统—01
用单片机+PWM来解码WAV真人声乐
本程序是 51hei单片机开发板 所提供一个列子,用单片机解码wav真人声音音乐,并用pwm的方法输出,开发板的p2.2口是接的蜂鸣器,但蜂鸣器的效果实在是太差,在使用中直接把蜂鸣器去掉,接上一个2w的小喇叭效果更佳.wav.h是wav数据请从下面的压缩包下载: http://www.51hei.com/f/waefc.rar 下面是主程序部分: #include reg52.h #include wav.h sbit dataOut = P2^2; #define maxSize 2060 unsigned char pwmData=0; unsigned char pwmCycle=256; //pwm
[单片机]
基于单片机和PWM控制方法调速实现无刷控制器检测设计
引言 伴随着城市化进程,人们生活的交通距离不断扩大,代替燃油汽车和自行车的电动车的普及大幅度的提高了电力资源的利用效率,促进了国民经济的健康发展。电动自行车以电力作动力,骑行中不产生污染,无损于空气质量。从改善人们的出行方式、保护环境和经济条件许可情况等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。电动自行车所用直流电机分为有刷电机和无刷电机两种。其中有刷电机控制较简单。但其易磨损的电刷带来维修保养工作量相对较大、使用寿命相对较短等缺点。而直流无刷电机本身没有易磨损部件,电机寿命长,维修保养工作量小。但直流无刷电机采用电子换向原理工作,其控制过程比有刷电机复杂得多,因此对控制器质量的要求也高得多。 目前电动自行车采
[单片机]
基于单片机和<font color='red'>PWM</font>控制方法调速实现无刷控制器检测设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved