課程目標(biāo)
- 單個(gè)LED的控制方法
- LED的運(yùn)動(dòng)模式
- LED的多種顏色控制
電路搭建
所需材料
ArduinoUNO * 1
RGB燈帶30個(gè)LED * 1
電路連接
程序編寫
練習(xí)一:?jiǎn)蝹€(gè)LED閃爍
代碼方式:
/* 項(xiàng)目名稱: WS2812單個(gè)LED閃爍
* 項(xiàng)目時(shí)間:2022.04.21
* 項(xiàng)目作者:MRX
*/
#include "FastLED.h"
#define LEDS_NUM 30 //定義led燈珠的數(shù)量
#define DATA_PIN 9 //UNO輸出控制信號(hào)引腳
#define LED_TYPE WS2812 //LED燈帶型號(hào)
#define COLOR_ORDER GRB //RGB燈珠中三種顏色LED的排序
uint8_t bright = 128; //LED亮度控制,范圍為0~255,數(shù)值越大LED越亮
CRGB leds[LEDS_NUM]; //創(chuàng)建燈帶leds
void setup() {
Serial.begin(9600);
delay(1000);
LEDS.addLeds(leds,LEDS_NUM); //初始化燈帶
FastLED.setBrightness(bright);
}
void loop() {
leds[0] = CRGB::Red; //設(shè)置燈帶中第一個(gè)燈珠顏色為紅色,leds[0]為第一個(gè)
FastLED.show(); //更新LED色彩
delay(500); //等待500毫秒
leds[0] = CRGB::Black; //熄滅燈帶第一個(gè)燈珠
FastLED.show(); //更新LED色彩
delay(500); //等待500毫秒
}
}
相關(guān)知識(shí):
**uint8_t:**其取值范圍為0255,由于FastLED庫(kù)做定義的LED亮度范圍剛好在0255,從最優(yōu)角度來(lái)看,這里使用這個(gè)變量類型剛好合適。
練習(xí)二:移動(dòng)的LED
代碼形式:
/* 項(xiàng)目名稱: WS2812單個(gè)LED閃爍移動(dòng)
* 項(xiàng)目時(shí)間:2022.04.21
* 項(xiàng)目作者:MRX
*/
#include "FastLED.h"
#define LEDS_NUM 30 //定義led燈珠的數(shù)量
#define DATA_PIN 9 //UNO輸出控制信號(hào)引腳
#define LED_TYPE WS2812 //LED燈帶型號(hào)
#define COLOR_ORDER GRB //RGB燈珠中三種顏色LED的排序
uint8_t bright = 128; //LED亮度控制,范圍為0~255,數(shù)值越大LED越亮
CRGB leds[LEDS_NUM]; //創(chuàng)建燈帶leds
void setup() {
Serial.begin(9600);
delay(1000);
LEDS.addLeds(leds,LEDS_NUM); //初始化燈帶
FastLED.setBrightness(bright);
}
void loop() {
for(int i = 0;i <= LEDS_NUM; i++ ){
leds[i] = CRGB::Red; //設(shè)置燈帶中第一個(gè)燈珠顏色為紅色
FastLED.show(); //更新LED色彩
delay(50); //等待50毫秒
leds[i] = CRGB::Black; //熄滅燈帶第一個(gè)燈珠
FastLED.show(); //更新LED色彩
delay(50); //等待50毫秒
}
}
作用域符號(hào)”::“: 符號(hào)的前面一般是類名稱,后面一般是該類的成員名稱,C++為例避免不同的類有名稱相同的成員而采用作用域的方式進(jìn)行區(qū)分。
練習(xí)三:三色燈移動(dòng)
代碼形式:
/* 項(xiàng)目名稱: WS2812單個(gè)LED三種顏色循環(huán)閃爍
* 項(xiàng)目時(shí)間:2022.04.21
* 項(xiàng)目作者:MRX
*/
#include "FastLED.h"
#define LEDS_NUM 30 //定義led燈珠的數(shù)量
#define DATA_PIN 9 //UNO輸出控制信號(hào)引腳
#define LED_TYPE WS2812 //LED燈帶型號(hào)
#define COLOR_ORDER GRB //RGB燈珠中三種顏色LED的排序
uint8_t bright = 128; //LED亮度控制,范圍為0~255,數(shù)值越大LED越亮
CRGB leds[LEDS_NUM]; //創(chuàng)建燈帶leds
void setup() {
Serial.begin(9600);
delay(1000);
LEDS.addLeds(leds,LEDS_NUM); //初始化燈帶
FastLED.setBrightness(bright);
}
void loop() {
for(int i = 0;i <= LEDS_NUM; i++ ){
leds[i] = CRGB::Red; //設(shè)置燈帶中第一個(gè)燈珠顏色為紅色
FastLED.show(); //更新LED色彩
delay(50); //等待500毫秒
leds[i] = CRGB::Green; //設(shè)置燈帶中第一個(gè)燈珠顏色為綠色
FastLED.show(); //更新LED色彩
delay(50); //等待50毫秒
leds[i] = CRGB::Blue; //設(shè)置燈帶中第一個(gè)燈珠顏色為藍(lán)色
FastLED.show(); //更新LED色彩
delay(50); //等待50毫秒
leds[i] = CRGB::Black; //熄滅燈帶第一個(gè)燈珠
FastLED.show(); //更新LED色彩
delay(50); //等待50毫秒
}
}
練習(xí)四:多個(gè)三色燈移動(dòng)
代碼形式:
/* 項(xiàng)目名稱: WS2812多個(gè)LED循環(huán)移動(dòng)
* 項(xiàng)目時(shí)間:2022.04.21
* 項(xiàng)目作者:MRX
*/
#include "FastLED.h"
#define LEDS_NUM 30 //定義led燈珠的數(shù)量
#define DATA_PIN 9 //UNO輸出控制信號(hào)引腳
#define LED_TYPE WS2812 //LED燈帶型號(hào)
#define COLOR_ORDER GRB //RGB燈珠中三種顏色LED的排序
uint8_t bright = 128; //LED亮度控制,范圍為0~255,數(shù)值越大LED越亮
CRGB leds[LEDS_NUM]; //創(chuàng)建燈帶leds
void setup() {
Serial.begin(9600);
delay(1000);
LEDS.addLeds(leds,LEDS_NUM); //初始化燈帶
FastLED.setBrightness(bright);
}
void loop() {
for(int i = 0;i <= 30; i++ ){
leds[i-1] = CRGB::Red;
leds[i] = CRGB::Red; //設(shè)置燈帶中第一個(gè)燈珠顏色為紅色
leds[i+1] = CRGB::Red;
FastLED.show(); //更新LED色彩
delay(50); //等待500毫秒
leds[i-1] = CRGB::Green;
leds[i] = CRGB::Green; //設(shè)置燈帶中第一個(gè)燈珠顏色為綠色
leds[i+1] = CRGB::Green;
FastLED.show(); //更新LED色彩
delay(50); //等待50毫秒
leds[i-1] = CRGB::Blue;
leds[i] = CRGB::Blue; //設(shè)置燈帶中第一個(gè)燈珠顏色為藍(lán)色
leds[i+1] = CRGB::Blue;
FastLED.show(); //更新LED色彩
delay(50); //等待50毫秒
leds[i-1] = CRGB::Black;
leds[i] = CRGB::Black; //熄滅燈帶第一個(gè)燈珠
leds[i+1] = CRGB::Black;
FastLED.show(); //更新LED色彩
delay(50); //等待50毫秒
}
}
-
LED控制
+關(guān)注
關(guān)注
0文章
38瀏覽量
16872 -
RGB
+關(guān)注
關(guān)注
4文章
785瀏覽量
58205 -
Arduino
+關(guān)注
關(guān)注
187文章
6453瀏覽量
185929 -
三色燈
+關(guān)注
關(guān)注
0文章
6瀏覽量
6187 -
WS2812
+關(guān)注
關(guān)注
0文章
31瀏覽量
6034
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論