1.引言
随着,2012年10月30日飞利浦在AppleStore出售最新的高科技Hue系列LED灯,并且只会交由苹果出售。Hue系列将是完全可有自定义的,并且通过一个灯泡内红蓝绿三原色的LED可以混合出1600万种颜色的灯光。整个过程完全由iPhone上的App来进行控制。从而引发了智能灯控发展的新思考,国内相关人士也纷纷进行研究。考虑到Hue是采用WiFi无线控制,而国内WiFi并未普及,本研究采用更普遍的蓝牙技术,采用手机蓝牙与单片机通信产生可调占空比PWM波信号控制LED驱动电路实现LED的调光和DIY调色。
2.脉冲宽制(PWM)调光技术
PWM调光是一种利用简单的数字脉冲,反复开关LED驱动器的调光技术。应用者的系统只需要提供宽、窄不同的数字式脉冲,即可简单地实现改变输出电流,从而调节LED的亮度。PWM调光的优点在于调光范围大,只要带宽足够,任何模拟值都可以使用PWM进行编码,PWM调光可以在精确控制LED的亮度的同时,也保证LED发光的色度。
2.1 脉冲宽制(PWM)调光原理
利用人眼睛视觉惰性,按固定频率 *** 作占空比实现LED亮度调节,只要调光比即PWM波频率大于200Hz人眼就不会感觉到LED的闪烁。具体调光实现,通过控制LED的亮灭时间,从而控制LED亮度,从电力学来看就是控制一定周期内电流的有效值。这种方法在改变电流有效值大小的同时不改变电压和电流的大小,这样就保证了LED的发光色度,这是模拟调光和可控硅调光无法实现的。
2.2 占空比
占空比是指高电平在一个周期之内所占的时间比率。方波的占空比为50%,占空比为0.5,说明正电平所占时间为0.5个周期。
Ts为脉冲周期,Tw为脉冲宽度
占空比τ=Tw/Ts×100.
占空比的解释可以归纳为如下几种:
1)在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。
2)在一段连续工作时间内脉冲占用的时间与总时间的比值。
3)在周期型的现象中,现象发生的时间与总时间的比。
也就是电路释放能量的有效时间与总释放时间的比。
2.3 调光比
调光比则是按下面的方法计算:
Foper=工作频率,Fpwm=调光频率,调光比率=Foper/Fpwm
其实也就是调光的最低有效占空比,比如Foper=100khz;Fpwm=200Hz,则调光比为:100k/200=500.
3.蓝牙模块组成
3.1 蓝牙技术基础
蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现数据共享已成为常理,将手机变身为遥控器为人们的生活带来无限方便。[1]
蓝牙技术由三部分组成,包括蓝牙无线电技术、蓝牙协议栈和蓝牙互 *** 作性。
3.1.1 蓝牙无线电技术
蓝牙无线电工作在全球通用的2 。 4 G H zISM(即工业、科学、医学)频段,支持全双工传输,使用IEEE802.15协议。蓝牙设备即连即用,抗干扰能力强、使用方便[2]
3.1.2 蓝牙协议栈
蓝牙协议栈包含一个软件栈和一个硬件栈。蓝牙硬件协议栈由蓝牙硬件提供,蓝牙软件协议栈由软件实现。蓝牙软件协议栈提供Java蓝牙API给程序开放人员使用。
3.1.3 蓝牙互 *** 作性
蓝牙互 *** 作性包括三方面内容:①通用访问Profile定义了设备管理功能性;②服务发现应用Profiles定义了服务发现方面的内容;③串口Profiles定义了互 *** 作设备和模拟串口电缆的能力3.2 HC-O6蓝牙模块
BC04外置8M Flash,带EDR模块HC-06为民用级,兼容HC-04工业级。其中,HC-06模块的TX管脚跟STC15F204EA单片机的P3.0管脚相接,RX管脚跟P3.1接。HC-06模块接收手机端发来的数据,然后在通过串口TR,TX管脚与单片机通信。
蓝牙2.0带EDR,2Mbps-3Mbps调制度,内置2.4GHz天线,外置8Mbit FLASH,低电压3.3V工作(3.1V~4.2V)配对时30~40MA波动,配对完毕通信8MA,可选PIO控制标准HCI端口(UART or USB),数字2.4GHz无线收发射,CSR BC04蓝牙芯片技术,自适应跳频技术,蓝牙Class 2功率级别,工作温度为-25至+75,协波干扰为2.4MHz,发射功率3dBm,有效控制距离为10m.
4.手机APP设计
4.1 蓝牙连接相关程序设计
首先,初始化本地蓝牙设备,建立LocalDevice类,包括取得本地设备实例、蓝牙名称、设置发现模式、获得发现代理。创建public int BTS_Init()类函数,实现蓝牙初始化判断,寻找默认蓝牙设备,打开蓝牙。
启动蓝牙设备搜索,创建public voidBTS_StartScan()类函数,开始寻找从机蓝牙设备,注册搜寻函数,创建public int BTS_ConnectToDevice(String DeviceAddress)类函数,实现连接到一个指定的蓝牙设备。
创建public int BTS_SendDates(Stringbuffer)类函数实现字符串发送到已连接好的蓝牙设备上,创建public int BTS_Finish()类函数结束蓝牙通信,最后创建接收ACTION_FOUND广播的BroadcastReceiver privatefinal BroadcastReceiver mReceiver=newBroadcastReceiver()。
4.2 控制信号相关程序设计
首先创建一个用于控制信号的类publicclass PwmcontrolAcTIvity extends AcTIvity{},里面包含创建界面的类函数public voidonCreate(BundlesavedIn stan ceState){},发送控制信号类函数public void onStop TrackingTouch(SeekBar seekBar){}。
创建类class InitThread extends Thread{},实现资源加载线程,里面创建用于四路信号之间转换的public InitThread(PwmcontrolAcTIvity act){}类函数,实现与蓝牙程序接口的public void run()线程体,用于软件退出的类函数public booleanonKeyDown(int keyCo de,KeyEvent event)。
5.单片机控制信号设计
5.1 硬件电路设计
系统框图如图1所示,本硬件电路采用STC15F204EA单片机为主控器,CH-06蓝牙模块的TXD与单片机11管脚P3.0连接,RXD与P3.1相连,实现蓝牙串口通信连接,从P1.0,P1.1,P1.2,P1.3四个口输出四路可调占空比的PWM信号,采用一个L298芯片将单片机控制信号和LED电源驱动隔离,避免了单片机带负载能力弱的缺点,以实现驱动大功率LED.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)