智能电风扇控制器设计与开发.docx
- 文档编号:24272079
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:67
- 大小:676.79KB
智能电风扇控制器设计与开发.docx
《智能电风扇控制器设计与开发.docx》由会员分享,可在线阅读,更多相关《智能电风扇控制器设计与开发.docx(67页珍藏版)》请在冰豆网上搜索。
智能电风扇控制器设计与开发
论文题目:
智能电风扇控制器设计与开发
专业:
电子信息技术
学生:
王文帅签名
指导教师:
谢书凯签名
摘要
电风扇曾一度被认为是空调产品冲击下的淘汰品,其实并非如此,电风扇仍占据大量市场。
其主要原因:
一是风扇和空调的降温效果不同——空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用;二是电风扇有价格优势,价格低廉而且相对省电,体积轻巧,摆放方便,安装和使用都非常简单。
但是随着科技的发展,人们对电风扇的要求也越来越高了,特别是人性化、智能化的观点提出之后,而现在市场上的大部分智能电风扇只是对自动开关、根据环境温度自动调节风速大小、自动照明等功能实现智能化,并没有考虑过台式风扇的智能旋转问题。
因此对于台式风扇而言,它并不是完全的智能化。
本设计主要就是模拟实现台式电风扇的智能旋转问题。
本设计以SN8P2501B为主控制芯片,BISS0001及其外围电路作为红外感应装置,PM35L-048步进电机及6个发光二极管组合实现其功能。
红外感应模块通过步进电机的带动来检测范围内是否有人,将检测到的信号传递给SN8P2501B,当在一定时间内均检测到有人信号时,将开启步进电机旋转及LED模拟功能。
在步进电机正转180°范围内,LED循环显示(模拟风扇旋转),检测到有人时记录当前步进电机步数(即角度);检测到无人时记录当前步进电机步数(即角度),待到正转180°结束后,LED按照记录的步进电机步数循环闪烁(模拟风扇旋转),步进电机反转180°。
当正转180°均未检测到人存在,则在反转180°结束后关闭步进电机及LED模拟功能。
关键词:
电风扇,智能,SN8P2501B,红外感应,步进电机
Designanddevelopmentofintelligentfancontroller
ABSTRACT
Fanwasonceconsideredtobeoutofairconditioningproductsundertheimpactofgoods,but,infact,fansstilloccupyalotofthemarket.Themainreasons:
First,theeffectisdifferentbetweenthefanandair-conditioning-thereisastrongair-conditioningcoolingfunction,youcanquicklyandeffectivelyreducetheambienttemperature,butthewindsendfromthefanismoremoderate,moresuitableforchildrenelderlypeopleandlessphysicalpeople;Second,fanhavemanyadvantagesuchasthepriceadvantage,lowcostandrelativelyenergy-saving,lightweight,easyplaced,easytoinstallanduse.However,withthedevelopmentoftechnology,people’sdemandtofanishigherandhigher,especiallywhenthepersonpointtheviewthatthegoodsmusttobeintelligent.Butnowonthemarketmostofthesmartfanonlycanachievesomefunctionssuchasautomaticallyswitches,accordingtotheambienttemperatureautomaticallyadjustthesizeofwindspeed,intelligentfeaturessuchasautomaticlighting,itisnotrelationtotheintelligentdesktopfanrotationproblem.Sofordesktopfanisconcerned,soitisnotaentirelyintelligentfan.Thekeyofthedesignistosimulateachievetheintelligentdesktopfanrotationproblem.
ThedesignisbasedonSN8P2501Bcontrolchip,useBISS0001anditsperipheralcircuitsastheinfraredsensors,PM35L-048steppingmotorandsixLEDcombinationstoachieveitsfunction.Infraredsensormodule,drivenbysteppermotorstodetectwhethersomeonewithin,thenthedetectedsignalispassedtotheSN8P2501B.Whenacertainperiodoftimethesignalwasdetectedhavingperson,itwillopenthesteppingmotorkeyandLEDanalogfunctions,themotorwillworkinamoment.Whenthesteppermotoristurnfrom0°-180°,LEDdisplayloop(analogfanrotation).MCUwriterdownthemotorstepswhentheinfraredsensorsmoduleisthefirsttimetogetthesignalthattherehavepersons(equalangle);MCUwriterdownthemotorstepswhentheinfraredsensorsmoduleisthefirsttimetogetthesignalthattherehasnoperson(equalangle).Whenthesteppermotoristurnedto180°,LEDwillbeaccordingtothenumberofloopsteppermotorstepthatMCUhavewrittendowntoflash(analogfanrotation),stepmotorreverse180°.Whenthesteppermotoristurned180°,theinfraredsensorsmodulehasn’tgotthesignalthattherehaspersonexistence,stepmotorwillreverse180°.ItwillclosethesteppermotorandLEDanalogfunctionsaftertheendof180°.
KEYWORDS:
Fan,Intelligent,SN8P2501B,Infraredsensor,Steppermotor
1绪论
1.1智能电风扇在当今社会中的研究意义
电风扇曾一度被认为是空调产品冲击下的淘汰品,其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。
其主要原因:
一是风扇和空调的降温效果不同——空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用;二是电风扇有价格优势,价格低廉而且相对省电,体积轻巧,摆放方便,安装和使用都非常简单。
尽管电风扇有其市场优势,但传统电风扇还是有许多地方应当进行改良的,最突出的缺点是它不能根据温度的变化适时调节风力大小,对于夜间温差大的地区,人们在夏夜使用电风扇时可能遇到这样的问题:
当凌晨降温的时候电风扇依然在工作,可是人们因为熟睡而无法察觉,既浪费电资源又容易引起感冒,传统的机械定时器虽然能够控制电风扇在工作一定后关闭,但定时范围有限,且无法对温度变化灵活处理。
有鉴于现今家里不可或缺的电器产品电风扇,我们希望可以借由步进电机组合做出利用红外感应接收模块接收到有人的讯号,来改变电风扇转动的方向,以取代传统电风扇只能以固定形式转动,希望能够让电风扇自动能感应到人所在的方向,未来让电器更能人性化、科技化,以达到方便性智利于未来科技产业的发展,我们希望能将科技运用在电器上,再于产业结合,已达到居家生活里的便利性。
现今社会上,不可或缺的是将生活周遭事物简单化,而我们将运用单芯片在电风扇上,研究出符合未来人们的需求,研发低成本、多功能的全自动化电风扇让社会大众能够接受,取代传统式手动电风扇,让科技产业在电器上有重大的突破。
于以上方面的考虑,我们需要设计一种智能电风扇控制系统来解决这些问题。
1.2研究内容及论文安排
1.2.1研究内容
本论文主要目标是使电风扇能够根据人的位置来自动选择送风角度。
以SONIX公司研发的SN8P2501B为主控器,利用红外感应接收装置,接受人体辐射出的红外线,通过此讯号利用PM35L-048步进电机来改变红外感应接受装置,进而确定人体范围,再通过发光二极管指示锁定角度并模拟风扇循环闪烁。
由手动开关转变为红外线人体感应自动开关,是应用先进的红外线人体感应科技主动侦测人体的问题是否在探测范围内,在设定15秒时间内都可以探测到人,则开启电机开关,开启LED角度循环闪烁;若在15秒内开始存在有人信号,后存在无人信号,则重新计时15秒检测;若一直存在无人信号则不操作动作。
1.2.2论文安排
论文第1章为绪论,主要介绍了电风扇的现状,智能电风扇研究意义,本设计研究的内容及论文安排;第2章为系统设计方案的介绍,包括其具体可实现的功能及方案选择;第3章为硬件设计部分,这部分详细介绍了所选硬件的特性及其各部分对实现自己所需要功能的作用及其电路图;第4章为软件设计部分,给出了主程序和各子程序流程图,程序清单以附件的形式附在论文最后。
第5章为结论部分。
接下来为致谢和参考文献。
最后附有原理图及程序清单。
2系统设计方案
2.1系统总体介绍
本次设计选用SONIXSN8P2501B为主控制芯片,与外围电路构成人体范围检测系统。
MCU记录下侦讯到的人范围,并送给LED发光二极管,使其模拟风扇循环闪烁。
系统框图如下图所示:
图2-1系统框图
2.2系统功能介绍
本系统利用LED发光二极管的循环闪烁来模拟风扇的来回旋转送风动作。
主要功能为:
a)自动启动及关闭开关
我们由步进电机配合红外感应控制器经由红外线扫描来控制开关,检测到一定时间内有人时自动开启电机开关及LED闪烁;无人时关闭电机开关及LED闪烁。
b)自动搜索范围人数
我们以SN8P2501B来控制步进电机的步数,使它去侦测人数范围有多大。
c)锁定人体位置
我们利用红外感应控制器搜寻配合步进电机步数,有红外感应控制模块传回探测信号给MCU,再由MCU来记忆人体位置,记录最大最小角度,锁定人体位置。
d)发光二极管指示锁定角度并模拟风扇循环闪烁
用LED循环闪烁来模拟电风扇来回循环送风动作,每相邻两个LED之间间隔为30°。
例:
当锁定人范围为30°-90°时,LED从LED1至LED3循环闪烁(LED从左到右依次为LED1、LED2、LED3、LED4、LED5、LED6,分别代表30°、60°、90°、120°、150°、180°)。
2.3设计方案
本设计根据红外感应装置的不同处理共有两种设计方案
a)方案一
将红外感应模块前的菲泥尔滤光透镜用不透红外的材质覆盖上,让红外感应模块只能检测到一个小范围内(小于10°)的红外变化,步进电机正转180°后即可反转180°,如图2-2所示
图2-2设计后的红外感应模块探测范围
利用这种方法,可以不用考虑红外检测范围内是否存在人这种情况,原因是LED模拟的角度是以30°来递增的,相比而言,红外检测的角度远远小于模拟的角度,即使在红外检测范围内存在有人,在步进电机旋转一步后就可以检测出来,不会影响到检测的结果。
例:
当步进电机正转90°后,红外探头检测到有人(探测角度87.5°…92.5°),此时记录下的电机步数为X大步(X=3,90°);步进电机再次旋转7.5°,此时检测不到人(探测范围95°…100°),记录此时的电机步数为X+1大步(X=3,120°),对检测没有什么影响。
图2-3检测到有人存在
图2-4下一状态检测不到人
这种方法的优点:
思路比较简单,基本没有涉及到算法,在步进电机旋转速度比较慢的情况下能够很快获得人的位置,从而改变LED的闪烁;缺点:
需要利用不透红外材料来封装,在开机情况下,需要人在此等待十几秒时间,确认一直有人存在开机后才能离开此位置。
b)方案二
事先确定红外感应装置的探测角度,步进电机需要正转360°。
下面举例说明:
假设红外感应装置的探测角度为150°,人所在范围为30°-120°范围内,则在步进电机开始正转时就能够检测到有人存在(检测角度-75°…75°),步进电机旋转至90°(3大步)时仍能检测到人(检测范围30°…150°),只有当步进电机旋转至195°(6大步)时才检测不到人(检测范围120°…270°),此时记录的角度为210°(6+1大步),需要减去红外感应装置探测角度的一半,此时才是真正开始没探测到人时人的位置,即结束角度,角度为120°(6+1-(2+1)=4大步)(2+1为探测角度一半所占大步);步进电机继续正转,当步进电机正转至315°(10大步)时,又一次检测到有人(检测范围为240°…30°),此时记录的角度为315°(10大步),仍然需要减去红外感应装置探测角度的一半,则起始角度为30°(10+(2+1)-12=1大步)(2+1为探测角度一半所占大步,12为旋转360°所需步数)。
这样只记录两次值就得到了人的范围,不论人站的稀疏。
图2-5红外探头初始位置
图2-6检测到无人时的位置
图2-7检测到刚有人时的位置
这种方法的优点:
不需要做什么其他操作,开机更加人性化,不需要让电机进行反转动作,在判断完人范围后即可判断是否需要关机操作;缺点:
思路有点复杂,中间涉及到算法问题,事先必须知道此红外感应装置的探测角度,因为步进电机转速比较慢导致确定一个范围需要比较长的时间。
注:
方案一和方案二中涉及到得确定范围需要的时间是由所选红外感应装置决定的,在这里所选的BISS0001默认延时时间为10秒,因此需要的时间比较长,如果调为1秒,则步进电机旋转的速度扩大10倍,需要的时间也就相应缩短。
两种方案硬件电路完全一样,只是对红外感应装置的处理不同,主要表现在红外感应装置的探测范围上,实现不同的方案由程序控制。
本设计选用方案一作为主要思路,原因有几点:
思路简单,容易被他人理解;可以允许在未检测区域内随意改动位置,在当前正转结束后用LED模拟显示出;在实物演示中,正转后反转不会对引线产生影响;在较短时间内可以看到演示效果。
3硬件设计
本系统主要由微处理器控制、红外感应模块、步进电机模块及LED模拟风扇旋转模块等组成。
下面介绍各部分原理及电路图。
3.1微处理器
3.1.1SN8P2500系列介绍
SN8P2500系列单片机是SONIX公司最新推出的高速低功耗8位单片机。
它采用低功耗CMOS设计工艺及高性能的RISC架构,具有优异的抗干扰性能。
突出的特点是:
低成本、高抗干扰性、内置16MhzRC振荡电路、高速8位、59条精简指令集。
3.1.2SN8P2501B单片机介绍
当前市场上的单片机有51系列,STC系列等单片机,考虑到设计只需实现自动开关机及锁定人范围LED闪烁的功能,但又要确保其抗干扰能力强的特点,在考虑功能需求及成本的基础上,选择了SONIX公司研发的SN8P2501B8位单片机作为本系统的控制器,有14个引脚,如图3-1,它具有以下特性:
a)OTPROM空间:
1K*16位;
b)RAM空间:
48字节;
c)STKP堆栈:
4层;
d)多种振荡源选择:
最大可达16MHz的外部晶振、10MHz的外部RC振荡、内部16MHz的高速时钟及16KHz的低速时钟;
e)高速的CPU指令周期,可达1T,即每个指令周期为1个时钟周期;
f)满足低功耗的需求,可编程设定4种工作模式:
正常模式、低速模式、睡眠模式和绿色模式;
g)内置高速PWM/Buzzer输出接口,可输出不同频率的信号;
h)内置RTC实时时钟(0.5s)、看门狗定时器(16KHz@3V,32KHz@5V)及3级低电压检测系统;
i)具有3个中断源,2个内部中断源:
T0、TC0,1个外部中断源:
INT0。
1)I/O引脚配置
I/0口引脚为:
a)输入输出双向端口:
P0、P1、P2、P5;
b)单向输入引脚:
P1.1;
c)可编程的漏极开路引脚:
P1.0;
d)具有唤醒功能的端口:
P0、P1电平变化触发;
e)内置上拉电阻端口:
P0、P1、P2、P5;
f)外部中断引脚:
P0.0,由寄存器PEDGE控制,其触发方式为上升沿或下降沿。
图3-1SN8P2501B引脚
2)程序寄存器
图3-2程序存储器
SN8P2501B的程序寄存器为OTPROM(一次性可编程),存储器容量为1K*16位,可由10位程序计数器PC对程序寄存器进行寻址,或由系统寄存器(R,X,Y和Z)对ROM内的数据进行查表访问。
其中:
系统复位后从地址0000H开始执行;地址0008H是中断向量入口地址。
3)数据存储器
图3-3数据存储器
SN8P2501B单片机的片内RAM共有256个存储单元,地址范围为000H-0FFH。
片内寄存器可分为通用数据存储区和系统存储器两大部分。
通用数据存储区可作为用户自定义的变量,临时数据,中间数据存放地,而系统寄存器则用来控制片内外设或表示外设的状态。
4)定时/计数器
SONIXSN8P2708AMCU定时/计数器大分致为两大类。
一类为基本定时器T0,另一类为多功能定时器TC0。
二进制定时器T0溢出(从0FFH到00H)时,T0继续计数并给出一个溢出信号触发T0中断请求。
定时器T0的主要用途如下:
a)8位可编程定时器:
根据选定的时钟频率定时产生中断请求;
b)定时器:
根据选定的时钟信号产生中断请求,RTC功能仅限于编译选项为High_Clk=IHRC_RTC;
c)绿色模式唤醒功能:
T0ENB=1时,T0溢出将系统从绿色模式中唤醒。
定时/计数器TC0具有双时钟源,可根据实际需要选择内部时钟或外部时钟作为计时标准。
其中,内部时钟来自Fcpu,外部时钟INT0由P0.0引脚(下降沿触发)输入。
寄存器TC0M控制时钟源的选择。
当TC0从0FFH溢出到00H时,TC0在继续计数的同时产生一个溢出信号,触发TC0中断请求。
TC0的主要作用如下:
a)8位可编程定时器:
根据选定的时钟频率在特定时间产生中断信号;
b)外部事件计数:
对外部事件计数;
c)蜂鸣器输出;
d)PWM输出。
下面以基本定时器T0为例,说明初始值的设定方法。
T0C:
T0累加计数寄存器,上电初始值为00H,可以软件重置,每次溢出之后,初始值需要用户重置。
初始值设定方法如下:
T0C初始值=256–(T0溢出间隔时间×输入时钟)
例如:
用T0做一个10ms的定时,Fcpu=1M。
T0rate选择010(Fcpu/64),那么
T0C初始值=256–(T0溢出间隔时间×输入时钟)
=256–(10ms×1M/64)
=64H
T0M中的Bit6:
Bit4决定分频数的比率,T0的时钟源来自CPU,通过T0M中的Bit6,Bit5,Bit4来控制分频数的比率,T0ENB位控制计数器时钟,如果为1则时钟输入到T0计数器T0C中,T0开始计数,否则T0C的时钟被切断,T0C停止计数。
当T0C计数器从0FFH增加到000H时,系统会将标志位T0IRQ置为1。
表3-1T0M寄存器
0D8H
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
T0M
T0ENB
T0rate2
T0rate1
T0rate0
-
-
-
T0TB
复位后
0
0
0
0
-
-
-
0
T0TB:
RTC时钟控制位。
0=禁止RTC;
1=RTC模式。
T0RATE[2:
0]:
T0分频选择位。
T0ENB:
T0启动控制位。
0=禁止T0;
1=开启T0。
表3-2分频比
T0rate2~T0rate0
分频比
000
Fcpu/256
001
Fcpu/128
010
Fcpu/64
011
Fcpu/32
100
Fcpu/16
101
Fcpu/8
110
Fcpu/4
111
Fcpu/2
注:
在RTC模式下,T0RATE的设置是无效的。
5)中断
SONIX单片机是当今世界上很有影响力的精简指令集微控器,具有丰富的中断功能。
不过它们也存在一定的局限性,例如中断矢量只有一个,并且各个中断源之间也没有优先级别之分,不具备中断屏蔽功能。
不同的芯片具有不同的中断。
SN8P2501B单片机具有3个中断源:
2个内部中断源(定时器T0、定时/计数器TC0)、1个外部中断源(INT0/P00)。
对于SONIX单片机来说,中断源的要求是否会得到响应,受允许中断寄存器INTIEN中各位的控制。
在全局中断控制位GIE为1时,才能使能中断请求,当中断源同时产生中断时,要靠内部的查询逻辑来确定响应的次序,不同的中断源其中断地址均为0008H。
一次中断活动的全过程如图3-4所示。
图3-4中断处理流程图
在图中,
(1),
(2),(3)和(9)是由硬件自动实现的,而其它的阶段是由用户软件完成的。
有中断请求发生并被响应后,程序转至0008H执行中断子程序。
响应中断之前,必须保存ACC、PFLAG的内容。
芯片提供PUSH和POP指令进行入栈保存和出栈恢复,从而避免中断结束后可能的程序运行错误。
PUSH/POP指令仅对ACC和PFLAG作中断保护,而不包括NT0和NPD。
某些芯片PUSH/POP只能保护PFLAG寄存器内的值,ACC内的值需要用户自己保存,此芯片中PUSH/POP可直接对ACC和PFLAG进行保护。
PUSH/POP缓存器是唯一的且仅有一层,因此只能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 电风扇 控制器 设计 开发