const unsigned int LEDANZAHL = 6;
const unsigned int STATES = LEDANZAHL;
// Periodendauer des Blinker
// 1,5 Hz ± 0,5 Hz
const unsigned int MILLISECONDS = 1500;
// Zeit für alle LEDs aus (1/3 der Periodendauer)
const unsigned int TBLACK = MILLISECONDS / 3;
// Takt für LED-Zustandsänderungen
const unsigned int TIME = (MILLISECONDS*2/3)/(2*LEDANZAHL);
// 0 1 2 3 4 5 Index
const uint8_t led_pin[LEDANZAHL] = {5,7,8,10,11,12}; // Vektor, Array
byte bitSetLSb(uint8_t i) {
return i>0 ? 0 : 1<<(i-1);
}
const byte led_row[STATES] = {
0b000001,
0b000011,
0b000111,
0b001111,
0b011111,
0b111111,
// 0b011111,
// 0b001111,
// 0b000111,
// 0b000011,
// 0b000001,
};
void setup() {
// put your setup code here, to run once:
for( int k = 0; k<LEDANZAHL; k++ ) {
pinMode(led_pin[k], OUTPUT);
}
}
void showLedRow( byte row ) {
for( int k = 0; k<LEDANZAHL; k++ ) {
digitalWrite(led_pin[k], bitRead(row,k));
}
}
void loop() {
for( int i = 0; i<STATES; i++ ) {
showLedRow(led_row[i]);
delay(TIME);
}
showLedRow(0);
delay(TBLACK);
}