🍓Arduino控制LED灯带

Arduino | LED | 灯带

首先,我们将通过一些基本示例来说明工作原理,然后使用这些LED(一个DIY交互式LED茶几)来研究一个非常酷的Arduino项目。 茶几配有WS2812B LED,用于检测物体的红外接近传感器以及用于通过定制Android应用程序控制颜色的HC-05蓝牙模块。

WS2812B LED如何工作

让我们从仔细看一下LED灯条开始。它由5050型RGB LED组成,其中集成了非常紧凑的WS2812B LED驱动器IC。

根据红色,绿色和蓝色三个LED的强度,我们可以模拟所需的任何颜色。

这些LED的优点在于,我们只需使用Arduino板上的单个引脚就可以控制整个LED灯条。 每个LED在每一端都有三个连接器,两个用于供电,一个用于数据。 箭头指示数据流向。 前一个LED的数据输出焊盘连接到下一个LED的数据输入焊盘。 我们可以将条带切割成所需的任何尺寸,也可以使用一些电线将LED隔开。

至于电源,它们工作在5V电压下,每个红色,绿色和蓝色LED消耗大约20mA电流,或者在全亮度下每个LED总共消耗60mA电流。 请注意,当Arduino通过USB供电时,5V引脚只能处理约400 mA,而当使用桶形电源连接器供电时,5V引脚可以处理约900 mA。 因此,如果您使用更多的LED并且它们消耗的电流超过上述限制,则必须使用单独的5V电源。 在这种情况下,您还需要将两条接地线彼此连接。 另外,建议在Arduino和LED条数据引脚之间使用约330欧姆的电阻,以减少该线上的噪声,并在5V和地之间跨接约100uF的电容器以平滑电源。 。

Arduino和WS2812B LED实例

示例1

现在作为示例,我将使用20个LED长条,通过330 Ohms电阻器连接到Arduino,并使用单独的5V电源供电,如上所述。 为了对Arduino进行编程,我们将使用FastLED库。 这是一个出色且文档齐全的库,可轻松控制WS2812B LED。

这是第一个示例的Arduino源代码:

说明:因此首先我们需要包括FastLED库,定义LED灯带数据连接到的引脚,定义LED的数量,以及定义CRGB类型的数组。 此类型包含LED,三个红色,绿色和蓝色通道的每个都有三个一字节的数据成员。

在设置部分,我们只需要使用上面定义的参数来初始化FastLED。 现在,它是我们可以随意控制LED的主回路。 使用CRGB函数,我们可以使用红色,绿色和蓝色三个参数将任何LED设置为任何颜色。 为了使更改在LED上发生,我们需要调用函数FastLED.show()。

示例2

使用一些“ for”循环,我们可以轻松制作一些动画。

这是第二个示例的Arduino源代码:

在这里,第一个“ for”循环从第一个到最后一个LED都以40毫秒的延迟点亮所有20个蓝色的LED。下一个“ for”循环再次点亮所有20个LED,但是这次从最后一个LED到第一个LED以红色和相反的顺序点亮。

FastLED库具有许多其他功能,可用于制作非常有趣的动画和灯光秀,因此,让您的下一个LED项目焕发光芒只有您的想象力。

使用WS2812B LED的交互式LED

现在,让我们看一下我一开始提到的DIY交互式LED

在这里,我将解释电子部分的工作原理,如何构建自定义的Android应用程序以及对Arduino板进行编程。

这是该项目的完整电路原理图。

因此,该表包含45个可寻址LED,45个红外接近传感器和HC-05蓝牙模块,所有这些均连接到Arduino Mega板上。该电路由5V 6A电源供电。

这是该项目的Arduino代码,如果我们排除了蓝牙颜色控制功能,我们会发现该代码实际上非常简单。

源代码

🏈指点迷津 | Brief

Last updated