浏览量: 99 次浏览

ws2812灯带 arduino使用

2020年2月2日 0 作者 Nie Hen

ws2812

数字RGB灯带
enter description here
有信号的输入和输出

DO是信号输出 DI是信号输入
将多个RGB灯串联,信号进行传输然后实现灯带。
enter description here

有很多种 我使用是这种来充当led灯
enter description here

使用arduino开发

连接电路图 只需要一个GPIO来提供信号,一个接5V电源一个接地
enter description here

使用arduino库 FastLED
上传示例代码

#include "FastLED.h"            // 此示例程序需要使用FastLED库

#define NUM_LEDS 30             // LED灯珠数量
#define DATA_PIN 9              // Arduino输出控制信号引脚
#define LED_TYPE WS2812         // LED灯带型号
#define COLOR_ORDER GRB         // RGB灯珠中红色、绿色、蓝色LED的排列顺序

uint8_t max_bright = 128;       // LED亮度控制变量,可使用数值为 0 ~ 255, 数值越大则光带亮度越高

CRGB leds[NUM_LEDS];            // 建立光带leds

void setup() { 
  Serial.begin(9600);           // 启动串行通讯
  delay(1000);                  // 稳定性等待
  LEDS.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);  // 初始化光带 
  FastLED.setBrightness(max_bright);                            // 设置光带亮度
}

void loop() { 
  leds[0] = CRGB::Red;          // 设置光带中第一个灯珠颜色为红色,leds[0]为第一个灯珠,leds[1]为第二个灯珠
  FastLED.show();                // 更新LED色彩
  delay(500);                     // 等待500毫秒

  leds[0] = CRGB::Black;          // 设置光带中第一个灯珠颜色为红色,leds[0]为第一个灯珠,leds[1]为第二个灯珠
  FastLED.show();                // 更新LED色彩
  delay(500);                     // 等待500毫秒  
}

更多参考 太极创客链接
更多fastLED的用法 太极创客链接