|
在过去的几年中,RGB LED灯因其色彩艳丽以及灯光效果而日渐流行。这就是为什么它在许多地方用作装饰物品的原因,例如房屋或办公室空间。另外,我们可以在厨房和游戏机中使用RGB灯。在本篇文章中,我们将使用基于Neopixel的RGB LED点阵扩展板、Arduino和Blynk应用程序来生成动画效果和颜色,同时我们可以使用Blynk应用程序进行控制。
Adafruit的5X8 NeoPixel扩展板
NeoPixel扩展板兼容Arduino,包含40个可单独寻址的RGB LED,每个LED都内置有WS2812b驱动器,该驱动器以5×8矩阵排列以形成此NeoPixel扩展板。如果需要,还可以连接多个NeoPixel扩展板以形成更大的扩展板。要控制RGB LED,需要一个Arduino引脚,因此在本文中,我们决定使用Arduino的引脚6来实现。
在我们的案例中,LED由Arduino的内置5V引脚供电,足以在全亮度下为“约三分之一的LED”供电。如果需要给更多的LED供电,则可以切割内置走线,并使用外部5V电源通过外部5V端子为屏蔽供电。
了解Blynk应用程序和Arduino之间的通信过程 这里使用的8 * 5 RGB LED矩阵包含40个基于WS2812B驱动器的可单独寻址的RGB LED。它具有24位色彩控制,每个像素1680万种色彩。可以使用“单线控制”方法进行控制。这意味着我们可以使用单个控制引脚控制整个LED像素。在使用这些LED时,我浏览了这些LED的数据表,扩展板的工作电压范围是4 V至6 V,在5 V时每个LED的电流消耗为50 mA。它在外部电源引脚上具有反向电压保护,并在扩展板上具有复位按钮。如果内部电路无法提供足够的功率,则它还具有用于LED的外部电源输入引脚。
如上面的示意图所示,我们需要在智能手机上下载并安装Blynk应用程序,该应用程序可以控制颜色、亮度等参数。设置完参数后,如果应用程序发生任何更改,它将存储在Blynk云中,我们的PC也已连接到该云,并准备接收更新的数据。 Arduino Uno通过USB电缆连接到我们的PC,并打开了通信端口,并且该通信端口(COM端口)可以在Blynk云和Arduino UNO之间交换数据。 PC正在以固定的时间间隔从Blynk云请求数据,并且当接收到更新的数据时,PC会将其传输到Arduino并做出用户定义的决定,例如控制RGB led亮度和颜色。 RGB LED扩展板放置在Arduino上,并通过单个数据引脚连接以进行通信,默认情况下,它通过Arduino的D6引脚连接。从Arduino UNO发送的串行数据发送到Neopixel扩展板,然后将其反映在LED矩阵上。
所需的组件 ● Arduino UNO开发板 ● 8 * 5 RGB LED矩阵扩展板 ● USB电缆 ● 笔记本电脑
Adafruit RGB LED扩展板和Arduino的硬件连接 WS2812B Neopixel LED具有三个引脚,一个用于数据,另外两个用于电源,但是这种特定的Arduino扩展板使硬件连接非常简单,我们要做的就是将Neopixel LED矩阵放在Arduino UNO的顶部。在本文中,LED由默认的Arduino 5V供电。放置Neopixel扩展板后,设置如下所示:
配置Blynk应用程序 Blynk是一款可以在Android和IOS设备上运行的应用程序,可以使用我们的智能手机控制任何IoT设备和设备。首先,需要创建一个图形用户界面(GUI)来控制RGB LED矩阵。该应用程序会将所有选定的参数从GUI发送到Blynk云。在接收器部分,我们已将Arduino通过串口通信电缆连接到PC。因此,PC从Blynk云请求数据,并将这些数据发送到Arduino进行必要的处理。
设置之前,请从Google Play商店下载Blynk应用程序(IOS用户可以从App Store下载)。安装后,使用您的电子邮件ID和密码注册。
创建一个新项目: 成功安装后,打开应用程序,然后会出现一个带有“New Project”选项的界面。单击它,它将弹出一个新界面,我们需要在其中设置诸如项目名称,电路板和连接类型之类的参数。在我们的项目中,将设备选择为“ Arduino UNO”,并将连接类型选择为“ USB”,然后单击“Create”。
成功创建项目后,我们将在注册邮件中获得一个身份验证ID。保存身份验证ID,以备将来使用。
创建图形用户界面(GUI): 在Blynk中打开项目,单击“ +”号,我们将在其中获得可在项目中使用的小部件。在本文中,我们需要一个RGB拾色器,其显示为“ zeRGBa”,如下所示。
设置小部件(Widgets): 将小部件拖到我们的项目后,现在我们必须设置其参数,这些参数用于将RGB颜色值发送到Arduino UNO。
单击ZeRGBa,然后将得到一个名为ZeRGBa Settings的界面。然后将“Output ”选项设置为“Merge”,并将引脚设置为“ V2”,如下图所示。
控制WS2812B RGB LED扩展板的Arduino代码 硬件连接完成后,需要将代码上传到Arduino。代码的逐步说明如下所示。
首先,包括所有必需的库。打开Arduino IDE,然后转到Sketch选项卡,然后单击选项Include Library-> Manage Libraries。然后在搜索框中搜索Blynk,然后下载并安装Arduino UNO的Blynk软件包。
在本文中,“ Adafruit_NeoPixel.h”库用于控制RGB LED矩阵。要包含它,您可以从给定的链接下载Adafruit_NeoPixel库。 - #define BLYNK_PRINT DebugSerial
- #include <Adafruit_NeoPixel.h>
- #include <SoftwareSerial.h>
复制代码然后,我们定义了LED矩阵所需的LED数量,还定义了用于控制LED参数的引脚号。 - #define PIN 6
- #define NUM_PIXELS 40
复制代码然后,我们需要将先前保存的blink验证ID放入auth []数组中。 - char auth[] = "HoLYSq-SGJAafQUQXXXXXXXX";
复制代码在这里,软件串行引脚用作调试控制台。因此,以下将Arduino引脚定义为调试串行。 - #include <SoftwareSerial.h>
- SoftwareSerial DebugSerial(2, 3);
复制代码
在setup函数中,使用函数Serial.begin初始化串口通信,使用Blynk.begin连接blynk,pixel.begin()初始化LED矩阵。 - void setup()
- {
- DebugSerial.begin(9600);
- pixels.begin();
- Serial.begin(9600);
- Blynk.begin(Serial, auth);
- }
复制代码
在loop()函数中,我们使用了Blynk.run(),它检查来自blynk GUI的传入命令并相应地执行操作。 - void loop()
- {
- Blynk.run();
- }
复制代码
最后,需要接收和处理从Blynk应用程序发送的参数。如前面在设置部分中所述,将参数分配给虚拟引脚“ V2”。 BLYNK_WRITE函数是一个内置函数,只要关联的虚拟引脚的状态/值发生更改,就会调用该函数。我们可以像其他Arduino函数一样在此函数内运行代码。
BLYNK_WRITE函数检查虚拟引脚V2处的传入数据。彩色像素数据已合并并分配给V2引脚。因此,我们还必须在解码后再次取消合并。因为要控制LED像素矩阵,我们需要所有3种单独的彩色像素数据,例如红色、绿色和蓝色。如下代码所示,读取了矩阵的三个索引,如param [0] .asInt(),以获取Red的值。同样,所有其他两个值也被接收并存储在3个单独的变量中。然后,使用pixel.setPixelColor函数将这些值分配给Pixel矩阵,如下面的代码所示。
在这里,pixels.setBrightness()函数用于控制亮度,而pixels.show()函数用于在矩阵中显示设置的颜色。 - BLYNK_WRITE(V2)
- {
- int r = param[0].asInt();
- int g = param[1].asInt();
- int b = param[2].asInt();
- pixels.clear();
- pixels.setBrightness(20);
- for (int i=0; i<=NUM_PIXELS;i++)
- {
- pixels.setPixelColor(i, pixels.Color(r, g, b));
- }
- pixels.show();
- }
复制代码
将代码上传到Arduino开发板 首先,我们需要在Arduino IDE中选择Arduino的端口号,然后将代码上传到Arduino UNO。成功上传后,记下将用于我们的串行通信设置的端口号。
之后,在PC上找到Blynk库的脚本文件夹。它是在您安装库时安装的:“C:\Users\PC_Name\Documents\Arduino\libraries\Blynk\scripts”
在脚本文件夹中,应该有一个名为“ blynk-ser.bat”的文件,这是一个用于串行通信的批处理文件,我们需要使用记事本进行编辑。使用记事本打开文件,然后将端口号更改为您在上一步中记下的Arduino端口号。
编辑后,保存文件并通过双击运行批处理文件。然后,您会看到如下所示的窗口:
现在,该测试电路及其功能了。 打开Blynk应用程序并打开GUI,然后单击“Play”按钮。 之后,您可以选择要在LED矩阵上反射的所需颜色, 如下所示:
|