这篇文章来源于deviceplus.com英语网站的翻译稿。
假日季节来临之际,我觉得利用arduino和全彩led灯条制作装饰彩灯将会很有趣。这些led不仅会亮,而且具有多种不同的颜色,能够为您带来多彩的节日气氛!
今天的电子设计技巧
估计完成时间:60分钟
所需部件
arduino uno r3
ws2811 5m led 灯条 240 smd 5050
目录
led灯条简介
如何连接led灯条并接线
让我们来点亮led灯吧!
1. led灯条简介
led灯条(或者也称为led灯带)与普通的led有些不同。总体来讲,就是多个led灯连在一起,组成一个灯条或灯带。市面上销售的led灯条长约30 cm至5 m。
图1 led灯条
led灯条有两种。第一种是灯条上的所有led同步开/关。另一种则具有一个控制ic,可以根据输入信号逐一控制灯条上的led灯。虽然前者拥有更多的led灯,但是基本上跟普通led一样只有正负极端子。而后一种led灯条则通常具有4个和5个端子,其中包括信号线和正负极端子,如图3所示。
此外,led灯条还有一个特点,我们可以通过切割图2中的黄色虚线来调整其长度。(但是,如果我们切断了其他部件,就无法连接正负端子了)
图2 全彩led灯条的规格
图3 全彩led灯条端子
除了图1所示的之外,市面上还有许多类型的led灯带。如果您在网上搜索,您会搜到多种不同版本的led灯条。
图4 led灯串
这一次,我们使用图4所示的led灯串。
2. 如何连接led灯串并接线
那么,我们现在该如何点亮全彩led灯串呢?一个非常方便的库文件能够帮我们很容易地处理信号。您可以通过下面的链接打开页面,然后点击页面中的“download adafruit_neopixel for arduino”按钮来下载该库。该页面还说明了库的添加方法。
arduino库安装 – adafruit
https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-installation
图5 下载adafuit_neopixel库
下载压缩文件之后,如果您用的是arduino create,请点击libraries(库)→import(导入)按钮,继续在arduino web editor中安装。
如果您正在运行应用程序,则可以单击顶部菜单上的“sketch”(草图),然后添加库。添加库之后,请将led灯条连至arduino。
这次使用的led灯串所需电压是5v,且具有四个端子。检查文件时,除了正极和负极(gnd)之外,开发板一侧还有一个信号端子和一个gnd端子。由于led的输入电压是5v,因此我想使用arduino的5v电源。但是,led灯条含有多个led灯,所需电流较大,所以arduino的5v不够用,否则arduino将会损坏。所以,我们会准备一个外部5v电源。
图6 全彩led灯带原理图
3. 让我们来点亮led灯吧!
现在,我们编写一个程序来点亮led灯串。下面的示例代码基于
adafruit_neopixel代码示例。
led灯条的示例程序
#include #define pin 6 //pin number of the signal terminal#define led_num 50 //number of leds adafruit_neopixel ledtape = adafruit_neopixel(led_num, pin, neo_grb + neo_khz800); //if the control ic of the led tape used is ws2812, the third parameter is neo_khz800 and if ws2811 then neo_khz400 void setup() { ledtape.begin(); ledtape.show(); //reflects once in all off state} void loop() { uint16_t i, j; for(j=0; j <256; j++) { for(i=0; i < ledtape.numpixels(); i++) { ledtape.setpixelcolor(i, rotatecolor((((i) * 256 / ledtape.numpixels()) + j) & 255)); } ledtape.show(); delay(20); }} //rgb color transition functionuint32_t rotatecolor(byte wheelpos) { if(wheelpos < 85) { return ledtape.color(wheelpos * 3, 255 - wheelpos * 3, 0); } else if(wheelpos < 170) { wheelpos -= 85; return ledtape.color(255 - wheelpos * 3, 0, wheelpos * 3); } else { wheelpos -= 170; return ledtape.color(0, wheelpos * 3, 255 - wheelpos * 3); }}
如果已经连接led灯带并且程序运行正常,您将会看到led灯点亮。
图7 led灯串点亮
而且,如果稍微改变一下程序,我们也可以一个接一个地点亮led灯。
一次点亮一个led灯的示例程序
#include #define pin 6 //pin number of the signal terminal#define led_num 50 //number of leds adafruit_neopixel ledtape = adafruit_neopixel(led_num, pin, neo_grb + neo_khz800); //if the control ic of the led tape used is ws2812, the third parameter is neo_khz800 and if ws2811 then neo_khz400 void setup() { ledtape.begin(); ledtape.show(); //reflects once in all off state} void loop() { uint16_t i, j; //set the state of all colors of the led in minutes and light in show for(i=0; i < ledtape.numpixels(); i++) { ledtape.setpixelcolor(i, wheel((((i) * 256 / ledtape.numpixels()) + j) & 255)); ledtape.show(); ledtape.setpixelcolor(i, ledtape.color(0,0,0)); delay(20); ledtape.show(); }} //rgb color transition functionuint32_t rotatecolor(byte wheelpos) { if(wheelpos < 85) { return ledtape.color(wheelpos * 3, 255 - wheelpos * 3, 0); } else if(wheelpos < 170) { wheelpos -= 85; return ledtape.color(255 - wheelpos * 3, 0, wheelpos * 3); } else { wheelpos -= 170; return ledtape.color(0, wheelpos * 3, 255 - wheelpos * 3); }}
现在您可以使用我们刚刚编程的led灯串装饰您的室内或室外空间了!点燃万圣节南瓜灯(即使万圣节已经过去)后,您会觉得万圣节又来了!
今天,我们学习了如何使用led灯条/灯串的基本知识。下次,我们将使用rohm传感器评估套件的传感器构建一个根据传感器输入值控制led灯串的设备。假日已经提前来临了!让我们用这些炫酷的led灯条/灯串项目,为家里增添一些节日气氛吧!
deviceplus 编辑团队
设备升级版适用于所有热爱电子和机电一体化的人。
苹果也堆硬件?iPhone8要上最强GPU
电磁调速电机控制器怎么接线 有哪些注意事项
NTC热敏电阻未来将广泛应用于充电电池组
国内低代码市场之争将迎来怎样的变革?
Cipia宣布任命Yehuda Holtzman为其新任首席执行官
制作Arduino LED节日彩灯
单片机PCB设计对电磁兼容性的处理
电容器涌流电流是怎么产生的
影创科技为教育领域打造了创新性的5G+MR全息教室
常用的光电耦合器应用电路
PCB基础知识—PCB的种类
拧瓶盖螺丝,高度灵活的柔性机器人为你开可口可乐
Marvell高管: LTE芯片年底将实现量产
技术强、资源多,华为云等保合规解决方案助力企业快速过等保!
基于PCI-6229数据采集卡实现无线电高度表动态测试系统的设计
陀螺仪怎么用
步入式防爆高低温试验箱
创新AI算法解密智慧矿山猴车安全之解法
TE推出ELCON Micro 电源连接器:采用通用的 3.0mm 端子间距,可轻松升级现有设计
图像融合增强了轻型装甲车的能力