控制灯颜色的方法rgb
智能灯越来越受欢迎,把家庭的重要部分踏实地做着成为智能。智能灯用户可以通过智能手机上的应用程序来控制灯光,并且可以在应用画面上打开/关闭灯光,调节颜色。在本章节中,将介绍使用手动按钮和移动App进行蓝牙控制的智能灯控制器的安装方法。为了给这个项目增加一些特色,我们添加了可以从应用界面中包含的颜色列表中选择照明颜色的功能。可以激活[自动混合](Auto Blend)来生成彩色效果,也可以每隔半秒更改灯光。用户可以使用PWM功能来创建可以用作三个基本颜色(红、绿、蓝)的调光器的独特的颜色混合。另外,在电路中添加外部按钮,用户可以切换到手动模式,通过外部按钮可以改变灯光的颜色。
本说明书由GreenPAK设计和安卓应用设计的两个部分构成。GreenPAK设计基于使用UART接口的通信。选择UART是因为许多蓝牙模块和许多其他外围设备(例如Wi-Fi模块支持。因此,GreenPAK设计可以用于多个连接类型。
要创建此工程,请使用SLG46620GreenPAK IC、1蓝牙模块和1RGB LED。
GreenPAK IC是从蓝牙模块和/或外部按钮接收数据,开始显示适当照明所需的程序的项目的控制核心。另外,生成PWM信号并输出到LED。以下的图1表示功能框图。
图1:框图
在该项目中使用的GreenPAK设备在单个IC中包括SPI连接接口、PWM功能块、FSM和许多其他有用的附加功能块。另外,体积小,能量消耗低也是其特征。因此,制造商可以在单个IC中构建小型实用电路,并且可以降低生产成本。
在这个项目中,控制一个RGB LED。为了使该项目商业化,系统可能需要并行连接多个LED并通过使用适当的晶体管来提高亮度水平。电源电路也需要考虑。我们完成了这个项目的实现和验证。
GreenPAK设计
GreenPAK Designer软件实现的设计包括UART接收机、PWM单元和控制单元。
a)UART接收机
首先,需要设定蓝牙模块。大多数蓝牙IC支持通信协议UART。UART是能够在并行格式和串行格式之间相互转换数据的通用异步发送和接收发送器。这包括从串行到并行接收机和从并行到串行转换器,这些都是单独计算的。
在蓝牙模块中接收到的数据被发送到GreenPAK设备。Pin10的偶像状态是高(HIGH)。发送的每个字符开始于逻辑“低起始比特LOWstartbit”,然后开始于可配置数目数据位bit和一个或多个逻辑“高停止比特(Highstopbit”。
UART发射机发送一个低开始比特((LOWstartbit、8个数据位bit、一个高停止比特(Highstopbit)。通常,蓝牙模块的UART默认的波特率是9600。从蓝牙IC向GreenPAK发送数据字节。
GreenPAK SPI因为在功能块中没有低开始比特LOWstartbit)或高停止比特(Highstopbit)控制,所以使用这些比特(bit),使时钟信号(sCLK))有效且无效。当Pin10低LOW时,因为知道接收到低开始比特((LOWstartbit),所以使用GreenPAK内部的pDLY来构成下行链路检测器以识别通信的开始。该下行边缘检测器向GreenPAK内部的DFF0提供触发时钟,使sCLK信号向GreenPAK SPI功能块提供时钟。
与1/9600bit/s对应的sCLK循环设定为1/9600bit/s。μs。因此,OSC将频率设定为2MHz,使用GreenPAK内部的CNT0构成分频器。接收到的时钟周期为104μs需要将CNT0计数值设定为2818。
参照图2的GreenPAK内部的可配置的单元图,需要将时钟周期时钟延迟一半SPI,使得在正确的时间对功能块进行计时,以防止数据丢失。这是,CNT6,2?bit LUT1以及OSC使用功能块的外部时钟来实现。CNT6的输出直到DFF0计时为止52μs变高的是SPI的sCLK循环104μs的一半。CNT6是高(HIGH)的情况下,栅极的2?bit LUT1和时钟信号((CLKBegin)允许进入OSC的EXT. CLK0输入,输出时钟信号与CNT0的CLK端子连接。
图2:系统电路框图
b)PWM功能单元
参照图3的GreenPAK内部的可配置单元图,使用PWM0和对应的时钟脉冲发生器CNT8/DLY8生成PWM信号。由于脉冲宽度可由用户控制,所以使用FSM0(可连接到PWM0)来统计用户数据。
SLG46620那么,8?bit FSM1可以与PWM1和PWM2组合使用。需要连接蓝牙模块。也就是说,需要使用并行输出模块SPI。SPI并行输出模块的bit0~7与DCMP 1、DMCP2以及LFOSCCLK的OUT1以及OUT0组合。PWM0是16?从bit FSM0获得输出。如果不变更,脉冲宽度将过载。为了将计数器值限制为8比特(bits),增加FSM1作为达到0或255的提示。FSM0用于生成PWM脉冲,因此FSM0和FSM1必须同步。由于两个FSM都有预先设定的时钟选项,CNT1和CNT3作为将CLK传输到两个FSM的中间分频介质发挥作用。这两个计数器在本说明书中被设定为与25相同的值。通过改变这些计数值,能够改变PWM值的变化率。
FSM的值是SPI来自并行输出模块的信号“+”和“增加和减少。
图3:PWM单元设计
c)控制单元
参照图4GreenPAK的内部可构成的构成要素图,在控制元件内接收到的字节从蓝牙模块并列输出到SPI,并传递到相关的功能模块。首先,检查PWM CS1及PWMCS2输出,确认PWM模式是否为活动状态。激活后,确定LUT4、LUT6和LUT7经由哪个信道输出PWM。
LUT9、LUT11以及LUT14负责其他两个LED状态的检查。LUT10、LUT12以及LUT13确认手动按钮是否为活动。手动模式为ON时rgb按照D0、D1、D2输出状态动作,每次按下彩色按钮输出状态都会发生变化。它根据来自CNT7的上升沿而变化,CNT7用作上升沿信号的抖动去除功能。
Pin20构成为切换手动控制模式和蓝牙控制模式的输入。
关闭手动模式,开启自动混合模式后,颜色会每500毫秒变化一次上升沿。4-bit LUT1D0D1D2用于防止变成“000”状态。这是因为自动混合模式时灯会关闭。
手动模式、PWM模式以及自动混合模式未开启时,红、绿、蓝SPI命令将流向构成输出的销12,13,14,并与外部连接RGB LED。
图4:系统电路框图
DFF6,DFF7和DFF 8,3?bit用于构建二进制计数器。计数器值随着CNT7脉冲增加,MUXs#39;GreenPAK逻辑单元LUT10、LUT12、LUT13)的输入产生不同的D0、D1、D2逻辑的组合。
安卓应用程序
在本节中,创建监视和显示用户控件选择的应用程序安卓。接口由两个部分组成。第一部分中包含了具有预先定义颜色的按钮组,因此按下这些按钮中的任意一个,对应的颜色LED就会亮起。第二部分MIX的块)为用户创建混合颜色。
在第一部分中,用户选择希望通过PWM信号的LED销。PWM信号一次只能够到一个别针。下一列表逻辑上控制PWM模式之间的其他两种颜色的开/关。
[自动混合](Auto Blend)按钮执行每半秒更换灯的自动灯模式。MIX区域包括两个复选框列表,用户可以确定混合哪两种颜色。
使用MIT App Inventor的网站制作了这个应用程序。该网站允许用户在没有软件经验的情况下使用图形软件块创建安卓应用。
在最初设计的图形界面中,添加了一组按钮,用于显示预定义的颜色,并在每个列表中添加了两个复选框元素列表。各要素如图5所示显示在各个框中。
图5:App接口
用户界面按钮与软件命令相关联。应用程序通过蓝牙发送的所有命令都是字节形式,每个bit负责特定功能。
表1表示GreenPAK发送的命令帧的形式。
表1:bit帧中所示
最初的3个bit:B0、B1以及B2通过事先定义的颜色的按钮,在直接控制模式下维持RGB LED的状态。因此,当单击任意一个按钮时,如表2所示,发送该按钮的对应值。
表2:显示命令bit
B3及B4bit负责脉冲宽度的增加及减少的“+”及控制命令。按下按钮bit的值为1,松开按钮bit的值为0。
B5及B6bit负责PWM信号通过的销(颜色):如表3所示指定这些bit的颜色的选择。最后的bit B7负责激活自动混合功能。
表3:PWM频道选择bit
图6和图7示出了将按钮链接到负责传输上述值的编程块的过程。
图6:按钮的编程块
图7:发送“+”和“-”命令帧
以下图8是最高电路图。
图8:电路图
控制器测试成功。彩色混合,其他功能正常运行。
结论
在本文中,安卓创建了由应用程序无线控制的智能灯电路。在该项目中使用的GreenPAK IC有助于将用于控制灯光的一些基本组件集成到一个小型IC中。