🍓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代码,如果我们排除了蓝牙颜色控制功能,我们会发现该代码实际上非常简单。
源代码
🏈指点迷津 | BriefLast updated