0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arduino篇—FastLED庫文件項目應用

冬至子 ? 來源:X的創(chuàng)客課堂 ? 作者:MRXY ? 2023-11-02 11:39 ? 次閱讀

課程目標

  • 單個LED的控制方法
  • LED的運動模式
  • LED的多種顏色控制

電路搭建

所需材料

ArduinoUNO * 1
RGB燈帶30個LED * 1

電路連接

圖片

程序編寫

練習一:單個LED閃爍

代碼方式:

/* 項目名稱: WS2812單個LED閃爍
 * 項目時間:2022.04.21
 * 項目作者:MRX
 */
#include "FastLED.h"


#define LEDS_NUM 30    //定義led燈珠的數量
#define DATA_PIN 9     //UNO輸出控制信號引腳
#define LED_TYPE WS2812 //LED燈帶型號
#define COLOR_ORDER GRB //RGB燈珠中三種顏色LED的排序


uint8_t bright = 128;  //LED亮度控制,范圍為0~255,數值越大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;   //設置燈帶中第一個燈珠顏色為紅色,leds[0]為第一個
    FastLED.show();        //更新LED色彩
    delay(500);            //等待500毫秒

    leds[0] = CRGB::Black;   //熄滅燈帶第一個燈珠
    FastLED.show();          //更新LED色彩
    delay(500);              //等待500毫秒
  }
}

相關知識:

**uint8_t:**其取值范圍為0255,由于FastLED庫做定義的LED亮度范圍剛好在0255,從最優(yōu)角度來看,這里使用這個變量類型剛好合適。

練習二:移動的LED

代碼形式:

/* 項目名稱: WS2812單個LED閃爍移動
 * 項目時間:2022.04.21
 * 項目作者:MRX
 */
#include "FastLED.h"


#define LEDS_NUM 30    //定義led燈珠的數量
#define DATA_PIN 9     //UNO輸出控制信號引腳
#define LED_TYPE WS2812 //LED燈帶型號
#define COLOR_ORDER GRB //RGB燈珠中三種顏色LED的排序


uint8_t bright = 128;  //LED亮度控制,范圍為0~255,數值越大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;   //設置燈帶中第一個燈珠顏色為紅色
    FastLED.show();        //更新LED色彩
    delay(50);            //等待50毫秒

    leds[i] = CRGB::Black;   //熄滅燈帶第一個燈珠
    FastLED.show();          //更新LED色彩
    delay(50);              //等待50毫秒
  }
}

作用域符號”::“: 符號的前面一般是類名稱,后面一般是該類的成員名稱,C++為例避免不同的類有名稱相同的成員而采用作用域的方式進行區(qū)分。

練習三:三色燈移動

代碼形式:

/* 項目名稱: WS2812單個LED三種顏色循環(huán)閃爍
 * 項目時間:2022.04.21
 * 項目作者:MRX
 */
#include "FastLED.h"


#define LEDS_NUM 30    //定義led燈珠的數量
#define DATA_PIN 9     //UNO輸出控制信號引腳
#define LED_TYPE WS2812 //LED燈帶型號
#define COLOR_ORDER GRB //RGB燈珠中三種顏色LED的排序


uint8_t bright = 128;  //LED亮度控制,范圍為0~255,數值越大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;   //設置燈帶中第一個燈珠顏色為紅色
    FastLED.show();        //更新LED色彩
    delay(50);            //等待500毫秒


    leds[i] = CRGB::Green;   //設置燈帶中第一個燈珠顏色為綠色
    FastLED.show();        //更新LED色彩
    delay(50);            //等待50毫秒


    leds[i] = CRGB::Blue;   //設置燈帶中第一個燈珠顏色為藍色
    FastLED.show();        //更新LED色彩
    delay(50);            //等待50毫秒

    leds[i] = CRGB::Black;   //熄滅燈帶第一個燈珠
    FastLED.show();          //更新LED色彩
    delay(50);              //等待50毫秒
  }
}

練習四:多個三色燈移動

代碼形式:

/* 項目名稱: WS2812多個LED循環(huán)移動
 * 項目時間:2022.04.21
 * 項目作者:MRX
 */
#include "FastLED.h"


#define LEDS_NUM 30    //定義led燈珠的數量
#define DATA_PIN 9     //UNO輸出控制信號引腳
#define LED_TYPE WS2812 //LED燈帶型號
#define COLOR_ORDER GRB //RGB燈珠中三種顏色LED的排序


uint8_t bright = 128;  //LED亮度控制,范圍為0~255,數值越大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;   //設置燈帶中第一個燈珠顏色為紅色
    leds[i+1] = CRGB::Red;
    FastLED.show();        //更新LED色彩
    delay(50);            //等待500毫秒


    leds[i-1] = CRGB::Green;
    leds[i] = CRGB::Green;   //設置燈帶中第一個燈珠顏色為綠色
    leds[i+1] = CRGB::Green;
    FastLED.show();        //更新LED色彩
    delay(50);            //等待50毫秒


    leds[i-1] = CRGB::Blue;
    leds[i] = CRGB::Blue;   //設置燈帶中第一個燈珠顏色為藍色
    leds[i+1] = CRGB::Blue;
    FastLED.show();        //更新LED色彩
    delay(50);            //等待50毫秒

    leds[i-1] = CRGB::Black;
    leds[i] = CRGB::Black;   //熄滅燈帶第一個燈珠
    leds[i+1] = CRGB::Black;
    FastLED.show();          //更新LED色彩
    delay(50);              //等待50毫秒
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LED控制
    +關注

    關注

    0

    文章

    38

    瀏覽量

    16886
  • RGB
    RGB
    +關注

    關注

    4

    文章

    794

    瀏覽量

    58307
  • Arduino
    +關注

    關注

    187

    文章

    6455

    瀏覽量

    186361
  • 三色燈
    +關注

    關注

    0

    文章

    6

    瀏覽量

    6188
  • WS2812
    +關注

    關注

    0

    文章

    32

    瀏覽量

    6091
收藏 人收藏

    評論

    相關推薦

    【mBot試用體驗】使用Arduino IDE文件配置詳解

    是使用Arduino IDE編程,下面來介紹一下Arduino 編程的相關文件配置和Arduino 使用的簡單介紹:首先大家需要下載下面這
    發(fā)表于 12-25 01:29

    圖書《arduino程序設計基礎》

    Arduino… 1004.3.1編寫頭文件… 1004.3.2預處理命令… 1014.3.3宏定義… 1024.3.4文件包含… 1024.3.5條件編譯… 1024.3.6版本
    發(fā)表于 06-12 14:37

    Arduino開發(fā)實戰(zhàn)指南 AVR

    第一基礎第1章初識Arduino第2章編寫Arduino程序第3章Arduino的基本函數第4章Ar
    發(fā)表于 08-03 16:14

    ESP-IDF添加arduino作為component的方式創(chuàng)建項目,在使用arduno的時找不到頭文件的原因?

    ,提示找不到對應的頭文件。請問使用idf.py命令方式編譯,怎樣才能編譯arduino,并且在項目中可調用。謝謝
    發(fā)表于 02-10 08:14

    ESP-IDF添加arduino作為component的方式創(chuàng)建項目,在使用arduno的時,找不到頭文件怎么解決?

    對應的頭文件。請問使用idf.py命令方式編譯,怎樣才能編譯arduino,并且在項目中可調用。謝謝
    發(fā)表于 03-03 09:10

    ESP-IDF添加arduino作為component的方式創(chuàng)建項目,在使用arduno的時,找不到頭文件的原因?

    ,提示找不到對應的頭文件。請問使用idf.py命令方式編譯,怎樣才能編譯arduino,并且在項目中可調用。
    發(fā)表于 03-08 09:09

    樂為物聯(lián)網平臺的接入Arduino文件

    樂為物聯(lián)網平臺的接入Arduino文件,方便開發(fā)調用。
    發(fā)表于 10-29 11:05 ?32次下載

    yeelink物聯(lián)網平臺的接入Arduino文件

    yeelink物聯(lián)網平臺的接入Arduino文件,方便開發(fā)調用。
    發(fā)表于 10-29 11:04 ?24次下載

    FastLED-3.1.0

    arduino 2812控制文件 arduino 2812控制文件
    發(fā)表于 12-03 18:02 ?6次下載

    鼠標輪編碼器AD、Solidworks項目和STEP文件

    鼠標輪編碼器AD、Solidworks項目和STEP文件,感興趣的可以看看。
    發(fā)表于 05-11 16:33 ?0次下載

    arduino MPU-6050文件

    arduino MPU-6050文件Arduino+MPU6050+卡爾曼濾波自平衡車
    發(fā)表于 05-23 18:21 ?52次下載

    如何安裝FastLED.io

    Internet上有許多非??岬母郊哟a可供下載,這些代碼Arduino IDE添加了功能。每個人都為IDE提供了一些獨特的通信技能,使Arduino可以與獨特的硬件模塊“對話”
    的頭像 發(fā)表于 11-15 10:38 ?1.1w次閱讀

    Arduino實現(xiàn)電子時鐘的文件資料合集免費下載

    本文檔的主要內容詳細介紹的是Arduino實現(xiàn)電子時鐘的文件資料合集免費下載。
    發(fā)表于 06-02 08:00 ?6次下載
    <b class='flag-5'>Arduino</b>實現(xiàn)電子時鐘的<b class='flag-5'>庫</b><b class='flag-5'>文件</b>資料合集免費下載

    Arduino IED中安裝TimeOne文件

    Arduino IED中安裝TimeOne文件
    發(fā)表于 04-25 09:45 ?4次下載

    涂鴉智能物聯(lián)網平臺mcu方案arduino文件

    涂鴉智能物聯(lián)網平臺mcu方案arduino文件,使用可以輕松接入涂鴉平臺,實現(xiàn)遠程控制、OTA等平臺能力
    發(fā)表于 04-28 17:43 ?5次下載