Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
namefix-94.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
777.78 Кб
Скачать
    1. Управление яркостью светодиода

  1. В этой работе нужно было составить программу включения/выключения светодиодов согласно заданию. Римской цифрой обозначена степень яркости свечения светодиода: 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);

}

  1. В данной работе необходимо было составить программу включения/выключения светодиодов.

Таблица 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).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]