- •Введение
- •1.2. Начало работы с Arduino
- •2.Практические задания Практическое задание №1
- •Практическая работа №2
- •Практическая работа №3
- •Практическая работа №4
- •Видеоуроки по Arduino от Джереми Блум. [Электронный ресурс].-Режим доступа: http://amperka.Ru/ ( дата обращения: 23.04.15)
- •Все об Arduino Uno. [Электронный ресурс].- Режим доступа: http://arduino.Ua/ru/hardware/Uno ( дата обращения: 28.04.15 )
Практическая работа №3
«Управление яркостью светодиодов»
1) В этой работе нужно было составить программу включения/выключения светодиодов согласно заданию. Римской цифрой обозначена степень яркости свечения светодиода: I - 30% яркости, II – 60% яркости, III – 100% яркости, пустая ячейка – светодиод выключен.
-
Время, мс.
Желтый
Красный
Синий
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
Для этого была собрана схема (Рисунок 1), в которой были подключены 3 светодиода, заданы номера портов и цвета соответствующих светодиодов.
Рисунок 1
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);
}
В этой работе нужно было составить программу включения/выключения светодиодов.
-
Время, мс.
Желтый
Красный
Синий
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
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).
