如何使这些LED一次变暗?

时间:2019-05-18 22:15:15

标签: arduino arduino-uno fade

所以我正在做一个项目,我需要使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

1 个答案:

答案 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