APP下载

基于Arduino的无线遥控灯设计

2019-05-23陈子杰黄雄华郭启麟

电脑知识与技术 2019年8期

陈子杰 黄雄华 郭启麟

摘要:有线灯具在安装上需要布置电线、安装开关,还要进行线槽安装等施工采用红外传感器进行数据传输,利用ATMEGA328P-PU处理器实现数据处理和智能控制。实验表明,设计的无线灯具系统,能很好地实现无线遥控功能。

关键词:无线遥控灯;Arduino;红外传感器

中图分类号:TP18 文献标识码:A

文章编号:1009-3044(2019)08-0227-02

Design of Wireless Remote Control Lamp based on Arduino

CHEN Zi-jie, HUANG Xiong-hua, GUO Qi-lin

(School of Information Science and Engineering, Shaoguan College, Shaoguan 512005, China)

Abstract: Wired luminaires need to be equipped with wires, installation switches, Based on the Arduino system, this paper designs an intelligent remote control luminaire processor to realize data processing and intelligent control. Experiments show that the

Key word:Wireless remote control light; Arduino; Infared sensor

1 概述

红外通讯是以红外光线为通讯载体,通过红外发射模块与红外接收模块来传输数据从而完成通讯功能完成通讯功能。在红外发射模块,红外发射二极管通过数字编码的调制,将电信号转化为光信号发射到空气中。在红外接收模块,红外接收器接收到光信号后,通过电路的译码器解码译码,从而把光信号转化为电信号并做出下一步操作。

传统的灯具开关,基本上是有线开关,需要安装在墙体上,通过电线连接在灯具系统上,实现灯具的控制,使用者需要付出的成本包括开关自身、连接电线、相关的线槽等材料以及人工安装费,成本高,从开关、线路到灯具,链条长,损毁后检修等大多需要专业人员,维护成本高。为降低成本,提高使用的便利,本文基于Arduino系统,使用红外通讯设计一款无线灯具控制系统,遥控开关具有通用性,灯具控制部分也模块化设计,损坏后拔插即可更换,降低维护难度。

2 基于arduino的无线遥控灯设计

2.1 无线遥控灯功能介绍

基于arduino的无线遥控灯具系统分遥控信号发送部分和信号接收控制部分。信号发送部分利用ATMEGA328P-PU处理器以及红外传感器进行数据采集,处理。当按下遥控器上的按钮时,红外发射管发射该按键对应的红外脉冲,与灯具連接的红外接收器接收到信号时,灯具开启。

2.2 遥控信号传输机理

制作本产品所使用的红外传感器分为红外发射头以及红外接收头。红外接收头型号有很多,例如HS0038 VS838等,功能大致相同只是引脚封装不同。本次用到的红外传感器为VS838,红外发射管所发射的编码是通过单片机快速不断变化高低电频所发出的,高低电平变化的速度会改变红外发射管所发射的信号。现有的红外遥控大部分使用的方式为脉冲位置调制(PPM)和脉冲宽度调制(PWW),这两种形式的编码的代表分别是NEC和PHLIPS的RC.5。其余的还有PHLIPS的RC.6以及SONY。无线灯具使用标准为NEC标准。

NEC标准:遥控载波的频率为38KHz(占空比1:3)当某个键按下时,系统首先发射一个完整的全码,如果按键超过108ms仍未松开,接下来发射的代码(连发代码)将由起始码(9ms)和结束码(2.5ms)组成。

全码 = 引导码 +用户码 + 数据码 + 数据反码,其结构如图1所示。

红外发射管为红外发光二极管,能够根据需求通过改变电压频率发出不同的红外线。

3 电路设计

3.1 无线遥控灯接收电路

在电路设计中灯具控制部分ATMEGA328P-PU处理器对红外线接受后对继电器的处理电路,原理图如图2所示。

3.2 无线遥控灯遥控电路实现

在电路设计中灯具遥控部分,一个遥控器可以控制4个无线灯具的开启与关闭,在红外发射电路中,使用自锁开关来代替传统的按钮,按下按钮时,通过不断向外发出该按钮所对应频率的红外线,来减少发射的红外线不被红外接收器识别的情况。

4 代码实现

4.1 无线遥控灯接收模块关键代码

digitalWrite(led_state,HIGH);//将pin8上的发光二极管关闭

if (irrecv.decode(&results)) { //判断是否接收到了红外信号

if(results.value ==0xFF7A85)//判断红外信号是否匹配

{

digitalWrite(led_state,HIGH);//开启发光二极管

digitalWrite(led_pin, HIGH);//开启无线遥控灯,

}

irrecv.resume();//接受下一个红外信号

}

4.2 无线遥控灯发射模块关键代码

if(digitalRead(button1)==LOW)//判断按键是否被按下

{

irsend.sendNEC(0xFF7A85, 32);//发送对应频率的红外线

delay(2000);//延时

}

5 结语

本文讲述了在物联网浪潮中智能遥控灯的设计总体流程方案,其中重点阐述了该智能系统实例的框架构建、技术选型以及功能实现。产品目前可完成基本智能化电灯控制功能,后期将扩展更多市场需求功能,逐步实现系统优化,进而投入市场。

参考文献:

[1]Micbael Margolis. Arduino权威指南[M].第2版,杨昆云译,人民邮电出版社,2015(3):305-316.

[2]蒋俊峰.基于单片机的红外通讯设计[J].电子设计应用,2003(11):60-62.

[3] 刘西洋.信号灯红外无线遥控系统设计[J].机器视觉,2018:73-76.

【通联编辑:梁书】