在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

Arduino篇—WS2812燈帶的使用方法

冬至子 ? 來源:X的創客課堂 ? 作者:MRXY ? 2023-11-02 11:36 ? 次閱讀

課程目標

  • WS2812燈帶的原理及應用
  • 如何合理的選擇供電大小
  • FastLED庫文件的調用

相關知識

RGBLED控制: arduino需要通過PWM引腳進行控制RGBLED。一個UNO有六個PWM引腳,因此,如果單獨的控制RGBLED的話,那就只能控制2個。

圖片

當我們需要控制多個RGBLED時,可以通過結合RGBLED控制芯片的方式來進行控制。

WS2812: 在LED內部封裝了WS2812控制芯片。

圖片

常規使用的是貼片式RGBLED,也就是我們俗稱的燈帶。

圖片

電路搭建

程序開發時的電路接線方式:

RGBLED燈帶上的燈珠數量達到一定數量的時候,它將是一個需要大電流驅動的設備,所以我們需要給它外接5V電源,并且和UNO進行共地連接。

圖片

使用產品時接線方式:

外接電源可以接到UNO的5V或者VIN進行供電。

圖片

供電選擇:

根據實際使用的燈珠數量,可以計算LED燈帶在使用過程中需要的最小電流。

圖片

所需電流 = 燈珠數量 * 60MA

1.jpg

電路連接

RGBLED燈珠有四個引腳,分別為VCC、GND、DI、DO,其中DI接入到UNO的控制信號端,DO和下一個燈珠的DI進行連接,也就是說,RGBLED燈帶是可以進行隨意數量的拼接。

圖片

程序編寫

示例程序測試:

本項目我們需要用到FastLED庫,首先進行庫文件的安裝。安裝方法可以參考下圖。

圖片

安裝完成后,打開FastLED庫內的示例程序,進行程序測試。

圖片

在這里,我們還需要對這個樣例程序進行一個修改。

修改UNO控制引腳:

#define DATA_PIN    3//此處需要改為你所接的UNO控制引腳

修改燈帶類型:

#define LED_TYPE    WS2811 //將原來的WS2811改為WS2812

修改使用的燈帶的燈珠數量:

#define NUM_LEDS    64  //此處修改為實際的LED數量

完整代碼形式:

#include < FastLED.h >


FASTLED_USING_NAMESPACE


// FastLED "100-lines-of-code" demo reel, showing just a few 
// of the kinds of animation patterns you can quickly and easily 
// compose using FastLED.  
//
// This example also shows one easy way to define multiple 
// animations patterns and have them automatically rotate.
//
// -Mark Kriegsman, December 2014


#if defined(FASTLED_VERSION) && (FASTLED_VERSION < 3001000)
#warning "Requires FastLED 3.1 or later; check github for latest code."
#endif


#define DATA_PIN    3
//#define CLK_PIN   4
#define LED_TYPE    WS2812
#define COLOR_ORDER GRB
#define NUM_LEDS    30
CRGB leds[NUM_LEDS];


#define BRIGHTNESS          96
#define FRAMES_PER_SECOND  120


void setup() {
  delay(3000); // 3 second delay for recovery

  // tell FastLED about the LED strip configuration
  FastLED.addLeds< LED_TYPE,DATA_PIN,COLOR_ORDER >(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  //FastLED.addLeds< LED_TYPE,DATA_PIN,CLK_PIN,COLOR_ORDER >(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);


  // set master brightness control
  FastLED.setBrightness(BRIGHTNESS);
}




// List of patterns to cycle through.  Each is defined as a separate function below.
typedef void (*SimplePatternList[])();
SimplePatternList gPatterns = { rainbow, rainbowWithGlitter, confetti, sinelon, juggle, bpm };


uint8_t gCurrentPatternNumber = 0; // Index number of which pattern is current
uint8_t gHue = 0; // rotating "base color" used by many of the patterns

void loop()
{
  // Call the current pattern function once, updating the 'leds' array
  gPatterns[gCurrentPatternNumber]();


  // send the 'leds' array out to the actual LED strip
  FastLED.show();  
  // insert a delay to keep the framerate modest
  FastLED.delay(1000/FRAMES_PER_SECOND); 


  // do some periodic updates
  EVERY_N_MILLISECONDS( 20 ) { gHue++; } // slowly cycle the "base color" through the rainbow
  EVERY_N_SECONDS( 10 ) { nextPattern(); } // change patterns periodically
}


#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))


void nextPattern()
{
  // add one to the current pattern number, and wrap around at the end
  gCurrentPatternNumber = (gCurrentPatternNumber + 1) % ARRAY_SIZE( gPatterns);
}


void rainbow() 
{
  // FastLED's built-in rainbow generator
  fill_rainbow( leds, NUM_LEDS, gHue, 7);
}


void rainbowWithGlitter() 
{
  // built-in FastLED rainbow, plus some random sparkly glitter
  rainbow();
  addGlitter(80);
}


void addGlitter( fract8 chanceOfGlitter) 
{
  if( random8() < chanceOfGlitter) {
    leds[ random16(NUM_LEDS) ] += CRGB::White;
  }
}


void confetti() 
{
  // random colored speckles that blink in and fade smoothly
  fadeToBlackBy( leds, NUM_LEDS, 10);
  int pos = random16(NUM_LEDS);
  leds[pos] += CHSV( gHue + random8(64), 200, 255);
}


void sinelon()
{
  // a colored dot sweeping back and forth, with fading trails
  fadeToBlackBy( leds, NUM_LEDS, 20);
  int pos = beatsin16( 13, 0, NUM_LEDS-1 );
  leds[pos] += CHSV( gHue, 255, 192);
}


void bpm()
{
  // colored stripes pulsing at a defined Beats-Per-Minute (BPM)
  uint8_t BeatsPerMinute = 62;
  CRGBPalette16 palette = PartyColors_p;
  uint8_t beat = beatsin8( BeatsPerMinute, 64, 255);
  for( int i = 0; i < NUM_LEDS; i++) { //9948
    leds[i] = ColorFromPalette(palette, gHue+(i*2), beat-gHue+(i*10));
  }
}


void juggle() {
  // eight colored dots, weaving in and out of sync with each other
  fadeToBlackBy( leds, NUM_LEDS, 20);
  byte dothue = 0;
  for( int i = 0; i < 8; i++) {
    leds[beatsin16( i+7, 0, NUM_LEDS-1 )] |= CHSV(dothue, 200, 255);
    dothue += 32;
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • LED控制
    +關注

    關注

    0

    文章

    39

    瀏覽量

    16955
  • RGB
    RGB
    +關注

    關注

    4

    文章

    800

    瀏覽量

    58597
  • 電流驅動
    +關注

    關注

    1

    文章

    43

    瀏覽量

    10864
  • Arduino
    +關注

    關注

    188

    文章

    6474

    瀏覽量

    187430
  • WS2812
    +關注

    關注

    0

    文章

    32

    瀏覽量

    6202
收藏 人收藏

    評論

    相關推薦

    用STM32控制WS2812 RGB的代碼分享

    用STM32控制WS2812 RGB的代碼分享
    發表于 12-15 07:09

    Arduino控制WS2812方法

    設計者:STCode(公眾號同名)Arduino控制WS2812環)1) WS2812
    發表于 01-12 08:08

    STM32F103C8T6+PWM+DMA驅動WS2812方法

    #STM32+PWM+DMA驅動 WS2812#文章目錄1.理論:2代碼:理論:使用STM32F103C8T6驅動WS2812
    發表于 02-22 06:59

    自制60位WS2812

    描述60位WS2812環超小60位WS2812環可作為超小時鐘采用2020環圈只有36mm不到目前市60位環半徑78毫米的雙面鋪銅上層
    發表于 09-01 07:11

    如何進行WS2812的面板制作詳細資料合集免費下載

    本文檔的主要內容詳細介紹的是如何進行WS2812的面板制作詳細資料合集免費下載包括了:DMX512轉WS2812 面板程序,STC8系列單片機技術參考手冊,
    發表于 05-29 17:36 ?164次下載
    如何進行<b class='flag-5'>WS2812</b>的面板<b class='flag-5'>燈</b>制作詳細資料合集免費下載

    dfrobot炫彩WS2812 RGB LED可剪裁白色燈介紹

    WS2812 RGB裸板白條是由一系列的全彩LED組成。
    的頭像 發表于 12-27 15:35 ?4578次閱讀
    dfrobot炫彩<b class='flag-5'>WS2812</b> RGB LED可剪裁白色燈<b class='flag-5'>帶</b>介紹

    STM32使用LL庫PWM的DMA模式驅動ws2812

    STM32使用LL庫PWM的DMA模式驅動ws2812一、WS2812簡介二、CUBEMX初始化代碼配置一、WS2812簡介給個鏈接吧,ws2812時序簡介
    發表于 11-30 10:21 ?66次下載
    STM32使用LL庫PWM的DMA模式驅動<b class='flag-5'>ws2812</b>

    STM32F103C8T6+PWM+DMA驅動 WS2812

    #STM32+PWM+DMA驅動 WS2812#文章目錄1.理論:2代碼:理論:使用STM32F103C8T6驅動WS2812
    發表于 12-27 19:29 ?216次下載
    STM32F103C8T6+PWM+DMA驅動 <b class='flag-5'>WS2812</b><b class='flag-5'>燈</b><b class='flag-5'>帶</b>

    Arduino WS2812B LED設計方案

    Arduino WS2812B LED可單獨控制每個LED的亮度和顏色,提供了一種簡單而酷炫的LED效果體驗。
    發表于 04-24 08:36 ?1.3w次閱讀
    <b class='flag-5'>Arduino</b> <b class='flag-5'>WS2812</b>B LED<b class='flag-5'>燈</b><b class='flag-5'>帶</b>設計方案

    超小60位WS2812

    電子發燒友網站提供《超小60位WS2812環.zip》資料免費下載
    發表于 08-12 09:58 ?20次下載
    超小60位<b class='flag-5'>WS2812</b><b class='flag-5'>燈</b>環

    WS2812 LED條的DIY Arduino 1D乒乓球游戲

    電子發燒友網站提供《WS2812 LED條的DIY Arduino 1D乒乓球游戲.zip》資料免費下載
    發表于 11-04 14:38 ?0次下載
    <b class='flag-5'>帶</b><b class='flag-5'>WS2812</b> LED<b class='flag-5'>燈</b>條的DIY <b class='flag-5'>Arduino</b> 1D乒乓球游戲

    DIY WS2812模擬式Arduino環形時鐘

    電子發燒友網站提供《DIY WS2812模擬式Arduino環形時鐘.zip》資料免費下載
    發表于 02-03 10:01 ?12次下載
    DIY <b class='flag-5'>WS2812</b>模擬式<b class='flag-5'>Arduino</b>環形時鐘

    最簡WS2812類似RGB條驅動方法

    最簡WS2812類似RGB條驅動方法
    的頭像 發表于 06-19 17:51 ?3606次閱讀
    最簡<b class='flag-5'>WS2812</b>類似RGB<b class='flag-5'>燈</b>條驅動<b class='flag-5'>方法</b>

    迪文屏控制WS2812氛圍

    ——來自迪文開發者論壇本期為大家推送迪文開發者論壇獲獎開源案例——迪文屏控制WS2812氛圍。工程師通過COF智能屏的OS核精準控制WS2812幻彩燈每一顆
    的頭像 發表于 01-26 08:12 ?1100次閱讀
    迪文屏控制<b class='flag-5'>WS2812</b>氛圍<b class='flag-5'>燈</b>

    論如何使用WS2812以及類似

    ? ?WS2812 LED珠,這是一種非常流行的可尋址RGB LED。每個WS2812 LED內部集成了控制電路,因此可以通過一個數據輸入線來單獨控制每一個LED的顏色和亮度。這種特性使得
    的頭像 發表于 09-30 15:11 ?523次閱讀
    論如何使用<b class='flag-5'>WS2812</b>以及類似<b class='flag-5'>燈</b>珠
    主站蜘蛛池模板: 国产成人黄网址在线视频| 久久男人精品| 亚洲第一色视频| 亚洲欧美色视频| 午夜伦理片在线观看| 性欧美高清| 四虎永久在线精品网址| l欧美18一19sex性| 成 人 免 费 黄 色| 一级黄色片a| 天天操网| 大美女久久久久久j久久| 色西西| 日本在线亚洲| 国产手机看片| 2o18国产大陆天天弄| 亚洲日本一区二区三区在线不卡| 欧美日本免费| 一区二区三| 成人午夜免费视频| 女主播扒开内衣让粉丝看个够| 一级毛片在线| 日本黄色高清视频| 国产美女主播在线| 天天看天天摸色天天综合网| 成人免费午间影院在线观看| 三级aa久久| 色手机在线| 国产免费人成在线看视频| 天天摸夜夜摸成人免费视频 | 香蕉视频一级| 欧美精品一区二区三区视频| 国产caob| 久久亚洲国产视频| 在线观看免费视频一区| 亚洲电影一区二区三区| 美女张开腿让男人桶爽| 亚洲国产精| 欧美成人黄色| 午夜老司机福利| 黄色免费三级|