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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arduino篇—FastLED庫(kù)文件項(xiàng)目應(yīng)用

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

課程目標(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毫秒
  }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • LED控制
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    16872
  • RGB
    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
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【mBot試用體驗(yàn)】使用Arduino IDE庫(kù)文件配置詳解

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

    圖書《arduino程序設(shè)計(jì)基礎(chǔ)》

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

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

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

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

    ,提示找不到對(duì)應(yīng)的頭文件。請(qǐng)問使用idf.py命令方式編譯,怎樣才能編譯arduino庫(kù),并且在項(xiàng)目中可調(diào)用。謝謝
    發(fā)表于 02-10 08:14

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

    對(duì)應(yīng)的頭文件。請(qǐng)問使用idf.py命令方式編譯,怎樣才能編譯arduino庫(kù),并且在項(xiàng)目中可調(diào)用。謝謝
    發(fā)表于 03-03 09:10

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

    ,提示找不到對(duì)應(yīng)的頭文件。請(qǐng)問使用idf.py命令方式編譯,怎樣才能編譯arduino庫(kù),并且在項(xiàng)目中可調(diào)用。
    發(fā)表于 03-08 09:09

    樂為物聯(lián)網(wǎng)平臺(tái)的接入Arduino庫(kù)文件

    樂為物聯(lián)網(wǎng)平臺(tái)的接入Arduino庫(kù)文件,方便開發(fā)調(diào)用。
    發(fā)表于 10-29 11:05 ?32次下載

    yeelink物聯(lián)網(wǎng)平臺(tái)的接入Arduino庫(kù)文件

    yeelink物聯(lián)網(wǎng)平臺(tái)的接入Arduino庫(kù)文件,方便開發(fā)調(diào)用。
    發(fā)表于 10-29 11:04 ?24次下載

    FastLED-3.1.0

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

    鼠標(biāo)輪編碼器AD庫(kù)、Solidworks項(xiàng)目和STEP文件

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

    arduino MPU-6050庫(kù)文件

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

    如何安裝FastLED.io庫(kù)

    Internet上有許多非常酷的附加代碼庫(kù)可供下載,這些代碼庫(kù)Arduino IDE添加了功能。每個(gè)人都為IDE提供了一些獨(dú)特的通信技能,使Arduino可以與獨(dú)特的硬件模塊“對(duì)話”
    的頭像 發(fā)表于 11-15 10:38 ?1.1w次閱讀

    Arduino實(shí)現(xiàn)電子時(shí)鐘的庫(kù)文件資料合集免費(fèi)下載

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

    Arduino IED中安裝TimeOne庫(kù)文件

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

    涂鴉智能物聯(lián)網(wǎng)平臺(tái)mcu方案arduino庫(kù)文件

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