Привет! Я использую Arduino, чтобы колонка из 4 светодиодов проходила слева направо, а затем обратно на светодиодной панели 4х16. В настоящее время я использую два для l oop операторов, чтобы это произошло, но мне интересно, есть ли способ объединить два цикла или что-то так, чтобы слева направо вошли все в один оператор. Спасибо.
int row1 = 0;
int row2 = 0;
int row3 = 0;
int row4 = 0;
int row1r = 0;
int row2r = 0;
int row3r = 0;
int row4r = 0;
void setup() {
FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
Serial.begin(9600);
while (! Serial);
}
void loop() {
// Left to Right
for (row1 = 0, row2 = 31, row3 = 32, row4 = 63; row1 <= 15 && row2 >= 16 && row3 <= 47 && row4 >= 48; row1++, row2--, row3++, row4--) {
leds[row1] = CRGB::Blue;
leds[row2] = CRGB::Blue;
leds[row3] = CRGB::Blue;
leds[row4] = CRGB::Blue;
FastLED.show();
delay(30);
leds[row1] = CRGB::Black;
leds[row2] = CRGB::Black;
leds[row3] = CRGB::Black;
leds[row4] = CRGB::Black;
}
// Right to Left
for (row1r = 15, row2r = 16, row3r = 47, row4r = 48; row1r >= 0 && row2r <= 31 && row3r >= 32 && row4r <= 63; row1r--, row2r++, row3r--, row4r++) {
leds[row1r] = CRGB::Blue;
leds[row2r] = CRGB::Blue;
leds[row3r] = CRGB::Blue;
leds[row4r] = CRGB::Blue;
FastLED.show();
delay(30);
leds[row1r] = CRGB::Black;
leds[row2r] = CRGB::Black;
leds[row3r] = CRGB::Black;
leds[row4r] = CRGB::Black;
}
}