基于单片机的全自动电热水壶的设计
2021-05-17郑慧珍
郑慧珍
(漳州职业技术学院 电子工程学院,福建 漳州 363000)
随着人们生活节奏的加快,全智能化的家电占据了家电市场的绝大多数份额,是我国乃至世界重要的经济增长点之一。传统的电热水壶,采用双金属片作为感温器件。水加热接近或者达到沸点时,双金属片受热变形,断开开关,达到控温的效果。这种电热水壶温度控制点不确定,有可能在还未充分煮沸的情况下停止加热。干烧保护反应速度慢、无法及时断开电源,无人看守时存在火灾的隐患。加热功率不可控,导致煮沸时飞溅时有发生,增加了烫伤的风险。内部无智能化设计,加水、烧水等所有环节,均需要手动控制。[1]针对上述问题,设计了一种以STM8单片机为核心的电热水壶装置。采用可控硅控制加热开启关闭,调节加热功率,实现防飞溅、保温等功能。采用微型隔膜泵和步进电机,控制水龙头自动对准加水孔并加水。引入了多个PID控制环路,安全可靠地控制隔膜泵、步进电机和晶闸管等部件。
1 基本原理
采用STM单片机作为控制核心,对显示、加热、加水、检测等单元进行控制。该芯片具有丰富的IO口。各IO口复用了各种强大的功能,例如UART串口、I2C接口、SPI接口、AD转换端口和PWM输出。由于其价格低廉,且技术成熟,工作稳定,被广泛地应用到家电产品中。整机电路框图如图1所示。交流市电输入,通入AC-DC开关电源模块,将其降压为12 V的直流电源。再通过DC-DC电路,转换为纹波更小的5 V电源,为单片机等芯片供电。
图1 电路结构示意图
人机交互接口采用触摸按键和定制特殊笔段的数码管。触摸面板对地等效为一个电容,与触摸按键驱动芯片内部电路组成振荡电路。当手指放在触摸面板上时,对地电容值发生微弱的变化,改变了振荡频率。频率变化量超过一定值,则判定为按键动作。显示面板主要用于显示实时温度值,选用定制的LED屏。由于LED显示具有自发光的特性,不需要借助外部光线,特别适用于台式家电。单片机读取触摸按键电路的用户指令。当需要加热时,开启加热电路,然后实时检测测温电路,适时改变加热功率,达到闭环控制的效果。加水功能同样采用闭环控制的原理,当水位过低或者按键指令要求加水时,单片机控制步进电机和水泵有序运行,达到自动加水的效果。当水位达到上限时,关闭水泵并复位水龙头位置。[2-3]
2 电路设计
2.1 电源电路设计
电源电路是单片机稳定运行的基础,全天候为单片机供电,在兼顾成本的同时,需要选用长期稳定的AC-DC方案。全自动电热水壶,选用合泰半导体公司出品的HT7A6322芯片作为开关电源的主芯片。该芯片是一种高度集成的小功率初级转换芯片,内置电流模式PWM控制器及高压功率晶体管。AC-DC转换电路如图2所示。市电从火线L和零线N端子输入,经过保险丝后,送入U1整流桥和电容C14,生成变化比较平缓的直流送入T1的PIN7。U2的SW引脚以60 kHz的频率开关,使T1的初级线圈7~8产生交流。T1的次级线圈5~6产生感应电流,利用D4进行半桥整流,C15去耦,通入U2的PIN4,为U2提供电源供应。T1的1~3线圈在初级线圈的激励下,产生频率为60 kHz的交流信号,经过二极管D1作半桥整流后输出直流VCC。R13和R14组成分压电路,分压得到的电压通入U5的REF引脚。VCC过高,导致REF引脚电位高于2.5 V时,U5导通,U4的发光二极管发光。经过光电耦合后,反馈至U2的FB引脚,将该引脚电位拉高。当FB引脚电压值高于0.23 V时,SW引脚输出被关闭,从而降低VCC节点电压。反之,当VCC直流电压过低时,FB引脚电压低于0.23V,则恢复SW引脚输出。通过闭环控制,将VCC电压稳定在一定值。合理选择R13、R14的比例,即可得到+12 V的电源。另外,R5和C13,用于防止开关电源的高频干扰从电源线外泄,干扰其他的用电设备。VCC电源,经过AM1117之类的LDO稳压后,得到+5V电压,为单片机等芯片供电。
图2 AC-DC转换电路
2.2 加热和测温电路设计
烧水壶和消毒容器需要加热管加热以及温度测量。分别在容器底部安装50 Ω的发热管和热敏电阻,电路连接方式如图3所示。采用3063光电耦合器U6和双向晶闸管Q1,控制加热管的开启关闭。双向晶闸管Q1选用BT138,主电极最大电流12 A,满足50 Ω加热管的功率需求。控制极最大电流10 mA,直接用单片机IO口控制存在诸多缺点。一方面,控制电流较大,加大单片机过度发热的风险;另一方面,恶劣环境下,交流市电会通过控制极流入单片机内部,烧毁单片机。因此,选用3063光电耦合器,起到强弱电隔离的效果。当PA1为高电平时,光耦双向导通,火线L电流通过R3,光耦,R2和R17留回零线N。双向晶闸管Q1控制极与主电极存在压差,从而进入导通状态。反之,当PA1为低电平时,Q1控制极与主电极无压差,交流市电经过零点后,Q1保持截止状态,停止加热。因此,给PA1加入频率远低于50 Hz的PWM信号,控制正脉冲宽度即可调整加热功率。R16和C6支路与Q1并联,起到保护Q1的作用。保险起见,晶闸管需要涂上导热硅脂,用螺丝与散热片固定,提高散热速度。[4-5]
图3 加热和测温电路
热敏电阻R4安装于消毒容器或者烧水壶的底部,涂上导热硅脂促进底部金属和热敏电阻热交换。当水温升高时,热敏电阻值降低,R4和R19的分压比例发生变化,AD转换AdTemp节点电压,即可换算为温度值。C7和C8分别与电阻并联,一定程度上消除电压值抖动,提高温度检测稳定性。
2.3 水泵和水龙头转动电路设计
水龙头抽水功能采用EDLP600隔膜泵来实现。EDLP600是气液两用的微型隔膜泵,根据容积式泵的原理设计而成。直流电机转动时,电机轴上的偏心轮,驱动橡胶循环往复运动,在腔体里形成吸、排动作,通过单向阀的闭合、打开动作达到吸入排出气体或液体的效果。该隔膜泵额定电压为12 V,额定电流为0.3 A,无法直接用单片机驱动。如图4所示,采用Q2和Q3三极管驱动。当PA2为高电平时,Q2形成共集电路输出高电平,拉升Q3基极电压。Q3采用共射接法,基极电位升高时导通,带动隔膜泵工作。采用35BYJ46步进电机驱动水龙头转动,由ULN2003A芯片驱动电机。[6]PD0至PD3连接单片机IO口,利用定时器中断每隔一定时间操作4个IO口的电平值,使电机工作在四相八拍的状态即可带动水龙头转动。
图4 水龙头抽水和转动电路
水龙头转动需要检测3个定位点,包括水龙头复位位置、热水壶加水位置和消毒容器加水位置。将滑动金属片连接地线,其中一端与水龙头固定,水龙头转动时另一端随之旋转一定角度。在旋转路径上设置触点。到位时,触点与金属片接通,等同于开关接通,单片机设置三个开关检测电路即可检测水龙头的三个位置。水位检测功能与之相似,饮用水淹没特定触点时,电路接通,设置两个开关检测电路即可实现水位上限和下限的检测功能。[7]
2.4 显示和触摸检测电路
显示电路和触摸按键检测电路如图5所示。采用特殊符号的数码管作为显示屏,用于显示热水壶和消毒容器的实时温度值。TM1652是数码管驱动芯片,通过SDA引脚连接单片机UART串口,实现单向通信。触摸按键检测电路采用合泰半导体的BS82B08A芯片,该芯片最多可以同时检测8个触摸按键,通过I2C接口输出按键状态。[8-9]
图5 显示和触摸检测电路
图6 任务三状态转换图
3 软件设计
传统的单片机编程方法是顺序执行法。单片机上电后,经过短暂的初始化环节,进入死循环。在死循环中,完成一个任务再执行下一个任务。由于全自动电热水壶水龙头转动、加热等环节需要较长的时间,如果采用顺序执行法,无法及时响应突发事件和按键命令。在CPU中安装操作系统,根据整机功能划分多个任务,采用任务调度机制,执行各项任务,可以解决突发事件和按键命令响应不及时的问题。但是由于成本问题,家电产品使用的单片机内部资源有限,引入操作系统将占用大量的内部资源,反而无法完成整机控制的任务。借鉴操作系统的原理,编写一个简易的任务调度和轮询的机制,既节约芯片资源,又能快速响应各个事件。[10]根据功能特点,将其划分为3个任务:(1)热水壶加热任务;(2)消毒容器加热任务;(3)水龙头转动任务。各个任务之间用信号量进行消息发送。当任务一或任务二检测到水位过低时,发送信息通知任务三加水。任务三一边驱动步进电机旋转,一边检测是否到达加水点。到达加水点后,步进电机停止,隔膜泵接通开始抽水。抽水过程中检测水位是否达到上限位,达到上限位立刻关闭隔膜泵,水龙头回到复位位置。若水位未达到上限值且时间超过阈值,则停止抽水,屏幕显示加水异常错误代码。详细的转换切换如图6所示。
图7 任务二状态转换图
任务一和任务二都是检测温度和外部命令、控制加热管加热,状态转换过程非常相似,任务二状态转换如图7所示,任务一不再赘述。开机时关闭加热管,当接收到消毒命令时,先进行全功率加热。温度超过95 ℃时,降低加热功率防止飞溅。加热过程中,水位低于下限时,停止加热,等待任务三加水完毕后继续加热。加热到100 ℃后,关闭加热管。
4 整机测试
对整机各项功能进行了测试。温度低于95 ℃时,测得加热功率约为950 W;温度高于95 ℃时,测得加热功率约为500 W。温度高于99.0 ℃时,延时20 s后,停止加热。水位低于下限时停止加热,并启动水龙头加水。水龙头能按照逻辑要求闲时停在复位位置。需要加水时,能转动到热水壶或者消毒容器位置加水。水龙头转动定位精确,未发现水流飞溅现象。水泵抽不到水时,水泵启动超过一分钟仍未检测到水位达到上限,整机能及时抽水和加热,报警停机。综上所述,全自动电热水壶各项功能均达到了要求。