// Определяем пины для 6 светодиодов и кнопки
const int ledPins[] = {2, 3, 4, 5, 6, 7};
const int numLeds = 6; // Количество светодиодов изменено на 6
const int buttonPin = 8; // Пин кнопки изменен на 8
int currentMode = 0; // Текущий режим анимации
int lastButtonState = LOW; // Предыдущее состояние кнопки
void setup() {
// Настраиваем 6 пинов светодиодов на выход
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
// Настраиваем пин кнопки на вход
pinMode(buttonPin, INPUT);
}
void loop() {
// Считываем состояние кнопки
int buttonState = digitalRead(buttonPin);
// Проверяем нажатие (переход из LOW в HIGH)
if (buttonState == HIGH && lastButtonState == LOW) {
currentMode = (currentMode + 1) % 2; // Переключаем режим (0 или 1)
delay(50); // Защита от дребезга контактов
}
lastButtonState = buttonState;
// Запуск выбранного режима для 6 светодиодов
if (currentMode == 0) {
runningLight();
} else {
fillUpLight();
}
}
// Режим 0: Бегущий одиночный огонек (для 6 светодиодов)
void runningLight() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
if (digitalRead(buttonPin) == HIGH) return;
}
}
// Режим 1: Постепенное заполнение шкалы (для 6 светодиодов)
void fillUpLight() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
if (digitalRead(buttonPin) == HIGH) return;
}
for (int i = numLeds - 1; i >= 0; i--) {
digitalWrite(ledPins[i], LOW);
delay(100);
if (digitalRead(buttonPin) == HIGH) return;
}
}