Скетч
#define FIRST_LED_PIN 2
#define LAST_LED_PIN 11
#define BUTTON_PIN 13
boolean buttonUp = true;
int pos = 0;
void setup()
{
for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin)
pinMode(pin, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin)
digitalWrite(pin, LOW);
digitalWrite(FIRST_LED_PIN + pos, HIGH);
buttonUp = handleClick(BUTTON_PIN, buttonUp, pos);
}
boolean handleClick(int buttonPin, boolean wasUp, int & pos)
{
boolean isUp = digitalRead(buttonPin);
if (wasUp && !isUp) {
delay(10);
isUp = digitalRead(buttonPin);
// если был клик, меняем яркость в пределах от 0 до 255
if (!isUp)
pos = (pos + 1) % 10;
}
return isUp; // возвращаем значение обратно, в вызывающий код
}