---
description: 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代码，如果我们排除了蓝牙颜色控制功能，我们会发现该代码实际上非常简单。

### 源代码

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
