Урок 3: Плавное управление яркостью светодиода (PWM)
1. Что такое PWM?
На Arduino UNO аппаратный PWM доступен на выводах 3 ~, 5 ~, 6 ~, 9 ~, 10 ~, 11 ~ (значок «~» на шелкографии).
2. Что понадобится
Кол-во |
Компонент |
---|---|
1 |
Плата Arduino UNO |
1 |
Светодиод 5 мм (красный) |
1 |
Резистор 220 Ω |
1 |
Макетная плата |
6 |
Перемычки «папа–папа» |
1 |
USB-кабель A-B |
3. Схема подключения

Анод LED → резистор 220 Ω → D9
Катод LED → GND
4. Скетч
//PWM
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// плавное увеличение яркости
for (int value = 0; value < 255; value++) {
analogWrite(ledPin, value);
delay(5);
}
// плавное уменьшение яркости
for (int value = 255; value > 0; value--) {
analogWrite(ledPin, value);
delay(5);
}
}
Как работает код
analogWrite(ledPin, value)
задаёт скважность: 0 (0 %) … 255 (100 %).Первый цикл плавно увеличивает яркость, второй — снижает.
Задержка 5 мс между шагами даёт ~2,5 с на полный «вдох–выдох».
5. Пошагово
Соберите схему.
В Arduino IDE выберите плату Arduino UNO и COM-порт.
Откройте скетч, нажмите Upload.
Светодиод начнёт плавно «дышать».
6. Если не работает
Симптом |
Причина |
Что проверить |
---|---|---|
LED не горит |
Перепутаны анод/катод |
Подключения |
Яркость не меняется |
Использован не PWM-вывод |
D3/5/6/9/10/11 |
Сильно мерцает |
Слишком малая задержка |
Увеличить |
7. Эксперименты
Измените задержку, чтобы ускорить или замедлить «дыхание».
Подключите второй LED к D6 и управляйте им в противофазе (255 - value).
Подключите потенциометр к A0: читайте
analogRead(A0)
и передавайте результат вanalogWrite()
— получите ручной диммер.