Избледняване
Източник: arduino.cc
Превел: Т.Б
Избледняване
Демонстрира употреблата на функцията analogWrite() при избледняващ LED светодиод вкл./изкл. Функцията AnalogWrite използва Широчинно-Импулсна Модулация (т.нар. ШИМ), чрез бързото превключване на цифров извод с голяма скорост, за да се създаде ефекта на избледняване.
Изисквания към Апаратната част:
- Arduino платка
- Бредборд – breadboard
- Светодиод, LED
- Резистор 220 ома
Схема
*Кликнете, за увеличите.
Схема
*Кликнете, за да увеличите.
Код
След като декларираме/обявим, че Извод 9-ти ще бъде вашия loadPin, не се налага да правим нищо допълнително в setup() функцията на вашия код.
Функцията analogWrite(), която ще зползвате в main loop – т.нар. основен цикъл от вашия код, изисква два аргумента: Единият, който казва на функцията върху кой точно пин да записва, и един показващ каква стойност PWM да се запише.
За да избледнее Вашият вкл./изкл. светодиод, постепенно увеличете стойността PWM от 0 (нула, в посока надолу) до 255 (в посока нагоре), и след това още веднъж обратно, за да завършите цикъла. В скицата отдолу, стойността PWM е зададена чрез променливата наречена brightness. Всеки път, когато се извърти цикъла, тя с увеличава чрез стойността на променливата fadeAmount.
Ако brightness е в една от двете си крайни граници (0 или 255), тогава fadeAmount се инвертира към неговата отрицателна. С други думи, ако fadeAmount е 5, тогава то се задава/установява в -5. Ако е 55, тогава то се установява на . При следващо преминаване през цикъла, тази промяна принуждава brithness да смени също посоката си.
analogWrite() може да променя стойността PWM изключително бързо, затова закъснението в края на скицата, контролира скоростта на избледняване. Опитайте се да промените стойността на закъснението и наблюдавайте неговото въздействие върху програмата.
This example code is in the public domain.
*/
int brightness = 0; // Колко ярък е Светодиода, LED
int fadeAmount = 5; // Колко точки са нужни, за избледняването -how many points to fade the LED by
void setup() {
//Декларираме Извод 9 като изход:
pinMode(9, OUTPUT);
}
void loop() {
// set the brightness of pin 9:
analogWrite(9, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}