极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 71187|回复: 12

arduino控制WS2812B模块

[复制链接]
发表于 2017-5-10 10:01:09 | 显示全部楼层 |阅读模式
也是刚接触这个REG的模块,数据传输方式很像595,单线DATA就可以了,自己去搞时序很麻烦,看到别人帖子,实验成功,就贴出来,
https://github.com/FastLED/FastLED/
翻墙去这下载库就行了,IDE        版本要1.5以上,低版本不行,效果很炫彩

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2017-5-10 10:02:21 | 显示全部楼层
#include "FastLED.h"
#define NUM_LEDS 60
CRGB leds[NUM_LEDS];
void setup() { FastLED.addLeds<NEOPIXEL, 6>(leds, NUM_LEDS); }
void loop() {
        leds[0] = CRGB::White; FastLED.show(); delay(30);
        leds[0] = CRGB::Black; FastLED.show(); delay(30);
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-10 10:04:22 | 显示全部楼层
具体还没研究通,自己软件水平太臭,有懂得能把库定义简单介绍下就好了,这个模块还可以级联,使用很方便
回复 支持 反对

使用道具 举报

发表于 2017-5-10 10:13:45 | 显示全部楼层
这个库是神库。。。这种单总线的数控LED。。。这个库基本都能用
回复 支持 反对

使用道具 举报

发表于 2017-5-10 10:34:39 | 显示全部楼层
那圈LED也不便宜,而且还要考虑扩流
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-10 10:45:15 | 显示全部楼层
咋又提扩流的问题,好像有个帖子已经说过了,自带驱动跟流无关
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-10 12:59:20 | 显示全部楼层
这图应该能说明问题了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2017-5-10 13:42:09 | 显示全部楼层
不需要扩流的只要保证5V供电的电流充足就好了 数字总线驱动
回复 支持 反对

使用道具 举报

发表于 2017-5-10 19:19:29 | 显示全部楼层
本帖最后由 darkorigin 于 2017-5-10 19:21 编辑

自己控制也能搞
我曾经拆过一个不知道什么蛇的鼠标,中键就是RGB灯的
直接用arduino驱动,可以实现颜色的红、绿、蓝渐变转换。

通过3个PWM口分别给三个脚喂0-255的数据即可
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-10 19:29:37 | 显示全部楼层
实际使用接线,资料全了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2018-1-11 10:51:24 | 显示全部楼层
谢谢楼主的提示,明白了一点东西。
#include "FastLED.h"
#define NUM_LEDS 60
CRGB leds[NUM_LEDS];
void setup() { FastLED.addLeds<NEOPIXEL, 6>(leds, NUM_LEDS); }
void loop() {
        leds[0] = CRGB::White; FastLED.show(); delay(1000);
        leds[0] = CRGB::Red; FastLED.show(); delay(1000);
        leds[1] = CRGB::Green; FastLED.show(); delay(1000);
        leds[1] = CRGB::Yellow; FastLED.show(); delay(1000);
        leds[2] = CRGB::Orange; FastLED.show(); delay(1000);
        leds[2] = CRGB::Blue; FastLED.show(); delay(1000);
        leds[3] = CRGB:urple; FastLED.show(); delay(1000);
        leds[3] = CRGB::Brown; FastLED.show(); delay(1000);
        leds[4] = CRGB::White; FastLED.show(); delay(1000);
        leds[4] = CRGB::Red; FastLED.show(); delay(1000);
        leds[5] = CRGB::Green; FastLED.show(); delay(1000);
        leds[5] = CRGB::Yellow; FastLED.show(); delay(1000);
        leds[6] = CRGB::Orange; FastLED.show(); delay(1000);
        leds[6] = CRGB::Blue; FastLED.show(); delay(1000);
        leds[7] = CRGB:urple; FastLED.show(); delay(1000);
        leds[7] = CRGB::Brown; FastLED.show(); delay(1000);
}
依次亮灯
回复 支持 反对

使用道具 举报

发表于 2018-7-23 23:57:20 | 显示全部楼层
方恨少 发表于 2018-1-11 10:51
谢谢楼主的提示,明白了一点东西。
#include "FastLED.h"
#define NUM_LEDS 60

这是有8颗灯么?
回复 支持 反对

使用道具 举报

发表于 2020-11-28 18:56:49 | 显示全部楼层
弘毅 发表于 2017-5-10 10:13
这个库是神库。。。这种单总线的数控LED。。。这个库基本都能用

但是如果一个uno控制两个ws2812灯环做不同频率的流水动画,没有想到好办法实现。不知道大神有没有提示?谢谢
我的大致思路如下:按键1 按下,灯环1开始做黄色延时10ms的流水动画。按键2 按下,灯环1开始做红色延时20ms的流水动画。由于我使用的是for循环做的流水,导致如果for循环没有走完程序,将不能读取另外的控制。
请大神帮忙解惑,是我的程序需要改?还是我的这个思路构建有问题?谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-24 04:04 , Processed in 0.044819 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表