产品选型

蓝牙 单片机 灯 电子DIY:基于手机蓝牙控制的LED灯的设计

小编 2024-11-23 产品选型 23 0

电子DIY:基于手机蓝牙控制的LED灯的设计

电子DIY:基于手机蓝牙控制的LED灯的设计

简介:本研究采用更普遍的蓝牙技术,采用手机蓝牙与单片机通信产生可调占空比PWM波信号控制LED驱动电路实现LED的调光和DIY调色。

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 蓝牙技术基础

蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现数据共享已成为常理,将手机变身为遥控器为人们的生活带来无限方便。

蓝牙技术由三部分组成,包括蓝牙无线电技术、蓝牙协议栈和蓝牙互操作性。

3.1.1 蓝牙无线电技术

蓝牙无线电工作在全球通用的2.4GHzISM(即工业、科学、医学)频段,支持全双工传输,使用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。

图1 系统框图

5.2 程序设计

主函数流程图如图2所示,定义完相关变量和相关函数声明后,设计串口通信函数,设置定时器1中断,中断函数为占空比控制函数,然后设计数据接收函数,当串口服务函数接收到数据时,将数据发送到数据接收函数,然后将接受到的字符数据通过字符转型函数进行字符的转型,然后通过标志iCommdType判断控制哪一路信号,当无标志信号来时,一直循环检查,检查到相应的标志信号,然后执行占空比调节函数蓝牙模块与单片机之间的通信使用模拟串口实现的,串口为标准配置:波特率9600,编写一个串口初始化函数void UART_INIT(),初始化相关标志,和寄存器,然后编写中断接收函数void tm0()interrupt 1 using 1,接收串口发来的数据。设定定时器1中断并编写中断服务函数void tm1()interrupt 3 using1,实现P W M的占空比控制。编写数据接收函数char GetUartData(),将中断接收函数里接收到的数据发送这里,等待接收数据函数void WaitForChars(unsigned chariCount,char *Dest)通过调用数据接收函数char GetUartData(),将手机发送来的数据装载到定义好的变量数组,然后通过字符转型函数unsigned int GetCmdType(char*Commd),将字符型数据转成数字,通过标志判断,要控制哪一路PWM波,然后将相应的数据传到控制占空比的中断服务函数,改变其占空比的输出。

图2 主函数流程图

6.结果展示

6.1 手机端界面

如图3所示,其中W调节白光,从0到100R、B、G共有100万种组合,每一种组合对应一种颜色,通过改变RBG的组合,从而调节LED的颜色。

图3

6.2 PWM波输出效果

如图4所示,这是其中一路PWM波的控制信号,通过手机端控制其占空比,用示波器测出其波形。

图4

6.3 实际调光调色效果

选择几种组合调色效果如图5所示。

图5

蓝牙物联网灯控设计方案

蓝牙技术是当前应用最广泛的无线通信技术之一,工作在全球通用的 2.4GHZ 的ISM 频段。蓝牙的工作距离约为 100 米,具有一定的穿透性,没有方向限制。具有低成本、抗干扰能力强、传输质量高、低功耗等特点。蓝牙技术组网比较简单,无需额外设置,只要两个蓝牙设备进入连接范围内,蓝牙就会自动搜索,实现配对连接,进行点对点信息传输。目前个人电脑、手机等终端设备都具有蓝牙通信功能,可以利用手机蓝牙对其他的蓝牙设备发送控制信号进行无线控制。

1蓝牙灯的总体设计

普通的照明灯泡没有蓝牙模块,没有办法接收蓝牙信号,所以本设计就是通过对普通灯泡的改造,让灯泡能接收蓝牙信号并被控制。蓝牙灯设计基本思路:手机与控制板通过蓝牙模块建立点对点的连接,然后手发送指令,控制板上的蓝牙模块接收到指令,最后操控连接在控制板上的灯泡。

蓝牙灯的总体结构分为手机终端 APP、蓝牙通信、MCU 控制3个部分。手机终端 APP部分实现用户对灯泡的远程操作指令的发送;蓝牙通信部分实现接收操作指令并传送到 MCU控制器:MCU 控制部分实现对接收到的操作指令进行处理。

2蓝牙灯的便件设计

2.1MCU 控制

MCU控制部门选用 Arduino 作为主控板。Arduino 是一款便捷灵活、方便上手的开放源代码的软硬件平台[3]。硬件具有丰富的接口,有 3.3V和V 电源供电、数字口、模拟口,同时支持串口通信。软件编程语言没有复杂的单片机底层代码,直接调用简单实用的函数就能实现功能。以下设计以Arduino Uno 主控板为例。

2.2蓝牙通信

蓝牙模块分为主模块和从模块,主模块既能接收信号,也能发送信号,而从模块只能接收信号,而不能发送信号。本设计中灯泡只需要接收控制信号,选用 HC-06 蓝牙从模块来接收控制信号。HC-06 模块有四个引脚: VCC (3.3V)、GND(接地)、TXD(发送端)、RXD(接收端)。蓝牙模块与 Arduino 通过串口通信。Arduino 的数字端口01是开发板串口的RX(接收端)和 TX(发送端),分别与 HC-06 的 TXD、RXD 相连。

2.3 灯泡

灯泡属于大电流和高电压设备,无法直接用 Arduino 的数字端口进行驱动,所以选用继电器控制电灯的开和关。继电器是利用弱电信号控制继电器的吸起和落下,实现电路的闭合和断开。从而实现 Arduino 用弱信号控制大电流、高电压通断,间接控制灯泡回路中的电流通和断、灯泡的亮和灭的目的。

我国照明采用三相四线制供电系统,要求中线(零线)上不允许安装开关和保险(熔断器),继电器实际就是一个开关,所以将灯泡的电源正极的连线从中间断开,分别连接继电器的公共端和常开端。

Arduino 判断接收到的信号如果是“开灯”,相应的将数字端口(本文选用数字端口 8)赋高电平(I),高电平送到继电器 S端,继电器常开开关闭合,灯泡点亮:判断接收到的信号如果是“关灯”,相应的将数字口 8赋值底电平(0),底电平送到继电器 S端,继电器常开开关复位,灯泡熄灭。蓝牙灯具体硬件连接和程序:

2.4 蓝牙灯硬件测试结果

使用手机蓝牙串口调试助手,监控串口数据。根据 Arduino 蓝牙灯程序中的编写,在手机蓝牙中口调试助手窗口中输入 1时,收到“dengliang”字符串,继电器吸合,灯泡亮;输入 0时,收到“dengmie”字符串,继电器复位,灯泡灭。检测结果说明蓝牙灯硬件能实现接收信处理信号的功能。

3蓝牙灯手机 APP的设计

手机终端 APP 部分实现用户对灯泡的蓝牙远程操作。本设计采用某公司专门开发了-款图形化手机编程软件 App Inventor。这款软件不需要具备一定专业知识也可以使用,软件已经事先将按钮、文字输入输出等软件代码编写成不同的模块,用户只需根据自己的需求拼装就可以。

手机终端 APP 部分需要具有搜索蓝牙设备、连接蓝牙设备、断开蓝牙设备、灯泡的亮灭功能。

编写的 Android 程序,将生成 APK 文件,通过扫描二维码下载或者手机数据线下载到手机上。安装后,会在手机桌面形成蓝牙灯 APP 图标。打开图标进入到 APP 界面。

4蓝牙灯的调试

蓝牙灯 APP对灯泡硬件的完全控制,还需要两部分合起来进一步的调试。需要注意 APP中“开”和“关”按钮操作所代表的数值是“1”和“0”,而蓝牙灯控制部分 Arduino 程序中,也要对““1”和“0”做出判断。

首先,打开手机的蓝牙功能,让手机与 HC-06 配对,输入配对秘密“1234”,配对成功。其次,打开手机安装好的 ApP,点击“搜索蓝牙”按钮,连接蓝牙,提示 APP 已连接上 HC-06 蓝牙模块。最后,点击灯泡灭图片,灯泡亮:点击灯泡亮图片,灯泡灭。通过调试最终实现了手机App对蓝牙灯远程控制。

出处 电脑知识与技术

原标题 基于Arduino的蓝牙灯的设计与实现

作者 刘佳玲

相关问答

为什么我把 蓝牙 模块联上 单片机 蓝牙 模块上的 不亮?连到USB转TTL却还会亮?

“只会在单片机上得到空”说明什么呢?说明收到数据了,不管收到的是不是发送的,总是收到了。透传既然可以A到B,那就可以B到A。问题应该就在于,单片机接收的部...

单片机蓝牙 是什么?

单片机蓝牙:指的是单片机的蓝牙模块。以51单片机为例来进一步解释,它是在蓝牙通讯的基础之上,进行内部蓝牙单片机模块与外部蓝牙发射接收设备之间,相互收发数...

蓝牙 模块与 单片机 具体该如何连接?

这个很好弄的蓝牙模块一般是使用SPI或串口与单片机通讯,单片机只需要使用串口或SPI,根据模块提供的指令集进行通讯就可以了;蓝牙模块的指令集一般为AT指令,...

蓝牙 芯片到底是什么?和 单片机 有什么区别?

它们两个都是属于2.4GISM无线频段,传输距离也差不多,大概10m,HC-05嵌入式蓝牙串口通讯模块比nRF24L01无线模块多了蓝牙通讯协议硬件,如果你想传输大量数据或...

单片机 智能风扇为什么用 蓝牙 不用红外技术?

单片机智能风扇使用蓝牙技术而不是红外技术的原因是因为蓝牙技术具有更高的可靠性和更大的传输距离。相比之下,红外技术在传输距离和障碍物遮挡方面存在很大的...

如何把 蓝牙 模块HC-05与51 单片机 连接起来?

单片机是可以和蓝牙连接的,通过UART串口连接。HC-05是市面上比较常见的蓝牙模组,主从是一体的,跟单片机通过UART串口连接,连接完成后,即把蓝牙当作串口来使...单...

怎么 蓝牙 模块控制 亮灯 ?-ZOL问答

蓝牙模块控制亮灯可以通过编写程序来实现。首先,需要将蓝牙模块与LED灯进行连接,并且建立一个通信协议。然后,在程序中设置一个定时器,每隔一段时间就发送指令...

我用手机 蓝牙 控制 单片机 ,谁是主机谁是从机?

一个做主机一个做从机就可以实现通信,电脑和手机的蓝牙一般是主机,也就是说配对一个从机就能实现通信,你再买一个从机蓝牙模块来就可以用了,...在手机蓝牙控...

手机 蓝牙 单片机 的通信如何实现?

使用蓝牙转串口模块连接51单片机的RX和TX引脚,这一步实现源端数据转换;单片机在串口中断服务函数里面读取蓝牙模块的...手机蓝牙与单片机的通信实现方式如下:...

如何从51 单片机 蓝牙 模块发送AT指令? - 懂得

51单片机和蓝牙连接是通过串口实现的,所以通过单片机想蓝牙模块发送AT指令,也必须通过串口来发送,安装蓝牙模块的协议来发送控制命令就可以了。接收...

猜你喜欢