我在粒子光子上玩NeoPixels。已經得到了一個示例代碼,通過不同的顏色旋轉neopixels。然而,對於如何擴展這個問題有點困惑,特別是它定義了neopixel顏色的方式。#定義,NeoPIxel的RGB顏色
草圖的顏色定義爲這樣
#define BLUE 5,5,190
#define WHITE 150,150,150
#define GREEN 10,180,10
,並呼籲以這種方式下面的函數自旋
spin (BLUE);
void spin(int R, int G, int B) {
for(i=0; i < PIXEL_COUNT; i++) {
strip.setPixelColor(i, R,G,B);
strip.show();
delay(waitTime);
}
for(i=0; i < PIXEL_COUNT; i++) {
strip.setPixelColor(i, 0,0,0);
strip.show();
delay(waitTime);
}
}
我想發送的光子命令來改變顏色,所以需要設置一個變量等於所定義的顏色之一併傳遞給旋轉函數。 然而,變量設置爲INT失敗即
int lightcolor = BLUE;
我還試圖陣列
int lightcolor [] = BLUE;
失敗以及。
我設法得到 int lightcolor [1,1,1] = BLUE
通過編譯器,但它沒有在功能呼叫
自旋(lightcolor)
或 自旋(lightcolor [1,1,1] }
只是不確定我在這裏丟失了關於#define如何聲明const以及如何在整個草圖中使用它的問題
謝謝
'5,5,190'不是一個有效的int。你是否應該使用逗號分隔的數字作爲參數傳遞給函數? – Carcigenicate
這確實是一種奇怪的定義顏色的方式,如果您想要對數據做大量工作,這非常無益。我建議看看不同的示例代碼。 –