我有一系列八个LED,我试图从ON开始随机淡入淡出。这是我到目前为止的地方。
#define LED1 2
#define LED2 3
#define LED3 4
#define LED4 5
#define LED5 6
#define LED6 7
#define LED7 8
#define LED8 9
void setup() {
pinMode(LED1,output);
pinMode(LED2,output);
pinMode(LED3,output);
pinMode(LED4,output);
pinMode(LED5,output);
pinMode(LED6,output);
pinMode(LED7,output);
pinMode(LED8,output);
}
void cycleLED() {
timeOn = random(600,1800);
timeOff = random(600,1800);
for (fadeOut = 255; fadeOut > 0; fadeOut--) {
analogWrite(LED, fadeout);
delay(timeOff);
}
for (fadeIn = 0;fadeIn < 255; fadeIn++) {
analogWrite(LED,fadeIn);
delay(timeOn);
}
}
这是我被困的地方。我想做类似于以下伪代码的事情。
activeLED = random(2,10); // choose a random LED pin
LEDtoCycle = pinNumber-activeLED; // set the active LED to the random LED pin
cycleLED(pinNumber-activeLED); // run cycleLED on the active LED
我的意图是随机选择一个LED,然后在该LED上运行cycleLED
,无限期重复。通过选择随机但是,我很难绕过一个很好的方法来做这件事。如何将pin变量传递给cycleLED()?或者我应该重复#define
一个随机LED?或者我应该只对cycleLED1()
,cycleLED2()
,cycleLED3()
等8个单独的实例进行硬编码。
提示或建议?
答案 0 :(得分:2)
您可以使cycleLED函数采用如下参数:
void cycleLED(int led)
然后在你的analogWrite调用中使用led变量来代替你现在拥有的神秘LED。