Fade. Плавное разгорание и затухание светодиода. (analogWrite, PWM/ШИМ)

Пример плавного “розжига” и затухания светодиода, используя ШИМ (широтно-импульсную модуляцию) или по-английски PWM (pulse-width modulation). Данный пример использует функцию AnalogWrite.
Понадобятся: плата Arduino Uno или другая, светодиод, резистор 220ohm.

Подключение: анод светодиода (длинная ножка, положительная) подключается к 9 выходу через резистор 220 ohm. Катод (короткая, отрицательная ножка) – к земле GND.


Код

int led = 9;         // номер аналогового выхода к которому подключен светодиод
int brightness = 0;  // яркость, начинаем с 0
int fadeAmount = 5;  // скорость прирастания/убываения яркости. Значение может быть отрицательным


void setup() {
  pinMode(led, OUTPUT); //объявляем пин 9 как выходной
}

//главный цикл
void loop() {
  // устанавливаем текущие значение выходу со светодиодом
  analogWrite(led, brightness);

  // меняем приращиваем или убавляем яркость 
  brightness = brightness + fadeAmount;

  // при достижение границы значений меняем знак, 
  //чтобы сменить прищанение яркости убыванием
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // ждем 30 миллисекунд
  delay(30);
}

См. также простой BLINK

Пример без delay в разработке, ждём…

1 лайк