我們所使用的燈條規格為WS2812,共60個燈泡。
燈條並不需要額外加上電阻,僅需要將紅線接5V,黑線接GND,黃線接數位腳位。
需要安裝函式庫Adafruit_NeoPixel
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define MAX_LED 60
Adafruit_NeoPixel pixels( MAX_LED, PIN, NEO_GRB );
void setup() {
pixels.begin();
}
void loop() {
pixels.clear();
for(int i=0; i<MAX_LED; i++) {
pixels.setPixelColor(i, pixels.Color(150, 150, 150));
pixels.show();
delay(500);
}
}
引用函式庫<Adafruit_NeoPixel.h>
定義變數PIN等於6
定義變數MAX_LED等於60(燈條上有60個燈)
設定LED數量;訊號腳位;燈的類型
初始設定{
燈條啟動
}
重複執行{
燈條全部熄滅
執行迴圈(設定變數i;i小於變數MAX_LED;i每圈+1){
設定燈條(第i個燈;顏色為R-150,G-150,B-150)
燈條顯示
等待五秒鐘
}
}
新概念
for(){}:又稱作for迴圈,意思如下:
for (初始值 ;執行條件; 逐次增加){執行的內容}
例如for ( int i = 0; 0 <= 3; i++ ){}表示的意思如下:
for (設定一個變數i ;每次開始迴圈時檢查條件,如果不符合則結束迴圈; i增加一){}
由於變數i一開始是零,每執行一次i後就會增加1,執行四次後i等於4,在準備執行第五次時不符合條件,因此迴圈內的函式會執行4次。
可以參考下面的影片,對於for的功能有更詳細的描述。
進階挑戰
將燈條設定成不同的顏色依序點亮
loop前的內容都與上方範例相同因此不再贅述。

pixels.clear();
for(int i=0; i<20; i++) {
pixels.setPixelColor(i*3, pixels.Color(150, 0 , 0));
pixels.show();
delay(500);
pixels.setPixelColor(i*3+1, pixels.Color(0, 150 , 0));
pixels.show();
delay(500);
pixels.setPixelColor(i*3+2, pixels.Color(0, 0 , 150));
pixels.show();
delay(500);
}
}


重複執行{
重複執行20次
設定第執行次數乘3的燈泡為紅色
執行上方設定
等待0.5秒
設定第執行次數乘3+1的燈泡為綠色
執行上方設定
等待0.5秒
設定第執行次數乘3+2的燈泡為藍色
執行上方設定
等待0.5秒
}
}