我正在使用 Arduino 和 FastLED 库控制一条 LED,并且我设置了一些功能,可以让我更改 LED 等的颜色。
我有一个函数,其中传入了红色、绿色和蓝色的值,并将整个条带设置为该颜色:
void changeColour(int valR, int valG, int valB) {
for (int i = 0; i < NUM_LEDS; i++) {
led[i] = CRGB(valR, valG, valB);
}
FastLED.setBrightness(255);
FastLED.show();
}
然后,我设置了一个包含预设颜色及其对应 RGB 值的二维数组:
int colours [20][3] = {
{255, 105, 180}, //HotPink
{255, 20, 147}, //DeepPink
{139, 0, 0}, //DarkRed
{255, 0, 0}, //Red
{255, 69, 0}, //OrangeRed
{255, 255, 0}, //Yellow
{128, 0, 0}, //Maroon
{50, 205, 50}, //LimeGreen
{0, 255, 0}, //Lime
{34, 139, 32}, //ForestGreen
{0, 128, 0}, //Green
{0, 100, 0}, //DarkGreen
{102, 205, 170}, //MediumAquaMarine
{0, 255, 255}, //Aqua
{0, 139, 139}, //DarkCyan
{0, 191, 255}, //DeepSkyBlue
{0, 0, 255}, //Blue
{128, 0, 128} //Purple
};
我想做的是调用changeColour();
函数并从数组中传入随机颜色的 RGB 值,所以我编写了该函数:
int randomColour(); {
int x = rand() % 18;
int valR = colours[x][0];
int valG = colours[x][1];
int valB = colours[x][2];
return (valR, valG, valB);
}
我将如何获得它以便我可以调用该changeColour()
函数,而不是changeColour(valR, valG, valB)
调用该randomColour()
函数,该函数又返回valR, valG
andvalB
值,从而将它们传递给changeColour()
函数?