Проход по ссылкам навигацииГлавная : Статьи :

Arduino UNO урок 5 (Fade-эффект)

Arduino UNO урок 5 (Fade-эффект)



В этом уроке мы рассмотрим пример реализации 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;
  }      
}