基于ATmega16的远程温差循环控制器的设计
选择合适的感温元件和合理的测温电路参数。这里选用一种负温度系数的热敏电阻器(NTC),它采用玻壳封装,体积小,响应快,价格低,安装方便。水温测量使用NTC测温电阻TG40B503(25℃时,阻值50 kΩ,B值4 050 K,玻璃封装),经A/D转换后由程序查表,控制精确、选择合理的电路参数,在0~99℃范围内误差可小于1 ℃,具有良好的一致性。NTC热敏电阻的温度特性一般可用下面的公式表示: RT=RT0exp(B/T-B/T0) (1) 式中:RT,RT0分别为热敏电阻器在温度T(单位:K)和T0(单位:K)时的阻值(单位:Ω)。B为热敏电阻器的电阻温度系数(单位:K)。热敏电阻测温电路如图3所示:RT1~RT4为本设计所使用的热敏电阻;PA0~PA3为从机ATmega16单片机的A/D接口。 2.2.2 继电器控制电路 系统输出功率控制有4路,分别有从机ATmega16单片机PB0~PB3端口控制温差循环、电加热循环、防冻循环等功能。当主机按“温差循环”键时,主机将把信号发送给从机,从机再将RB0置高,启动手动循环,再次按“循环”键,程序使RB0输出低电平口,关闭手动循环。其他功能与“温差循环”基本相同。为了防止继电器可能干扰单片机的控制电路部分,在单片机PB输出口与继电器驱动接口电路之间加入了光电耦合器TLP521_2,如图4所示。 3 系统软件设计 该设计的软件编程并不复杂,主要有以下几个模块:LCD显示、RS 485通信、A/D软件滤波、行列键盘、继电器控制等。这里主要介绍对RS 485通信、A/D数据的处理。 3.1 RS 485通信格式 在该设计中,虽然只是双机通信,但是为了以后扩展的需要,通信采用轮询方式。通信的发起端是主机,每次通信都是由主机发送指令开始,然后从机接收指令,根据接收到的指令,判断执行相应的动作。指令共有3种,所以用2位二值代码。代码有:00为查询,01为设置参数,02为手动指令传输。 通信流程如下: (1)主机隔100 ms发查询帧,从机返回传感器数值数据帧; (2)设置参数、状态等:主机发设置参数帧,从机返回设置确认帧; (3)若在定时时间内没有收到从机返回数据,则重新发送,一直到从机正确返回。 3.2 A/D数据的处理 测试中发现,若不对A/D转换后的温度数据进行处理,直接用于温差循环控制,会使继电器不时出现误动作。即使在ATmega16芯片外的测温电路中加入了各种滤波电路,仍不见改善。因此推断该干扰可能来自于A/D转换模块内部。考虑到该系统中现场温度的变化较缓慢,适合采用滑动窗口平均法进行数字滤波。在采用数字滤波方法对A/D转换后得到的连续64个温度数据进行平均后,有效消除了A/D转换后的噪声。 4 结 语 以ATmega16为核心的远程温差循环控制器,使用RS 485方案,可以很好地解决远程通信问题。该设计方案具有使用元件少,成本低,抗干扰性好等优点。该控制器的功能实用,控制准确可靠,人机对话界面直观,操作简便,能满足各种分体承压式太阳能热水器对温差循环和电加热控制的要求。已经成功用于分体承压太阳能热水器的控制中,亦可用于太阳能热水工程中用于温差循环控制,具有良好的应用前景。
- 基于MMS的即时报警系统设计(01-23)
- 基于ATmega162的智能仪器设计(08-18)
- AVR汇编初探之二《AVR的指令与汇编系统》(01-10)
- Atmega16与DS1302数码管显示程序(12-02)
- ATMEGA16与DS18B20数码管显示(12-02)
- ATmega16利用TWI模块读写24C02程序(12-02)