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;
  }       
}

Оригинал статьи на английском языке (перевод Колтыков А.В.)


Добавил:  Павел (Admin)  [email protected] | 

Автор:  Неизвестно  Рейтинг@Mail.ru