В видео уроке
:
Урок
5 - Полицейская мигалка своими руками
из светодиодов на Arduino
. Мы
подключили
два светодиода и заставили их поочередно
плавно включатся
и выключаться.
В данном уроке подключение аналогично
предыдущему
уроку. Измениться только программа
управления.
Для
урока нам понадобится:
Подключим
два светодиода к плате
Arduino
UNO
.
У нас получиться вот такая схема.
Принципиальная
схема.
Скетч
для управления полицейским стробоскопом
во такой. Менее 30 строчек кода.
int led_5 = 5; // пин подключения 5
int led_3 = 3; // пин подключения 3
// переменные
boolean status = true; // флаг, что активна левая
boolean open = true; // флаг, включения
int interval[6]={50, 120, 90, 240, 150, 50}; // интервал включения/выключения LED
void setup() {
// два вывода на выход
pinMode(led_5, OUTPUT);
pinMode(led_3, OUTPUT);
}
void loop() {
for (int x=0; x<6; x++) { // цикл 6 проходов
if (open) // если true
digitalWrite(status ? led_3 : led_5, HIGH); // если status == false то падаем на пин 3 иначе на пин 5
else // иначе
digitalWrite(status ? led_3 : led_5, LOW); // если status == false то падаем на пин 3 иначе на пин 5
delay(interval[x]); // Ждем
if (x == 5) // если последний проход по циклу
status = !status; // передаем слово (меняем текущий пин) меняем false на true и наоборот;
open = !open; //меняем false на true и наоборот;
}
}
Переменные:
// переменные
boolean status = true; // флаг, что активна левая
boolean open = true; // флаг, включения
int interval[6]={50, 120, 90, 240, 150, 50}; // интервал включения/выключения LED
Переменная
status — отвечает за работу левого и правого
светодиода. Если статус true (истина).
Программа управляет левым светодиодом.
Иначе false (ложно) — программа управляет
правым светодиодом.
Переменная
open — аналогично переменой статус. Если
true- светодиод светиться, иначе false —
светодиод выключен.
Массив interval- содержит 6 значений. Нечетные
значения это время свечения светодиода.
Четные время сколько светодиод не
светиться между интервалами свечения.
В
основно цикле loop() у нас выполняется
цикл for() 6 раз, равно столько сколько у
нас элементов в массиве interval.
digitalWrite(status ? led_3 : led_5, HIGH); // если status == false то падаем на пин 3 иначе на пин 5
В
данной строчке нас интересует вырождение
в круглых скобках.
status
? led_3 : led_5
Данное
вырождение сокращенная
форма условия. По
другому
данную строку можно написать:
if (status == true)
led_3
else
led_5
delay(interval[x]); // Ждем
Обычная
функция delay(). Просто мы передаем в
качестве аргумента элемент массива,
где x - это номер прохода по циклу
for (int
x=0; x<6; x++) { // цикл 6 проходов
Первый элемент
interval[0], так как у нас цикл начинается с
0 и нумерация элементов массива начинается
с 0. Второй элемент interval[1] и так далее до
interval[5].
if (x == 5) // если последний проход по циклу
status = !status; // передаем слово (меняем текущий пин) меняем false на true и наоборот;
Если мы делаем
проход по циклю меряем статус на
противоположный тем самым передаем
слова другому светодиоду.
open = !open;
//меняем false на true и наоборот;
Переменную
open меняем на противоположное значения
при каждом выполнении цикла. Для смены
свечения светодиода: вкл → выкл →вкл
→ выкл →вкл → выкл. Так как у нас 6
интервалов времени в массиве interval.
После того
как цикл выполнился 6 раз. Передается
слова другому светодиоду и все повторяется
снова.
Следующий урок: Светофор на
Arduino своими руками. Пишем скетч используя
функции
Если у вас чего то нет для выполнения данного урока, Вы можете посмотреть в каталоге. Там собранные комплектующими от проверенных продавцов по самым низким ценам.
Понравилась статья? Поделитесь ею с друзьями:
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.