byte LEDS[][2] = {{PB0, PB1},{PB1, PB0},{PB0, PB2},{PB2, PB0},{PB2, PB1},{PB4, PB0},{PB4, PB1},{PB4, PB2},{PB1, PB2},};void lightCandle(int index) {pinMode(PB0, INPUT);pinMode(PB1, INPUT);pinMode(PB2, INPUT);
pinMode(PB4, INPUT);pinMode(LEDS[index][0], OUTPUT);pinMode(LEDS[index][1], OUTPUT);digitalWrite(LEDS[index][0], LOW);digitalWrite(LEDS[index][1], HIGH);}void setup() {pinMode(PB3, INPUT_PULLUP);}int candle = 0;void loop() {if (digitalRead(PB3) == LOW) {candle = (candle + 1) % 8;delay(200);}lightCandle(8);for (int i = 0; i <= candle; i++) {lightCandle(i);}}