太阳能工程热水器控制器的设计与实现
R2,R3,R4和Pt100组成传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过TL431稳至2.5 V。从电桥获取的差分信号通过两级运放放大后输入单片机。电桥的一个桥臂采用可调电阻R3,通过调节R3可以调整输入到运放的差分电压信号大小,通常用于调整零点。放大电路采用LM358集成运算放大器,为了防止单级放大倍数过高带来的非线性误差,放大电路采用两级放大,如图3所示,前一级放大倍数约为10倍,后一级约为3倍。温度在0~100℃变化,当温度上升时,Pt100阻值变大,输入放大电路的差分信号变大,放大电路的输出电压AV对应升高。
一般在使用Pt100的温度采集方案中,都会对放大器LM358采集来的模拟信号AV进行温度采样,即进行A/D转换。
在对数值进行滤波操作之后,还要将A/D值转换为温度,只需要确定比例系数K和基准偏差B即可。
温度转换的C语言实现过程为:
temperature=(adc_data*K)-B; //换算成温度值
1.2.3 实时时钟
采用DALLAS公司推出的涓流式充电时钟芯片,它内部集成了实时时钟/日历和31 B静态RAM,可以通过串行接口与单片机进行通信。实时时钟、日历电路电路提供秒、分、时、星期、月、年的信息,每个月的天数和闰年天数可自动调整,时钟操作可通过AM/PM标志位决定采用24小时或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式通信,仅需3根线:复位(RST)、I/O数据线、串行时钟(SC-LK)。DS1302工作功耗很低,保持数据和时钟信息时,功耗小于1mW。利用它很容易实现自动上水、自动加热的控制和时间显示。假设这里单片机设置报警为凌晨3点整,启动电加热,当CPU读出DS1302时间为3点即可使对应的I/O管脚输出高电平,打开继电器启动加热器,定时上水功能同理。同时在不显示温度和水位时,它还可作为精确的电子钟进行时间显示。
1.2.4 数据显示
该系统采用静态显示的方式,用3个数码管交替显示水温、时间、报警的信息,在按键时,也将用数码管显示。水位级别显示则用LED显示。显示电路由3个移位寄存器74HC164和3个数码组成。每个数码管接有8个1 kΩ电阻,保护数码管,防止电流过大烧坏数码管。具体的电路如图3所示。
1.2.5 其他部分
本系统除复位键、手动上水和手动加热允许键外,其余的按键为选择设定项目(温度显示或定时显示),每按一下choose键,设定功能变换1次。按1次“+”键,设定值对应加1。按1次“-”键,设定值对应减1。为了防止设定的参数在掉电后丢失,利用了E2PROM存储各设定参数。
2 结语
本文设计的太阳能工程热水器控制器,硬件设计简单,功能强大。经试验证明系统稳定,操作方便,值得推广。本文给出的电路是一种最基本最简单的电路,其目的是给出一种单片机的控制模式,亦可以根据用户需求,添加更多附加功能。
评论