Как сделать так, чтобы эти светодиоды исчезали и исчезали одновременно? - PullRequest
0 голосов
/ 19 мая 2019

, поэтому я работаю над проектом, в котором мне нужно сделать так, чтобы светодиоды постепенно появлялись и исчезали, а затем заставляли их одновременно появляться и исчезать.Тогда все светодиоды должны быть выключены, прежде чем будет определен следующий шаблон.Я уже заставил их появляться и исчезать по отдельности, но не могу понять, как заставить все 6 светодиодов делать это одновременно.

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 голосов
/ 19 мая 2019

Вам просто нужно немного переключить циклы.

Подумайте над тем, чтобы разбить циклы 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
...