#define SPEED_MS 400
unsigned char led_pattern[] = {
0x01, 0x02, 0x04, 0x08, 0x04, 0x02, 0x01, 0x00, 0x010,
0x06, 0x09, 0x06, 0x09, 0x06, 0x09, 0x06, 0x09, 0x010,
0x05, 0x0a, 0x05, 0x0a, 0x05, 0x0a, 0x05, 0x0a, 0x010, 0x010
};
void setup() {
for (int i = 2; i <= 6; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
DisplayPattern(led_pattern, sizeof(led_pattern));
delay(SPEED_MS);
}
void DisplayPattern(unsigned char *pattern, int num_patterns)
{
static int pattern_num = 0;
unsigned char mask = 1;
for (int i = 2; i <= 6; i++) {
if (pattern[pattern_num] & mask) {
digitalWrite(i, HIGH);
}
else {
digitalWrite(i, LOW);
}
mask <<= 1;
}
pattern_num++;
if (pattern_num >= num_patterns) {
pattern_num = 0;
}
}