int color = -1;
bool buttonWasPressed = false; // флаг, что кнопка уже обработана
void setup() {
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(2, INPUT_PULLUP);
setColor(255, 0, 0); // сразу красный
}
void loop() {
if (digitalRead(2) == LOW) { // кнопка нажата
if (!buttonWasPressed) { // если ещё не обработали это нажатие
buttonWasPressed = true; // запоминаем
color = (color + 1) % 7;
if (color == 0) setColor(255, 0, 0);
if (color == 1) setColor(255, 80, 0);
if (color == 2) setColor(255, 255, 0);
if (color == 3) setColor(0, 255, 0);
if (color == 4) setColor(0, 255, 255);
if (color == 5) setColor(0, 0, 255);
if (color == 6) setColor(255, 0, 255);
delay(50); // маленькая задержка для надёжности
}
} else {
buttonWasPressed = false; // кнопку отпустили — можно обрабатывать следующее нажатие
}
}
void setColor(int r, int g, int b) {
analogWrite(9, r);
analogWrite(10, g);
analogWrite(11, b);
}