Рассмотрим как создать схему плавного затухания светодиода используя этот контроллер. Для этого мы вернемся к схеме тайминга и ее функции delay()
Для этого подключим к пину 9 светодиод через резистор 220 Ом.
Для плавного регулирования яркостью используем функцию analogWrite(). Эта функция выводит ШИМ-сигнал на ножку контроллера. Функцию pinMode() предварительно можно не вызывать. Функция analogWrite(pin, value) соответственно содержит два параметра - pin - номер ножки для вывода и value - значение от 0 ( выключенное состояние светодиода ) до 255 ( вкл.)
/* Плавное включение светодиодов Пример, показывающий возможности функции analogWrite() для реализации Fade-эффекта светодиода, который подключен к ноге 9 контроллера */ int brightness = 0; // яркость светодиода int fadeAmount = 5; // шаг изменения яркости unsigned long currentTime; unsigned long loopTime; void setup() { pinMode(9, OUTPUT); // устанавливаем 9 ногу как выход currentTime = millis(); loopTime = currentTime; } void loop() { currentTime = millis(); if(currentTime >= (loopTime + 20)){ analogWrite(9, brightness); // устанавливаем значение на 9 ножке brightness = brightness + fadeAmount; // прибавляем шаг изменения яркости, которая установится в следующем цикле // если достигли мин. или макс. значения, то идем в обратную сторону (реверс): if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } loopTime = currentTime; } } |