課程目標(biāo)
- 單個(gè)LED的控制方法
 - LED的運(yùn)動(dòng)模式
 - LED的多種顏色控制
 
電路搭建
所需材料
ArduinoUNO * 1
 RGB燈帶30個(gè)LED * 1
電路連接

程序編寫(xiě)
練習(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文章
42瀏覽量
17249 - 
                                RGB
                                +關(guān)注
關(guān)注
4文章
820瀏覽量
61284 - 
                                Arduino
                                +關(guān)注
關(guān)注
190文章
6512瀏覽量
195446 - 
                                三色燈
                                +關(guān)注
關(guān)注
0文章
6瀏覽量
6366 - 
                                WS2812
                                +關(guān)注
關(guān)注
0文章
33瀏覽量
6949 
發(fā)布評(píng)論請(qǐng)先 登錄
【mBot試用體驗(yàn)】使用Arduino IDE庫(kù)文件配置詳解
圖書(shū)《arduino程序設(shè)計(jì)基礎(chǔ)》
Arduino開(kāi)發(fā)實(shí)戰(zhàn)指南 AVR篇
ESP-IDF添加arduino作為component的方式創(chuàng)建項(xiàng)目,在使用arduno的庫(kù)時(shí)找不到頭文件的原因?
ESP-IDF添加arduino作為component的方式創(chuàng)建項(xiàng)目,在使用arduno的庫(kù)時(shí),找不到頭文件怎么解決?
ESP-IDF添加arduino作為component的方式創(chuàng)建項(xiàng)目,在使用arduno的庫(kù)時(shí),找不到頭文件的原因?
樂(lè)為物聯(lián)網(wǎng)平臺(tái)的接入Arduino庫(kù)文件
yeelink物聯(lián)網(wǎng)平臺(tái)的接入Arduino庫(kù)文件
鼠標(biāo)輪編碼器AD庫(kù)、Solidworks項(xiàng)目和STEP文件
如何安裝FastLED.io庫(kù)
Arduino實(shí)現(xiàn)電子時(shí)鐘的庫(kù)文件資料合集免費(fèi)下載
    
          
        
        
Arduino篇—FastLED庫(kù)文件項(xiàng)目應(yīng)用
                
 
           
            
            
                
            
評(píng)論