Logo

Cлучайные товары

Джойстик модуль KY-023
Модуль питания 220v to 5V 700mA

Посмотреть товар в Магазине »

Мы в соц сетях


Подпишись на канал
Мы на facebook

Урок 6 - Полицейский стробоскоп своими руками на Arduino

.Урок 6  -  Полицейский стробоскоп своими руками на Arduino

В видео уроке : Урок 5 - Полицейская мигалка своими руками из светодиодов на Arduino . Мы подключили два светодиода и заставили их поочередно плавно включатся и выключаться. В данном уроке подключение аналогично предыдущему уроку. Измениться только программа управления.

Для урока нам понадобится:

Подключим два светодиода к плате Arduino UNO . У нас получиться вот такая схема.

полицейский стробоскоп на Arduino

Принципиальная схема.

Схема принципиальная полицейский стробоскоп на Arduino

Скетч для управления полицейским стробоскопом во такой. Менее 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 своими руками. Пишем скетч используя функции

Если у вас чего то нет для выполнения данного урока, Вы можете посмотреть в каталоге. Там собранные комплектующими от проверенных продавцов по самым низким ценам.

Вернуться в раздел: Уроки Arduino: Светодиоды, Резисторы, Arduino Дата публикации 28 марта , 2017

Яндекс.Метрика

Portal-PK (Портал ПК) © 2015 - 2017 MiniYiiCMS Заказать сайт: f-studio.biz
Обратная связь
Вопрос-Ответ