В этом уроке мы рассмотрим пример реализации
Fade-эффекта (плавное затухание) с помощью Arduino UNO. Вместо функции
delay(), мы будем использовать функции
тайминга как в уроке 3.
К ножке 9 Arduino UNO подсоедините светодиод через резистор 220 Ом.
Для плавного управления яркостью светодиода мы будем использовать функцию
analogWrite(). Данная функция обеспечивает вывод ШИМ-сигнала на ножку контроллера. Причем функцию
pinMode() предварительно вызывать не надо.
Функция
analogWrite(pin,value) содержит 2 параметра:
pin - номер ножки для вывода,
value - значение от 0 (выкл) до 255(вкл).
/*
Fade-эффект
Пример, показывающий возможности функции 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;
}
}
Источник:
http://www.hobbytronics.co.uk/