0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

USB NeoPixel装饰灯的制作

454398 来源:wv 2019-10-22 10:55 次阅读

步骤1:接线

USB NeoPixel装饰灯的制作

大多数WS2812板带三线连接器。我卸下了连接器的塑料外壳,然后将电线直接连接到插针上(它们非常合适)。白色是GND,红色是+ 5V,绿色是数据输入。

大多数LED灯带的两端都有额外的电源线。这些导线通常是裸露的,因此请确保将其隔离(否则可能会导致其意外短路)。

请注意,LED需要很多功率。如果有30个LED灯带,则可以直接从任何PC或USB电源以全亮度运行它(它将消耗小于500mA的电流)。大约100个LED在低亮度下也能正常工作,但是如果您想要更多,最好使用单独的电源。对于长条,建议从两端供电,对于长条,建议连接额外的电源线,每个100-200个LED。

WS2812串行接收彩色数据,因此您实际上可以控制任何数量的仅具有一个数据引脚的LED。您可以使用任何数字输出引脚(不要忘记在代码中输入正确的数字)。

一旦连接了插排,就可以进入编码部分。

步骤2:编码

该代码在我的github存储库中可用–您可以将代码下载为单个文件此处:https://goo.gl/abFfxz

要快速入门,请找到 #define PIN 0 ,并将0替换为与NeoPixel的数据输入连接的引脚数

您可能还希望调整其他设置,如代码注释中所述:

#define NUMPIXELS 30 –设置数字像素控制

#define RNDPIN 2 –设置为任何具有模拟输入的引脚(仅用于初始化随机数生成器一次)

#define BRIGHTNESS 64 –最大LED亮度(1到255)。请注意,高亮度需要很多功率,因此从低值开始

#define FOCUS 65 –色斑的形状(增加以获得狭窄的斑点,减少以获得较宽的斑点)

#define DELAY 4000 –设置动画的速度:降低以加快速度,增加以减慢速度(实际上并不是延迟)

#define DEBUG 0 –设置为1以显示FPS速率

使用常规方法上传代码。尽情享受吧!

步骤3:故障排除

如果根本看不到任何东西,请检查连接,极性和数据引脚。

如果某些LED闪烁或卡住–可能是电源问题。尝试降低 #define BRIGHTNESS 设置,并确保您具有足够的功能。

如果您发现代码中有任何错误或想要改进–欢迎您!

第4步:如何工作

对于此项目,我们有三个“色斑”,它们可以向后跑沿着地带以不同的速度前进。当斑点彼此相遇时,红色,绿色和蓝色的叠加会产生各种颜色。我们将每个光斑的位置和速度保持在变量中,我们需要为每个重绘上的每个LED重新计算颜色。虽然我们每秒可以做很多次,但动画看起来会很平滑。

像素的每个颜色分量都与 exp(-d * d)成比例,其中 d 是像素与相应颜色的光点中心之间的距离。换句话说,像素颜色代表正态分布(高斯分布),与在图形编辑器中使用“高斯模糊”滤镜完全相同。

Arduino库中包含的指数函数看起来非常慢,因此我仅使用两个乘法和一个除法进行了近似: 1.0/(1.0-(0.634-1.344 * x)* x)。请注意,此近似值仅适用于 x 《0 。

我们计算循环中每个像素的颜色,并通过调用 strip.setPixelColor将其发送到内存缓冲区。 ()即可。当我们遍历每个像素时,我们调用 strip.show(),NeoPixel库将所有数据同步发送到指定的引脚-所有像素,一个像素一个像素,一个24位彩色数据。 First NeoPixel读取前24位数据,将其本地存储在寄存器中,然后将所有其他数据传递到下一个像素。第二个“像素”获取其数据,并将剩余的数据发送到下一个像素,依此类推,直到每个像素获取其数据。您可以安全地发送少于条带中的LED数量的数据-只有第一个 NUMPIXELS 才可以工作。

该代码已被详细记录(希望!),请询问问题在这里!

第5步:调整

当然,有很多方法可以修改此想法并创建其他项目。

例如,我为我的一个项目制作了一个金属环,并将其中的一条胶粘到其中。现在,这是一个不错的装饰灯,您可以将其放在墙壁或天花板上。在窗玻璃附近放置一个条带可以产生很好的反射效果(如您在照片上看到的那样)。

在技术方面,通过在定点计算中重写数学运算可以大大改善代码。我正在使用float来保持事物的描述性和易于理解,但这非常慢。我可能稍后会发布优化版本,或者,如果有人愿意,欢迎您!

我的另一个想法是使用麦克风调整动画声音。可能需要比ATtiny更强大的功能。

最后,您可以将Digispark插入任何移动电源,并在便携式模式下欣赏您的小工具。将条带粘在手提包,衣服或自行车上,并用作独特的个人配件。)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LED灯条
    +关注

    关注

    2

    文章

    100

    浏览量

    13296
收藏 人收藏

    评论

    相关推荐

    【每天学点AI】一个例子带你了解Python装饰器到底在干嘛!

    今天我们来聊聊一种能给你的代码变得“加料”的神器——Python装饰器。就像一杯咖啡,原本它是苦的,为了让它符合我的口味,我给它添加了糖,添加之后就完美的符合了我的口味。那么,装饰器又是如何给代码
    的头像 发表于 09-20 16:54 518次阅读
    【每天学点AI】一个例子带你了解Python<b class='flag-5'>装饰</b>器到底在干嘛!

    APM805F应用于太阳能草坪升压芯片

    环保的 SOT23-5、TO-94 和 SOT23-6S 封装 产品范围 1、太阳能草坪 2、LED 驱动 3、景观装饰灯串 4、室内装饰灯串 永源微电子新产品
    发表于 08-29 18:01

    低压线性恒流LED恒流驱动芯片:用于洗墙和线条

    的区域,因此需要使用较大功率的LED芯片,并配备能够提供足够电流的恒流驱动芯片。同时,为了实现更好的照明效果,洗墙通常采用多芯片组合的方式,这也需要恒流驱动芯片能够同时驱动多个芯片。   线条样式 而线条则是一种常见的
    的头像 发表于 08-16 10:04 683次阅读

    LED圣诞电路图 LED圣诞的工作原理和特点

    LED圣诞作为现代圣诞节装饰的重要组成部分,以其独特的魅力和优势,在全球范围内得到了广泛的应用和喜爱。
    的头像 发表于 07-02 17:15 1031次阅读
    LED圣诞<b class='flag-5'>灯</b>电路图 LED圣诞<b class='flag-5'>灯</b>的工作原理和特点

    什么是USB声卡?

    USB声卡是一种外置的音频接口设备,通过USB接口连接到计算机、笔记本、平板电脑等设备。它能够提供高质量的音频输入和输出,通常用于音乐制作、录音、直播和家庭娱乐等场景。与内置声卡相比,USB
    的头像 发表于 06-20 15:53 1589次阅读
    什么是<b class='flag-5'>USB</b>声卡?

    ESP32-S3控制WS2812带显示异常如何解决?

    neopixel #import ws2812 import time GBIO_IN = Pin(40,Pin.OUT)# 控制信号输入引脚 LED_NUM = 15 # LED的数量
    发表于 06-05 06:17

    制作了一个usb小pcb,在pc上总是显示请求usb设备描述符失败,为什么?

    我按照cyusb3-kit003电路图 自己制作了一个usb小pcb但是在pc上总是显示请求usb设备描述符失败,我测量了所有供电以及配置管脚都是正确的。
    发表于 05-29 07:46

    数能低压恒流IC全集(适用于LED带,车灯照明,UVC消毒,LED商业照明,高端轨道照明等应用)

    带、模组、筒灯,、格珊 LED广告灯箱, LED柜台灯, LED 手電筒/閃光燈,商场广告灯箱模组,广告亮化产品RGB 装饰灯 UVC,UVA 深紫外杀菌消毒LED高端出口LED产品,LED轨道照明灯,火车照明.。。。。。。
    发表于 05-10 10:46

    鸿蒙OS开发实例:【ArkTS类库多线程@Concurrent装饰器校验并发函数】

    在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。
    的头像 发表于 04-02 14:45 575次阅读
    鸿蒙OS开发实例:【ArkTS类库多线程@Concurrent<b class='flag-5'>装饰</b>器校验并发函数】

    鸿蒙OS开发实例:【装饰器@Observed@ObjectLink】

    加深对@Observed@ObjectLink 装饰器使用的理解,以小故事做注释
    的头像 发表于 03-28 17:05 937次阅读
    鸿蒙OS开发实例:【<b class='flag-5'>装饰</b>器@Observed@ObjectLink】

    鸿蒙原生应用开发-ArkTS语言基础类库多线程@Concurrent装饰器校验并发函数

    在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。 装饰器说明 装饰器使用示例
    发表于 03-18 10:30

    ​用于LED装饰照明DMX512并联驱动控制芯片作用与应用领域

    LED装饰照明DMX512并联驱动控制芯片是一种新型的照明控制芯片,它能够实现LED的分段控制,提供更加丰富多彩的照明效果。在现代建筑装饰和舞台演出中,LED装饰照明已经成为主流,而
    的头像 发表于 02-23 16:40 652次阅读
    ​用于LED<b class='flag-5'>装饰</b>照明DMX512并联驱动控制芯片作用与应用领域

    OpenHarmony父子组件单项同步使用:@Prop装饰

    @Prop装饰的变量可以和父组件建立单向的同步关系。@Prop装饰的变量是可变的,但是变化不会同步回其父组件。 说明: 从API version 9开始,该装饰器支持在ArkTS卡片中使用。 概述
    的头像 发表于 02-03 10:57 379次阅读
    OpenHarmony父子组件单项同步使用:@Prop<b class='flag-5'>装饰</b>器

    OpenHarmony 定义扩展组件样式:@Extend 装饰

    说明: 从 API version 9 开始,该装饰器支持在 ArkTS 卡片中使用。 装饰器使用说明 语法   @Extend(UIComponentName) function
    的头像 发表于 02-01 20:53 255次阅读

    常见LED闪光电路图讲解

    LED闪光就是使用发光二极管(LED)制作的闪光。它与传统的闪光相比,有体积小、色彩丰富、节能等优点。
    的头像 发表于 01-05 17:28 5822次阅读
    常见LED闪光<b class='flag-5'>灯</b>电路图讲解