所以我正在做一个项目,我需要让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
发布于 2019-05-19 10:08:10
您只需稍微切换一下循环即可。
考虑将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
https://stackoverflow.com/questions/56203244
复制相似问题