//8 Вариант. Осуществить управление светодиодным рядом из 6-ти светодиодов с помощью 2-х кнопок
//При нажатии на одну кнопку светодиоды последовательно загораются,при нажатии на вторую, светодиоды последовательно гаснут по 2 штуки
//В том случае, когда происходит нажатие на вторую кнопку во время свечения нескольких светодиодов, они должны гаснуть с того же момента на котором остановилось их зжигание
const int buttonPin1 = 13;
const int buttonPin2 = 12;
const int ledPins[] = {27, 26, 4, 14, 15, 2};
int ledState = 0;
bool button2Pressed = false;
void setup() {
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
for (int i = 0; i < 6; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
}
void loop() {
if (digitalRead(buttonPin1) == HIGH) {
digitalWrite(ledPins[ledState], HIGH);
ledState = (ledState + 1) % 6;
delay(200);
}
if (digitalRead(buttonPin2) == HIGH) {
button2Pressed = true;
int startLed = ledState; // Store the current ledState as starting point
while (button2Pressed) {
for (int i = 0; i < 2; i++) {
ledState--;
if (ledState < 0) {
ledState = 5;
}
digitalWrite(ledPins[ledState], LOW);
}
if (ledState == startLed) { // Stop turning off LEDs when we reach the starting point
button2Pressed = false;
}
delay(200);
}
}
}