WS2812B介紹
- WS2812B是集控制電路和發(fā)光電路于一體的LED光源元件
- 其控制IC為WS2812B,發(fā)光元件是5050RGBLED
- 電壓為5V降宅,每個單位的峰值電流為60ma
- 燈帶為三線制,VCC GND DIN分別為電源+蔑祟、電源-趴俘、信號
-
當(dāng)使用外部電源時,外部電源-需要與Arduino的GND相連
接線測試
測試環(huán)境中可以直接使用Arduino的5V引腳直接供電驶悟,接法如下圖所示:
如果燈帶長度過長,則需要外接電源材失,接法如下圖所示:
編寫程序
引入頭文件 定義引腳
#include <Adafruit_NeoPixel.h> //引入頭文件
#ifdef __AVR__
#include <avr/power.h>
#endif
#define LED_PIN 3//定義信號輸出引腳
#define LED_COUNT 144//定義LED燈個數(shù)
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);//創(chuàng)建燈條對象
燈帶初始化操作
void setup() {
//燈條初始化
strip.begin();
strip.show();
}
編寫控制程序(常亮藍(lán)色)
void setup() {
//燈條初始化
strip.begin();
strip.show();
}
關(guān)于Adafruit_NeoPixel中的HSV顏色模型
在Adafruit_NeoPixel中可以以RGB的色彩模型來控制紅痕鳍、綠、藍(lán)三個顏色的燈光來合成各種色彩,還可以以HSV的色彩模型控制燈光的色相笼呆、飽和度熊响、亮度對色彩進(jìn)行調(diào)整。
通過HSV控制的優(yōu)點(diǎn)是可以更方便的控制燈光的亮度诗赌、調(diào)整顏色更符合人的直覺汗茄。
HSV中H的參數(shù)范圍為0-65535
S:飽和度 調(diào)整范圍0-255
V:亮度 調(diào)整范圍 0-255
具體使用方法參見以下代碼:
//呼吸燈效果
#define ADD true
#define SUB false
boolean stat1 = true; //呼吸狀態(tài)反轉(zhuǎn)標(biāo)志
int val = 0; //呼吸亮度變量
uint32_t hsvcolor = strip.ColorHSV(170*256,255, val);
void fadeinout(uint32_t hsvcolor){
hsvcolor = strip.ColorHSV(170*256,255, val);
for(int i=-1;i<150;i++){
strip.setPixelColor(i, hsvcolor);
}
if(val>=170)
stat1 = SUB;
if(val<=0)
stat1 = ADD;
strip.show();
//delay(20);
if(stat1==SUB) val -= 5;
else if(stat1==ADD) val += 5;
}