В данном уроке мы рассмотрим пример реализации Fade-эффекта (плавное затухание) с помощью Arduino UNO. Вместо функции delay(), мы будем использовать функции тайминга как в уроке 3.
К ножке 9 Arduino UNO подсоедините светодиод через резистор 220 Ом.
Для плавного управления яркостью светодиода мы будем использовать функцию analogWrite(). Данная функция обеспечивает вывод ШИМ-сигнала на ножку контроллера. Причем функцию pinMode() предварительно вызывать не надо. Функция analogWrite(pin,value) содержит 2 параметра: pin — номер ножки для вывода, value — значение от 0 (выкл) до 255(вкл).
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
/* 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; } } |