所以我正在做一个项目,我需要使LED一次一个地淡入和淡出,然后同时使它们一起淡入和淡出。然后,在确定下一个样式之前,所有LED均应熄灭。我已经使它们分别淡入和淡出,但是似乎无法弄清楚如何使所有6个LED一次完成。
void setup(){
//initialize the led pins 4-11
for (int thisPin=8; thisPin<14; thisPin++){
pinMode(thisPin, OUTPUT);
}//end for
}//end setup
void loop(){
//Fade leds up
for (int thisPin=8; thisPin<14; thisPin++){
for (int fadeValue = 0; fadeValue < 256; fadeValue++){
analogWrite(thisPin,fadeValue);
delay(2);
}//end for
//Fade leds down
for (int fadeValue = 255; fadeValue >=0; fadeValue--){
analogWrite(thisPin,fadeValue);
delay(2);
}//end for
delay(1000);
}//end for
}//end loop
答案 0 :(得分:0)
您只需要稍微切换一下循环即可。
考虑将for
循环分解成它们自己的功能,您的主循环将变得更易于阅读和维护。
void loop(){
//Fade leds up
for (int thisPin=8; thisPin<14; thisPin++){
for (int fadeValue = 0; fadeValue < 256; fadeValue++){
analogWrite(thisPin,fadeValue);
delay(2);
}//end for
//Fade leds down
for (int fadeValue = 255; fadeValue >=0; fadeValue--){
analogWrite(thisPin,fadeValue);
delay(2);
}//end for
delay(1000);
}//end for
// Fade in all LEDs
for (int fadeValue = 0; fadeValue < 256; fadeValue++) {
for (int thisPin = 8; thisPin < 14; thisPin++) {
analogWrite(thisPin, fadeValue);
}
delay(2);
}
// Fade out all LEDs
for (int fadeValue = 255; fadeValue >= 0; fadeValue--) {
for (int thisPin = 8; thisPin < 14; thisPin++) {
analogWrite(thisPin, fadeValue);
}
delay(2);
}
delay(1000);
}//end loop