// --------------------------------------------------------------------------------
/*
12 NeoPixel LED Ring 設定顏色及滾動
[學習重點]
1. 認識 NeoPixel LED Ring
2. 認識 Library
3. 建立物件 Object
4. 認識子程式
[挑戰]
- 加多一個 NeoPixel LED Ring
Created by Jason on 12 Aug 2022.
*/
// --------------------------------------------------------------------------------
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel ring = Adafruit_NeoPixel(16, 9); // 建立物件 (16 = LED 數量, 9 = Pin)
void setup() {
ring.begin();
ring.setBrightness(255); // 設定亮度 0 - 255
ring.show(); // 將設定顯示出來
}
void loop() {
colorWipe(255, 0, 0, 50); // 依序亮紅色
colorWipe(255, 128, 0, 50); // 依序亮橙色
colorWipe(255, 255, 0, 50); // 依序亮黃色
colorWipe(0, 255, 0, 50); // 依序亮綠色
colorWipe(0, 255, 255, 50); // 依序亮青色
colorWipe(0, 0, 255, 50); // 依序亮藍色
colorWipe(255, 0, 255, 50); // 依序紫色
}
// 著色特效:依序顯示指定的 rgb 顏色, 每顯示一顆就暫停 wait 毫秒
void colorWipe(byte r, byte g, byte b, int wait) {
for (unsigned i = 0; i < ring.numPixels(); i++) { // 由0開始依序點亮
ring.setPixelColor(i, r, g, b); // 點亮指定的顏色
ring.show(); // 將設定顯示出來
delay(wait); // 延時
}
}