Напевне
ви неодноразово бачили поступове
згасання освітлення (хоча б у кінотеатрі).
Таке явище має ще назву Fade-ефект
. Ми реалізуємо цей ефект за допомогою
Arduino, змінюючи напругу на одному з
виводів. Замість функції delay
(), ми використаємо
функції роботи з часом (таймінгу) .
До виводу 9 Arduino підключіть світлодіод через резистор 220 Ом.
Для плавного керування яскравістю світлодіода ми будемо використовувати функцію analogWrite(). Ця функція забезпечує виведення ШІМ-сигналу на ніжку контролера, причому функцію pinMode () попередньо викликати не треба.
Функція analogWrite (pin, value) містить 2 параметри: pin - номер ніжки для виводу, value - значення від 0 (вимкн.) до 255 (ввімкн.).
До виводу 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