毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

基于EasyARM615的家居智能环境控制系统 第8页

更新时间:2014-6-28:  来源:毕业论文

基于EasyARM615的家居智能环境控制系统 第8页
图3-12  门磁信号接收器
4 详细设计
智能家居控制系统主要实现以下优个功能,它们包括:控制窗帘、窗磁报警、温度检测、烟雾报警、光强检测和Zigbee无线通讯。我采用EasyARM615作为中控台,加上外围的模块组成这个系统,下面详细论述软硬件的详细设计思想与方案。
4.1 窗帘控制模块的设计
4.1.1工作原理简介
在EasyARM615上已经具有按键,所以在窗帘控制模块中,通过按键触发电机运动,实现控制窗帘的功能。只要用户在中控台按下相应的按键,即可以对窗帘进行开启与关闭的操作。具体的工作原理是:通过按键向开发板发信号,通过GPIOPinRead()的函数接受按键信号,然后向连接电机的GPIO口PC_7引脚发送高低电平,载流导体在磁场中要受到电磁力的作用,因此,ab和cd两导体(如图4-1所示)都要受到电磁力的作用。根据磁场方向和导体中的电流方向,利用电动机左手定则判断,ab边受力的方向是向左,而cd边则是向右。由于磁场是均匀的,导体中流过的又是相同的电流,所以,ab边和cd边所受电磁力的大小相等。这样,线圈上就受到了电磁力的作用而按逆时针方向转动了。当线圈转到磁极的中性面上时,线圈中的电流等于零,电磁力等于零,但是由于惯性的作用,线圈继续转动。线圈转过半州之后,虽然ab与cd的位置调换了,ab边转到S极范围内,cd边转到N极范围内,但是,由于换向片和电刷的作用,转到N极下的cd边中电流方向也变了,是从d流向c,在S极下的ab边中的电流则是从b流向a。因此,电磁力Fdc的方向仍然不变,线圈仍然受力按逆时针方向转动。可见,分别处在N、S极范围内的导体中的电流方向总是不变的,因此,线圈两个边的受力方向也不变,这样,线圈就可以按照受力方向不停的旋转了,通过齿轮或皮带等机构的传动,便可以带动窗帘运动。

图4-1 电机的工作原理
4.1.2程序函数的设计
首先,在主函数中定义控制电机所需要用到的GPIO口,使用了GPIO口中C组的PORT7(在开发板上应该短接PC_7):
#define  Motor_PERIPH      SYSCTL_PERIPH_GPIOC    //定义电机C组的GPIO口                       
#define  Motor_PORT        GPIO_PORTC_BASE
#define  Motor_PIN         GPIO_PIN_7             //定义PC_7
#define  Motor_RUN()       GPIOPinWrite(Motor_PORT ,  Motor_PIN , 0x01 << 7)
                                                  //定义电机运行
#define  Motor_STOP()      GPIOPinWrite(Motor_PORT ,  Motor_PIN , 0x00 << 7)
//定义电机停止

接着定义蜂鸣器,使用了GPIO口中A组的PORT5(在开发板上应该短接PA_5):
#define  SPEAK_PERIPH      SYSCTL_PERIPH_GPIOA   //定义蜂鸣器A组的GPIO口
#define  SPEAK_PORT        GPIO_PORTA_BASE
#define  SPEAK_PIN         GPIO_PIN_5            //定义PA_5
#define  SPEAK_ON()        GPIOPinWrite(SPEAK_PORT , SPEAK_PIN , 0x00 << 5)
                                                 //定义蜂鸣器运行
#define  SPEAK_OFF()       GPIOPinWrite(SPEAK_PORT , SPEAK_PIN , 0x01 << 5)
//定义蜂鸣器停止

然后编写控制电机的函数:
void Motor_Cort(unsigned char Com)
{
 if(Motor_Cor)
  {
      Lcd_Seg.D2 = AscToSeg('-');
      Lcd_Seg.D3 = AscToSeg('-');
      Lcd_Seg.D4 = AscToSeg('r');               
      Lcd_Update();             // 刷新LCD的内容
      uartPuts("电机转动");
      UARTCharPut(UART0_BASE, '\r');         //  回显回车换行<CR><LF>
      UARTCharPut(UART0_BASE, '\n');
      Motor_RUN();
       }
  else
   {
      //Lcd_Seg.D1 = AscToSeg('S');                           
      Lcd_Seg.D2 = AscToSeg('-');
      Lcd_Seg.D3 = AscToSeg('-');
      Lcd_Seg.D4 = AscToSeg('S');               
      Lcd_Update();              // 刷新LCD的内容
      uartPuts("电机停止");
      UARTCharPut(UART0_BASE, '\r');          //  回显回车换行<CR><LF>
      UARTCharPut(UART0_BASE, '\n');
      Motor_STOP();
            }
  }
最后,在主函数调用Motor_Cort()控制电机的运动。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

基于EasyARM615的家居智能环境控制系统 第8页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。