// === ПРОСТОЕ УПРАВЛЕНИЕ ЯРКОСТЬЮ СВЕТОДИОДА ===
// Пины подключения
int ledPin = 9; // Светодиод (обязательно с ~)
int buttonPin = 2; // Кнопка
// Переменные для яркости
int brightness = 0; // Текущая яркость (0-255)
int step = 50; // Шаг изменения
void setup() {
// Настраиваем пины
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Подтяжка внутри Arduino
// Включаем светодиод с начальной яркостью
analogWrite(ledPin, brightness);
// Для отладки в мониторе порта
Serial.begin(9600);
Serial.println("Нажмите кнопку для изменения яркости");
}
void loop() {
// Проверяем, нажата ли кнопка
// LOW - нажата (из-за INPUT_PULLUP)
if (digitalRead(buttonPin) == LOW) {
// Ждем немного, чтобы кнопка "успокоилась" (антидребезг)
delay(200);
// Увеличиваем яркость на шаг
brightness = brightness + step;
// Проверяем, не превысили ли максимум (255)
if (brightness > 255) {
brightness = 0; // Сбрасываем в начальное состояние (0)
Serial.println("--- МАКСИМУМ! СБРОС В 0 ---");
}
// Применяем новую яркость к светодиоду
analogWrite(ledPin, brightness);
// Выводим текущую яркость в монитор порта
Serial.print("Яркость: ");
Serial.print(brightness);
Serial.print(" (");
Serial.print(brightness * 100 / 255);
Serial.println("%)");
// Ждем, пока кнопку отпустят
// (чтобы одно нажатие не засчиталось много раз)
while (digitalRead(buttonPin) == LOW) {
delay(10); // Маленькая задержка
}
}
}