这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 毕业设计专区 » 基于IAP15F2K61S2单片机的智能窗帘控制系统

共1条 1/1 1 跳转至

基于IAP15F2K61S2单片机的智能窗帘控制系统

专家
2014-02-25 16:28:12     打赏

作者:南京邮电大学 纪兴宇 余雪玮 李晓蕊

 

  作品简介

  开发背景:

  在21世纪这个信息化的时代,精神文明以及科学技术高度发展人们对周围的环境与舒适度要求越来越高。在计算机领域、通信领域、网络领域以及智能控制领域飞速发展的趋势下家庭居住环境也变得越来越舒适,家中的各项家具渐渐地实现了现代化与智能化。遥控智能窗帘控制系统改变了以往陈旧系统的缺点该系统能够根据室外光照强度的不同来控制窗帘的打开闭合,也可以通过红外线遥控一键打开或者关闭窗帘。本设计利用光敏电阻对系统外部的光线强弱进行检测,然后将光敏检测模块的电阻变化转化为电压变化再将电压变化的信号传送到单片机,最后单片机通过电机驱动模块控制着步进电机的正反转实现窗帘的来回移动,我们利用IAP15F2K61S2单片机的优点以及简单实用性顺利的实现了对智能控制的要求。

  结构说明:

  该系统采用的主控器件IAP15F2K61S2单片机,正是运算与控制单元的集合体。系统的整体主要由硬件和软件两部分组成。硬件部分由单片机扩展的外围电路以及各种实现单片机系统控制功能的接口电路组成;软件部分主要由单片机系统实现其特定控制功能的各种程序组成。

  功能与使用说明:

  (1)功能:

  1、红外控制:利用红外模块及红外遥控器,控制窗帘的开关。

  2、光控制:利用光敏电阻及相关硬件,当光照强度达到一定值时

  窗帘打开,相反当光照强度弱到一定值时,窗帘关闭。

  3、按键控制:利用外接按键可以控制窗帘的开闭。

  (2)使用说明:

  1、当光照达到一定强度的时候,窗帘自动开启。光线变暗时窗帘自动关闭。这个是光控。

  2、若窗帘没有打开时,按key键窗帘会打开。再按一次,窗帘闭合。这是按键控制。

  3、窗帘处于关闭状态时遥控上的1键,窗帘开启,若窗帘处于关闭状态按1键窗帘开启。这是红外控制。

  作品特色:

  红外控制,光控制,按键控制三种方式可以同时控制窗帘的开关。不必再用手拉动窗帘提高了工作的效率;不必再用单独按键转换控制模式操作简单,方便。

 

  平台选型说明

  自制PCB开发板,IAP15F2K61S2单片机,USB DC 5V供电。

 

  设计说明

  设计原理:

  首先该系统能够通过窗帘上的开关按钮来开闭窗帘,显然这是目前市场上自动窗帘都具有的基本功能。在这个基本功能的前提下同时本设计还根据不同的需求设计了可以根据光照强度来控制窗帘的开闭在实际选取设计方案和采用元器件方面,该系统本着简单实用经济的思想尽量简化电路设计用最简单的电路布线和选用最经济实用的元件来达到系统设计的要求。

  自动窗帘控制系统具有以下几个基本功能:

  1、红外控制:利用红外模块及红外遥控器,控制窗帘的开关。

  2、光控制:利用光敏电阻及相关硬件,当光照强度达到一定值时窗帘打开,相反当光照强度弱到一定值时,窗帘关闭。

  3、按键控制:利用外接按键可以控制窗帘的开闭。

  设计方案:

  这个窗帘设计方案是基于单片机微处理器作为主控制芯片的并且采用步进电机来控制(图中未画出)而不同的部分在主要在于单片机外部的检测器件。我们采用的光照强度来控制窗帘的开闭加以红外线控制,更加方便实用基本能够满足人们对窗帘的智能化要求

  (1)光控电路

  在本窗帘设计的系统中智能窗帘自动控制系统中要实现的光控功能就是依据室外光线的强弱来实现窗帘的自动开闭的,这样我们就需要用到依据光线感应的传感元器件。我们的设计采用了光敏电阻。制作光敏电阻的通常用材料为硫化镉另外还有硫化铅等其他半导体材料。这些特别材料具有在特定波长的光照射下其阻值能够迅速变小的特性。而我们所用到的光敏电阻器就是利用了这些材料的特性而制作成的。入射光变强电阻减小入射光变弱电阻变大。下面是本设计中光控部分的电路当外部的入射光照射D3光敏电阻D3阻值立刻减小同时2处电压变大经过LM393电压比较器U2>U3输入单片机的P0.4端口的为低电平此时处于关闭状态的窗帘自动打开。反之窗帘会自动关闭。用户可以根据个人爱好通过调节与R11相连的滑动变阻器来设定LM393电压比较器的参考电压。

  (2)步进电动机

  步进电动机是一种能够将接收到的电脉冲信号直接转换而成线位移或者角位移的一种驱动元件通常输入步进电机的是脉冲序列而从步进电机的输出量则为相应的步进运动或者相应的增量位移。在步进电机正常运转的情况下它每运转一周具都有固定的步数。当步进电机在正常运转的时候步进电机的输入脉冲的频率与步进电机的旋转转速都会保持相当严格的对应关系丝毫不会受到负载的变化的影响同样也不会受到电压波动的影响。如图2-10所示为本设计中步进电机运行的原理图。

  步进电机不但具有瞬间启动的优势同时还具有急速停止的优越特性在控制步进电

  机的电路步进控制器的主要作用就是把将接收到的输入脉冲转换成环型脉冲然后步进电机根据相应的脉冲来控制步进电机的运转方强。可以通过改变脉冲的顺序达到改

  变转动的方向的效果。在窗帘控制系统中选用了型号为24BYJ48的步进电机。24BYJ48步进电机的主驱动方法以及主要参数如下图所示。步进电机的驱动方法如下表所示

  步进电机驱动电路:

  使用驱动芯片直接驱动步进电机本模块使用ULN2003双极型线性集成电路ULN2003是一个单片高电压、高电流的达林顿晶体管阵列集成电路。ULN2003是有7对NPN达林顿管组合而成的在UIN2003的高电压输出特性能够转换感应负载对于单个达林顿对的集电极电流是500mA。而达林顿管并联可以承受更大的电流。本设计中驱动电路采用了单片机的P0.4口作为外部信号的输入用单片机的P2口作为信号输出。其中ULN2003的1、2、3、4引脚分别与单片机的P2.3,P2.2,P2.1、P2.0相连接。然后ULN2003的16、15、14、13引脚分别与步进电机P1的2、3、4、5相连。其中P1上的1始终接电源正极然后根据单片机输出的P2口输出的信号转化为步进编码实现

  电机的正转与反转。

  如图所示为步进电机的驱动电路图:

  (3)红外线发射部分

  一般情况下红外遥控信号发射器、红外线信号微处理器、红外遥控信号接收器以及红外线外围电路四个模块组合在一起就能构成一完整的个外线遥控系统。当按下红外线遥控器上面的其中一个按键就会产生相应的红外线遥控的编码脉冲本电路设计的遥控接收模块型号是HX1838 接收模块完能够通过遥控信号的接收、放大、检波、整形然后解调出遥控编码脉冲。本设计采用了市场上较为廉价的万能遥控器遥控器型号是NEO编码遥控。用户识别码为0x0c。本设计采用了遥控其上的“1”按键作为遥控开关窗帘控制键。

  (4)红外接收部分

  本设计的红外线接收部分采用了红外线一体化接受头它的型号是TL1838。静态的时候输出端输出的是高电平当接收到红外信号后则按照红外线信号的数据波形输出相应的负脉冲数据信号。单片机的P3.2口的第二功能是外部中断0 (INT0)利用P3.2口的第二功能接收红外线的信号。当红外线的信号从遥控器传输过来这时与单片机连接的P3.2口电平被拉低。如果此时单片机正在进行其他的工作单片机就会立刻停止工作,并且瞬间转移到接收红外线信号并进行处理接收到的信号的工作。如下图所示为红外接收

  硬件电路图。

  (5)软件控制部分

  主程序要的任务是系统初始化操作以及各个子程序间的联系主程序是一个无限循

  环,主要的功能就是完成单片机初始化开关中断对按键进行扫描控制步进电机工作

  显示步进电机的工作状态。

 

主程序:

void main()

{

init();                            //初始化函数

while(1)

  { 

  if(irdateok==1)                   //红外是否正在接收数据

  {

   irdateok=0;

   deal_with();                     //接收数据

  }

  KG();                             //对按键key、光敏模块的处理

  yaokong();                        //红外遥控处理

  }

}

控制窗帘转动的动力部分:主要实现的步进电机的正转与反转。       

/**************步进电机正转函数****************/

void zhengzhuan()

{

uchar j;

  for(j=0;j<8;j++)

    {

     P2=clockWise[j];

     delay(speed*5);

    }

   P2=0;

    delay(speed*5);

}

/************步进电机反转函数*****************/

void fanzhuan() 

 {                                                    

 

uchar j;

  for(j=0;j<8;j++)

    {

     P2=clockWise1[j];

     delay(speed*5);

    }

    P2=0;

    delay(speed*5); 

}

外部中断0和定时器中断0同时控制红外接收模块的接收信号:

void int0() interrupt 0

{

 if(irflag==1)

 {

  if(irtime>32)

  {

   bitnum=0;

  } 

   ce=0;

   irdate[bitnum]=irtime;

  irtime=0;

  bitnum++;

  if(bitnum==33)

  {

   bitnum=0;

   irdateok=1;

  }

 }

 else

 {

  irflag=1;

  irtime=0;

 } ce=1;

}  

void T0_time() interrupt 1

{

 irtime++;

 

此文档的相关视频来自:http://v.eepw.com.cn/video/play/id/13343




关键词: 单片机     控制系统     红外线    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]