Избледняване

Източник:  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 изключително бързо, затова закъснението в края на скицата, контролира скоростта на избледняване. Опитайте се да промените стойността на закъснението и наблюдавайте неговото въздействие върху програмата.

 

/*
Този пример, Ви показва как да накарате светодиод да избледнее
използвайки функцията analogWrite()

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