Плавное включение светодиода на Ардуино. analogWrite

Плавное включение светодиода на Ардуино. analogWrite()

Сегодня рассмотрим использование аналогового выхода Ардуино для плавного включения светодиода.

В этом примере демонстрируется использование функции analogWrite() для создания эффекта плавного включения и выключения светодиода.
analogWrite() использует модуляцию ширины импульсов (PWM), переключая цифровой пин для включения и выключения очень быстро с разным соотношением между включением и выключением для создания эффекта плавного зажигания или затухания светодиода.

Нам понадобится:

  • Плата Arduino.
  • Светодиод (LED).
  • Резистор 220 Ом.
  • Провода для подключения.
  • Макетная плата.


Подключение:

Подсоедините анод (длинную ножку, положительную) светодиода к цифровому выходу пина 9 на плате Arduino через резистор 220 Ом.
Подсоедините катод (короткую ножку, отрицательную) светодиода непосредственно к "земле".

// Пин для управления светодиодом
int ledPin = 9;

// Начальная яркость светодиода
int brightness = 0;
// Величина изменения яркости при каждой итерации
int fadeAmount = 5;

void setup() {
  // Настраиваем пин на выход
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Устанавливаем яркость светодиода
  analogWrite(ledPin, brightness);

  // Увеличиваем яркость
  brightness = brightness + fadeAmount;

  // Изменяем направление, если достигли края диапазона (0 или 255)
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }

  // Задержка для контроля скорости мерцания
  delay(30);
}


Для создания эффекта плавного мерцания мы постепенно изменяем яркость светодиода от 0 (полностью выключен) до 255 (полностью включен) и обратно до 0, завершая цикл.
Значение fadeAmount увеличивает или уменьшает яркость на каждой итерации.
Если яркость находится на одном из крайних значений (0 или 255), fadeAmount меняется на противоположное, что приводит к изменению направления изменения яркости.

После каждой итерации вызывается analogWrite(), чтобы установить яркость светодиода.
Вы можете изменить значение задержки (delay) для контроля скорости мерцания и увидеть, как это влияет на эффект.

5 примеров использования

Ночник. Вы можете использовать этот эффект для создания ночника с плавно изменяющейся яркостью. Подключите светодиод к Arduino и поместите его в корпус, который рассеивает свет, чтобы создать уютное освещение.

Атмосферное освещение. Примените эффект в интерьерном дизайне, создавая атмосферное освещение в комнате, рассеивая свет светодиода с помощью специальных материалов или диффузоров.

Индикатор активности. Используйте плавное мерцание светодиода как индикатор активности в ваших проектах.
Например, в проектах интернета вещей (IoT) это может указывать на активность устройства, чем ярче горит, тем больше используется устройство.

Подсветка. Можно создать подсветку для декоративных элементов, таких как стеклянные банки, стойки или картины, добавляя светодиоды с плавной сменой яркости.

Симуляция рассвета и заката. Ваши проекты могут включать симуляцию рассвета и заката, используя плавное мерцание светодиода.
Это может быть полезно для создания амбиентной атмосферы или в системах автоматизации дома.

Эти примеры показывают, как плавное мерцание светодиода может быть использовано для создания разнообразных эффектов и придания проектам уникального внешнего вида.


Дополнительные материалы по теме.
Пишем свой первый скетч - Урок № 1
Примеры.
Мигание 1 светодиодом
Мигание 3 светодиодами
Мигание светодиодом без delay
Светофор из 3-х светодиодов
Светодиодный модуль RGB. Случайное смешение цветов
Светодиодный модуль RGB. Поочерёдное включение цветов
Светодиодный модуль "Светофор". Имитация работы светофора
Плавное включение светодиодов.
Случайное значение яркости светодиодов.
Передаём сигнал SOS.
Бегущая волна из 5 светодиодов.

Подключение фоторезистора к плате Ардуино - Урок № 2
Мигающий светодиод. Пример Ардуино Blink.
Плавное включение светодиода на Ардуино. analogWrite

Вместо Ардуино используется ESP
Как управлять RGB светодиодом с телефона
esp8266 подключение и управление светодиодом. Примеры esp8266