Управление яркостью светодиода
В этой работе нужно было составить программу включения/выключения светодиодов согласно заданию. Римской цифрой обозначена степень яркости свечения светодиода: I - 30% яркости, II – 60% яркости, III – 100% яркости, пустая ячейка – светодиод выключен.
Таблица 1 – Значения яркости светодиода
Время, мс. |
Желтый |
Красный |
Синий |
Pin 11 |
Pin 10 |
Pin 9 |
|
3000 |
|
|
|
500 |
вкл |
|
|
500 |
вкл |
вкл |
|
500 |
вкл |
вкл |
вкл |
2000 |
|
|
|
500 |
|
|
вкл |
500 |
|
вкл |
|
500 |
вкл |
|
|
500 |
|
|
вкл |
500 |
|
вкл |
|
500 |
вкл |
|
|
2000 |
|
|
|
500 |
вкл I |
|
|
500 |
вкл I |
вкл I |
|
500 |
вкл I |
вкл I |
вкл I |
500 |
вкл I I |
вкл I |
вкл I |
500 |
вкл I I |
вкл I I |
вкл I |
500 |
вкл I I |
вкл I I |
вкл I I |
500 |
вкл I I I |
вкл I I |
вкл I I |
500 |
вкл I I I |
вкл I I I |
вкл I I |
500 |
вкл I I I |
вкл I I I |
вкл I I I |
2000 |
вкл I I I |
вкл I I I |
вкл I I I |
Для этого была собрана схема (Рисунок 2), в которой были подключены 3 светодиода, заданы номера портов и цвета соответствующих светодиодов.
Рисунок 2 – Схема подключения трех светодиодов
int Yellow=11;
int Red=10;
int Blue=9;
void setup ()
{ pinMode(Yellow, OUTPUT);
pinMode(Red, OUTPUT);
pinMode(Blue, OUTPUT);
}
void loop ()
{
delay(3000);
//пауза 3 секунды
analogWrite(Yellow,255);
//включение на всю яркость (100%) желтого светодиода
delay(500);
analogWrite(Red,255);
// включение на всю яркость (100%) красного светодиода
delay(500);
analogWrite(Blue,255);
включение на всю яркость (100%) синего светодиода
delay(500);
analogWrite(Yellow,0);
analogWrite(Red,0);
analogWrite(Blue,0);
//выключение всех светодиодов
delay(2000);
analogWrite(Blue,255);
delay(500);
analogWrite(Blue,0);
analogWrite(Red,255);
delay(500);
analogWrite(Red,0);
analogWrite(Yellow,255);
delay(500);
analogWrite(Yellow,0);
analogWrite(Blue,255);
delay(500);
analogWrite(Blue,0);
analogWrite(Red,255);
delay(500);
analogWrite(Red,0);
analogWrite(Yellow,255);
delay(500);
analogWrite(Yellow,0);
delay(2000);
analogWrite(Yellow,75);
delay(500);
analogWrite(Red,75);
delay(500);
analogWrite(Blue,75);
delay(500);
analogWrite(Yellow,150);
delay(500);
analogWrite(Red,75);
delay(500);
analogWrite(Blue,75);
delay(500);
analogWrite(Red,150);
delay(500);
analogWrite(Blue,75);
delay(500);
analogWrite(Blue,150);
delay(500);
analogWrite(Yellow,255);
delay(500);
analogWrite(Red,255);
delay(500);
analogWrite(Blue,255);
delay(500);
analogWrite(Yellow,255);
delay(2000);
analogWrite(Red,255);
delay(2000);
analogWrite(Blue,255);
delay(2000);
analogWrite(Yellow,0);
analogWrite(Red,0);
analogWrite(Blue,0);
}
В данной работе необходимо было составить программу включения/выключения светодиодов.
Таблица 2 – Значения яркости светодиода
Время, мс. |
Желтый |
Красный |
Синий |
Pin 6 |
Pin 7 |
Pin 8 |
|
3000 |
|
|
|
500 |
вкл |
|
|
500 |
|
вкл |
вкл |
1500 |
|
|
|
500 |
вкл |
вкл |
|
500 |
вкл |
|
вкл |
500 |
|
вкл II |
|
500 |
вкл II |
вкл II |
|
500 |
|
|
вкл II |
500 |
вкл I |
|
вкл I |
500 |
|
вкл I |
|
1500 |
|
|
|
500 |
|
вкл I |
вкл I |
Продолжение таблицы 2 – Значения яркости светодиода
500 |
вкл I |
|
вкл I |
500 |
вкл III |
вкл III |
вкл III |
500 |
вкл III |
вкл III |
|
500 |
вкл III |
|
|
500 |
|
|
вкл III |
500 |
|
вкл III |
вкл III |
500 |
вкл III |
вкл III |
вкл III |
int Yellow=6;
int Red=7;
int Blue=8;
void setup ()
{ pinMode(Yellow, OUTPUT);
pinMode(Red, OUTPUT);
pinMode(Blue, OUTPUT);
}
void loop ()
{
delay(3000);
analogWrite(Yellow,255);
delay(500);
analogWrite(Red,255);
delay(500);
analogWrite(Blue,255);
delay(500);
analogWrite(Yellow,0);
analogWrite(Red,0);
analogWrite(Blue,0);
delay(1500);
analogWrite(Yellow,255);
delay(500);
analogWrite(Red,255);
delay(500);
analogWrite(Red,0);
analogWrite(Blue,255);
delay(500);
analogWrite(Yellow,0);
analogWrite(Red,150);
delay(500);
analogWrite(Blue,0);
analogWrite(Yellow,150);
delay(500);
analogWrite(Red,150);
delay(500);
analogWrite(Blue,150);
delay(500);
analogWrite(Blue,0);
analogWrite(Yellow,75);
delay(500);
analogWrite(Red,0);
analogWrite(Blue,75);
delay(500);
analogWrite(Red,75);
delay(500);
analogWrite(Yellow,0);
analogWrite(Red,0);
analogWrite(Blue,0);
delay(1500);
analogWrite(Red,75);
delay(500);
analogWrite(Blue,75);
delay(500);
analogWrite(Red,0);
analogWrite(Yellow,75);
delay(500);
analogWrite(Yellow,255);
delay(500);
analogWrite(Red,255);
delay(500);
analogWrite(Blue,255);
delay(500);
analogWrite(Blue,0);
analogWrite(Red,0);
analogWrite(Yellow,0);
analogWrite(Blue,255);
delay(500);
analogWrite(Red,255);
delay(500);
analogWrite(Yellow,255);
delay(500);
analogWrite(Yellow,0);
analogWrite(Red,0);
analogWrite(Blue,0);
}
После подключения Arduino к компьютеру, была загружена программа в контроллер и получено мигание светодиодов. При помощи команды analogWrite была задана интенсивность яркости светодиода. analogWrite(Led,255) задает самую большую яркость светодиода (100%), analogWrite(Led,150) задает более тусклое свечение (60%), а analogWrite(Led,75) задает тусклое свечение светодиода. Таким образом, при помощи этой команды можно запрограммировать светодиод мигать не только с различной скоростью, но и с разной яркостью, а так же отключать их при помощи analogWrite(Led,0).
