Напевне ви неодноразово бачили поступове згасання освітлення (хоча б у кінотеатрі). Таке явище має ще назву Fade-ефект . Ми реалізуємо цей ефект за допомогою Arduino, змінюючи напругу на одному з виводів. Замість функції delay (), ми використаємо функції роботи з часом (таймінгу) .

До виводу 9 Arduino підключіть світлодіод через резистор 220 Ом.

Для плавного керування яскравістю світлодіода ми будемо використовувати функцію
analogWrite(). Ця функція забезпечує виведення ШІМ-сигналу на ніжку контролера, причому функцію pinMode () попередньо викликати не треба.
Функція
analogWrite (pin, value) містить 2 параметри: pin - номер ніжки для виводу, value - значення від 0 (вимкн.) до 255 (ввімкн.).
/* Fade-ефект */
int brightness = 0;    // яскравість LED
int fadeAmount = 5;    // крок зміни яскравості LED
unsigned long currentTime;
unsigned long loopTime;

void setup()  { 
 // налаштовуємо вивід 9 для виведення:
 pinMode(9, OUTPUT);
 currentTime = millis();
 loopTime = currentTime; 
} 

void loop()  { 
 currentTime = millis();
 if(currentTime >= (loopTime + 20)){  
 // встановлюємо яскравість на виводі:
 analogWrite(9, brightness);    

 // змінюємо яскравість для наступного циклу:
 brightness = brightness + fadeAmount;

 // повертаємо назад, якщо досягли максимуму або мінімуму: 
 if (brightness == 0 || brightness == 255) {
  fadeAmount = -fadeAmount ; 
  } 
  loopTime = currentTime;
 }
}
Джерело: http://www.hobbytronics.co.uk 

- Copyright © Основи мікроелектроніки в школі