#define SCAN_DELAY 1
uint8_t LEDS[] = { 2, 3, 4, 5, 6, 7 };
const uint8_t LED_COUNT = sizeof(LEDS) / sizeof(LEDS[0]);
uint32_t pattern[] = {
0b10001,
0b10001,
0b11111,
0b10001,
0b10001
};
const uint32_t pattern_count = 5;
void setup() {
for (int i = 0; i < LED_COUNT; i++) {
pinMode(LEDS[i], OUTPUT);
digitalWrite(LEDS[i], LOW);
}
}
void loop() {
for (int scroll = 0; scroll < pattern_count; scroll++) {
for (int i = 0; i < LED_COUNT; i++) {
pinMode(LEDS[i], OUTPUT);
digitalWrite(LEDS[i], LOW); // Garantir que todos os LEDs estejam LOW antes de configurar
uint32_t shiftedPattern = pattern[i] >> scroll;
for (int j = 0; j < LED_COUNT; j++) {
if (shiftedPattern & (1 << (LED_COUNT - 1 - j))) {
digitalWrite(LEDS[j], HIGH);
pinMode(LEDS[j], OUTPUT);
}
}
delay(SCAN_DELAY);
for (int j = 0; j < LED_COUNT; j++) {
digitalWrite(LEDS[i], LOW);
pinMode(LEDS[j], INPUT);
}
}
delay(SCAN_DELAY*100);
}
}