我有一个项目需要八个不同的灯在随机时间打开和关闭之间循环,随机淡入、随机淡出和随机开/关持续时间。我的策略是淡入淡出,随机开启一段时间,淡出,随机关闭一段时间,重复。虽然现在我在每个 for 循环之前都选择了一个随机引脚,但我想使用一个 for 循环随机选择一个引脚来运行整个开/关循环。
这是我的伪代码。或者也许这是我的代码。
void setup() {
int pin = 0;
int fadeIn = 0;
int fadeOut = 0;
int onDuration = 0;
int offDuration = 0;
}
void loop() {
pin = random(2,8)
onDuration = random(2000,15000)
for (fadeIn=0;fadeIn<255;i++) {
analogWrite(pin,fadeIn)
}
delay(onDuration)
pin = random(2,8)
offDuration = random(1000,7000)
for (fadeOut=254;fadeOut>0;fadeOut--) {
analogWrite(pin,fadeOut)
}
delay(offDuration)
}
循环(打开,然后关闭)将是循环的一个实例。如果我想在第一个循环运行时在另一个引脚上启动循环的第二个实例,那我可以通过编程方式完成吗?或者我需要八个控制器,每个控制器同时淡入和淡出灯光?