arduino控制WS2812B模块
也是刚接触这个REG的模块,数据传输方式很像595,单线DATA就可以了,自己去搞时序很麻烦,看到别人帖子,实验成功,就贴出来,https://github.com/FastLED/FastLED/
翻墙去这下载库就行了,IDE 版本要1.5以上,低版本不行,效果很炫彩 #include "FastLED.h"
#define NUM_LEDS 60
CRGB leds;
void setup() { FastLED.addLeds<NEOPIXEL, 6>(leds, NUM_LEDS); }
void loop() {
leds = CRGB::White; FastLED.show(); delay(30);
leds = CRGB::Black; FastLED.show(); delay(30);
} 具体还没研究通,自己软件水平太臭,有懂得能把库定义简单介绍下就好了,这个模块还可以级联,使用很方便 这个库是神库。。。这种单总线的数控LED。。。这个库基本都能用 那圈LED也不便宜,而且还要考虑扩流 咋又提扩流的问题,好像有个帖子已经说过了,自带驱动跟流无关 这图应该能说明问题了 不需要扩流的只要保证5V供电的电流充足就好了 数字总线驱动 本帖最后由 darkorigin 于 2017-5-10 19:21 编辑
自己控制也能搞
我曾经拆过一个不知道什么蛇的鼠标,中键就是RGB灯的
直接用arduino驱动,可以实现颜色的红、绿、蓝渐变转换。
通过3个PWM口分别给三个脚喂0-255的数据即可 实际使用接线,资料全了 谢谢楼主的提示,明白了一点东西。
#include "FastLED.h"
#define NUM_LEDS 60
CRGB leds;
void setup() { FastLED.addLeds<NEOPIXEL, 6>(leds, NUM_LEDS); }
void loop() {
leds = CRGB::White; FastLED.show(); delay(1000);
leds = CRGB::Red; FastLED.show(); delay(1000);
leds = CRGB::Green; FastLED.show(); delay(1000);
leds = CRGB::Yellow; FastLED.show(); delay(1000);
leds = CRGB::Orange; FastLED.show(); delay(1000);
leds = CRGB::Blue; FastLED.show(); delay(1000);
leds = CRGB::Purple; FastLED.show(); delay(1000);
leds = CRGB::Brown; FastLED.show(); delay(1000);
leds = CRGB::White; FastLED.show(); delay(1000);
leds = CRGB::Red; FastLED.show(); delay(1000);
leds = CRGB::Green; FastLED.show(); delay(1000);
leds = CRGB::Yellow; FastLED.show(); delay(1000);
leds = CRGB::Orange; FastLED.show(); delay(1000);
leds = CRGB::Blue; FastLED.show(); delay(1000);
leds = CRGB::Purple; FastLED.show(); delay(1000);
leds = CRGB::Brown; FastLED.show(); delay(1000);
}
依次亮灯 方恨少 发表于 2018-1-11 10:51
谢谢楼主的提示,明白了一点东西。
#include "FastLED.h"
#define NUM_LEDS 60
这是有8颗灯么?
弘毅 发表于 2017-5-10 10:13
这个库是神库。。。这种单总线的数控LED。。。这个库基本都能用
但是如果一个uno控制两个ws2812灯环做不同频率的流水动画,没有想到好办法实现。不知道大神有没有提示?谢谢
我的大致思路如下:按键1 按下,灯环1开始做黄色延时10ms的流水动画。按键2 按下,灯环1开始做红色延时20ms的流水动画。由于我使用的是for循环做的流水,导致如果for循环没有走完程序,将不能读取另外的控制。
请大神帮忙解惑,是我的程序需要改?还是我的这个思路构建有问题?谢谢
页:
[1]