当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > FSIOT_A物联网实验设备中红外学习模块的使用例程
FSIOT_A物联网实验设备中红外学习模块的使用例程
时间:2016-12-14作者:华清远见

在华清远见物联网实验平台中,红外板具有控制实际风扇,电灯,电视机等其他红外可控设备,红外板之所以有控制其他家电设备的功能完全在红外板自身的学习能力。下面我们红外通信特性做个简单介绍,然后给出红外学习功能的定义,及程序实验方法。

红外通信是利用950nm近红外波段(近红外(NIR,波长0.78—3µm)、中红外(MIR,波长3—50µm)和远红外(FIR,波长50—1000µm))的红外线作为传递信息的媒体。发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。接收端将接收到的光脉冲信号转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。按脉冲宽度来实现信号调制的称为脉宽调制(PWM),按脉冲串之间的时间间隔来实现信号调制的称为脉时调制(PPM)。

简而言之,红外通信的实质是符合数字通信的特性,是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。

红外通讯技术是目前在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平台所支持:

(1)通过数据电脉冲和红外光脉冲之间的相互转换实现无线的数据收发;

(2)主要是用来取代点对点的线缆连接;

(3)新的通讯标准兼容早期的通讯标准;

(4)小角度(30度锥角以内),短距离,点对点直线数据传输,保密性强;

红外学习是指学习设备可以捕获空间中传输的的红外遥控信号,并将该信号存储在设备自身内,通过控制指令,又可将捕获的红外信号以原有模式发送出去,达到控制其它指定设备的目的。

红外学习的定义

红外学习是指学习设备可以捕获空间中传输的的红外遥控信号,并将该信号存储在设备自身内,通过控制指令,又可将捕获的红外信号以原有模式发送出去,达到控制其它指定设备的目的。

红外遥控器的特点是使用方便、功耗低、抗干扰能力强,已经在市场上得到广泛的应用。 红外学习型设备可以学习红外遥控器的红外信号,同时在控制中可以实现多种信号之间转换控制。在图-7中给出红外学习的应用模式。

典型应用:

宾馆空调节能集中控制
        学校教室电视,投影机,
        机房,基站,会议室空调远程管理
        家庭家电遥控器控制
        智能家居远程控制
        公共场所空调远程管理、

在红外板上所使用的红外模块特性如下:
        红外载波频率:15kHZ--80kHZ
        红外遥控角度:<±15°(视环境、距离、学习情况和遥控器灵敏度而定)
        红外遥控正对距离: 1.5米--10米(视环境、角度、学习情况和遥控器灵敏度而定)
        以红外码为单位组织可以支持108个单码按键,36个双码按键
        标准UART接口,TTL电平

电路接口:

在FSIOT_A红外学习板中,M2是红外学习模块,SAM3S4B通过串口与红外模块进行通讯,通过固定的指令集,先发送学习指令,然后再发送控制指令。硬件电路如图10-8。在操作学习模块时,可以直接按串口的方式进行操作。

实现程序:

在编写控制程序,先将红外信号学习到学习模块中,使用串口调试软件,配置串口,发送F0进入学习模式,发送地址(例如0x40,就是将学习的红外编码存储在0x40的位置)。

voidprocess_dev(unsigned char dev[])
        {
                switch(dev[2])
                {
                        /*++++++++++++++++++++++++*/ //add by luyjin
                        case 0:
   &nnbsp;                    USART1_Write(USART1,0x49,0);
                        printf("open the cution\n\r");
                        break;
                        case 1:
                        USART1_Write(USART1,0x48,0);
                        printf("close the coution\n\r");
                        break;
                        /**+++++++++++++++++++++++++**/
                        case 6:
                        printf("open the led\n\r");
                        USART1_Write(USART1,0x40,0);
                        break;
                        case 7:
                        printf("close the led\n\r");
                        USART1_Write(USART1,0x41,0);
                        break;
                        /************************/ // add by luyjin
                        case 12:
                        printf("open the tv\n\r");
                        USART1_Write(USART1,0x42,0);
                        break;
                        case 13:
                        // printf("close the tv\n\r");
                        USART1_Write(USART1,0x43,0);
                        break;
                        /************************/

                        /************************/ // add by luyjin
                        case 8:
                        printf("open the fan1\n\r");
                        USART1_Write(USART1,0x46,0);
                        break;
                        case 11:
                        printf("close the fan\n\r");
                        USART1_Write(USART1,0x47,0);
                        break;
                        /************************/
        }

上面程序主要功能实现了,通过串口USART1给红外学习模块发送控制指令:开窗帘,关窗帘,开灯,关灯,开电视,关电视,,一级风,关风扇,这些编码是直接学习红外遥控器后获得的。

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)