Мигання світлодіодом

Вступ

Світлодіоди (світлові діоди або LED з англійської - Light Emitting Diode) – це пристрої, які випромінюють світло, коли на них подається електричний струм. Вони відрізняються від традиційних лампочок розжарювання тим, що не потребують горіння та випромінюють світло завдяки явищу електролюмінесценції у напівпровідниковому матеріалі

До основних переваг світлодіодів відносять ефективність у використанні електроенергії, довгий термін служби, широкий спектр кольорів та компактний розмір. Вони широко використовуються в освітленні, електроніці, телекомунікаціях, електроніці автомобілів та інших галузях. Навіть кімната, в якій Ви зараз знаходитесь точно має якийсь пристрій зі світлодіодом, наприклад світлодіодна лампочка

 

Цікаві факти про світлодіоди

Історія світлодіодів налічує понад половину століття. Перші світлодіоди, які були винайдені в 1962 році, випромінювали тільки червоне світло. З тих пір технологія розвинулася і тепер світлодіоди можуть випромінювати широкий спектр кольорів, включаючи білий. З розвитком технології та матеріалознавства, світлодіоди стали більш яскравими, ефективними та різноманітними за кольорами. У другій половині 20-го століття та на початку 21-го світлодіоди отримали широке застосування у великій кількості галузей, таких як освітлення, електроніка, телекомунікації та інші завдяки своїм перевагам

Світлодіоди вирізняються високою ефективністю, оскільки вони перетворюють спожиту електроенергію більше на світло, ніж на тепло, як це буває у випадку традиційних лампочок розжарювання. Це робить LED ефективними в плані споживання енергії, оскільки менше електроенергії втрачається на теплові втрати. Крім того, здатність світлодіодів до миттєвого увімкнення та вимкнення без втрати якості чи терміну служби також допомагає зменшити енергоспоживання та підвищити загальну ефективність освітлення

Світлодіоди (LED) широко використовуються в дронах для різноманітних цілей. Їх можна вбудовувати в корпус для підсвічування, щоб забезпечити видимість у темний час доби. Також LED використовують для індикації різних станів дрона, таких як рівень заряду акумулятора, GPS-сигнал, або сигнали в разі неполадок. Це дозволяє пілотам миттєво отримувати інформацію про стан дрона під час польоту, що є важливим для безпеки та ефективного використання

Світлодіоди використовуються в телевізорах і смартфонах для створення яскравих та високоякісних дисплеїв. Технологія LED LCD (рідко-кристалічний дисплей) в телевізорах використовує світлодіоди як джерело підсвічування, що дозволяє отримати чітке та яскраве зображення. LED мають великий термін служби порівняно з іншими джерелами світла. Вони можуть працювати до 50 000 годин або більше, що значно перевершує традиційні лампи

Наш Дрон також має світлодіоди (дивись картинку вище). Кожен має назву, яка означає ім’я піна Дрона, до якого цей світлодіод підключений. Пін – це вивід центрального мікроконтролера нашого Дрона. По цих же іменах пінів ми і будемо звертатися до світлодіодів. Далі ми навчимось писати програму, яка буде керувати цими світлодіодами - вмикати і вимикати. Вмикати і вимикати світлодіоди звучить як не дуже цікаве заняття, але це дуже важлива функція дронів, особливо вночі – щоб дрон можна було розрізнити в нічному небі (дивись відео вище)

Важливо

Якщо Ви чи вчитель раніше не налаштовували середовище розробки Ардуїно на цьому комп’ютері, то перейдіть на Початок для налаштування. Коли виконано, повертайтесь сюди і продовжуйте урок далі

Написання першої програми

Для початку напишемо найпростішу програму для Дрона, яка увімкне перший світлодіод, підключений до піна PA5

1void setup() {
2  pinMode(PA5, OUTPUT);
3}
4
5void loop() {
6  digitalWrite(PA5, 1);
7}
1void setup() {           //Функція 'setup' починає виконуватися першою при запуску Дрона
2  pinMode(PA5, OUTPUT);  //Функція pinMode встановлює пін PA5 в режим роботи на вихід (OUTPUT)
3}
4
5void loop() {            //Функція 'loop' виконується циклічно і безкінечно одразу після 'setup'
6  digitalWrite(PA5, 1);  //Увімкнення PA5 світлодіоду
7}

Якщо відчуваєте складність в розумінні написаної вище програми, то спробуйте перемкнутися на вкладку з коментарями – , де пояснюється кожна стрічка. Також нижче є розділ з перекладом англійських слів, які використовуються в програмі. При написанні програм використовують саме англійську мову. На щастя достатньо самого базового шкільного рівня англійської для навчання програмуванню

  • setup (сетап) – налаштування. Саме так називається функція, яка першою запускається при старті Дрона. В цій функції ми будемо налаштовувати пристрої підключені до Дрона.
  • void (войд) – пустота. Означає один із типів даних, який може повертатися функціями. В даному випадку ми позначаємо, що наша функція нічого не повертає, тобто – пустоту. В наступних уроках в нас будуть приклади, коли функція все-таки буде щось повертати, там і розглянемо навіщо це потрібно.
  • pin (пін) – вивід або контакт. Це головний фізичний інструмент, за допомогою якого Дрон взаємодіє із зовнішнім світом. Коли до Дрона підключають зовнішні пристрої, то насправді вони підключаються до пінів.
  • mode (мод) – режим. Спосіб роботи піна Дрона. Є 2 основні режими – робота на вхід (INPUT) і на вихід (OUTPUT).
  • OUTPUT (аутпут) – режим роботи піна Дрона на вихід. В цьому режимі Дрон буде віддавати команди підключеним пристроям. Наприклад світлодіоду – горіти чи погаснути
  • INPUT (інпут) – режим роботи піна Дрона на вхід. В цьому режимі Дрон буде зчитувати показники з пристроїв, наприклад з кнопок – натиснута кнопка чи відпущена
  • loop (луп) – петля або цикл. Це назва функції, яка автоматично запускається наступною після функції setup і виконується постійно, тобто після свого відпрацювання починає виконуватися знову і так до безкінечності (або допоки на Дрон подається електроенергія через кабель).
  • digital (діджітал) – цифровий.
  • write (райт) – писати, записувати.
  • delay (ділей) – затримка. Таку назву має функція, яка заставляє Дрон нічого не робити, а просто заснути на задану кількість мілісекунд. Пізніше розглянемо навіщо це може бути потрібно.

Запустіть програму Ардуїно на вашому комп’ютері. Ардуїно це основне місце роботи, де ми будемо створювати програми для Дрона. Скопіюйте написану вище програму в Ардуїно ось так:

 

Для того, щоб завантажити Вашу нову програму на Дрон потрібно спочатку перевести його в режим програмування. В цьому режимі Дрон перестає виконувати попередньо записану в нього програму (якщо така була) і починає чекати поки в нього запишуть нову програму. Режим програмування активується наступними кроками:

  1. Підключіть Дрон до комп’ютера за допомогою кабелю USB Type-C
  2. Одночасно зажміть кнопки BT + R на Дроні
  3. Відпустіть спочатку кнопку R, а через 2 секунди і BT
    Якщо на Дроні засвітилися 2 крайні праві світлодіоди, то режим програмування активувався. Буває, що він не завжди активується з першої спроби, тому спробуйте ще раз, починаючи з 1-го пункту.
  4. Нажміть кнопку (Завантажити) в програмі Ардуїно на комп’ютері

Якщо все вдалось, то Дрон увімкне крайній лівий світлодіод PA5. Вітаю, Ви написали свою першу програму для Дрона

Якщо виникли будь-які проблеми і програма не завантажилась чи не запустилася, то перейдіть в розділ Вирішення проблем за допомогою

Самостійна робота №1

Погляньте на решту світлодіодів Дрона, оберіть який Вам більше подобається і спробуйте модифікувати програму таким чином, щоб тепер увімкнути саме його (наприклад PA7 чи PB0). Коли програма готова, знову переведіть Дрон в режим програмування і завантажте Вашу нову програму слідуючи уже знайомій інструкції вище.

Миготіння світлодіоду

Тепер давайте ускладнимо задачу і будемо ще й вимикати світлодіод. Послідовне вмикання і вимикання світлодіоду призводить до ефекту миготіння. Миготіння світлодіоду відбувається тоді, коли світлодіод вмикається і вимикається з певним інтервалом, наприклад 1 секунда (1000 мілісекунд)

 1void setup() {
 2  pinMode(PA5, OUTPUT);
 3}
 4
 5void loop() {
 6  digitalWrite(PA5, 1);
 7  delay(1000);
 8
 9  digitalWrite(PA5, 0);
10  delay(1000);
11}
 1void setup() {           //Функція 'setup' aвтоматично запускається першою при увімкненні Дрона
 2  pinMode(PA5, OUTPUT);  //Функція pinMode встановлює пін PA5 в режим роботи на вихід (OUTPUT)
 3}
 4
 5void loop() {            //Циклічна функція 'loop' запускається одразу після функції 'setup'
 6  digitalWrite(PA5, 1);  //Увімкнення PA5 світлодіоду
 7  delay(1000);           //Павза 1 секунда (тобто 1000 мілісекунд)
 8
 9  digitalWrite(PA5, 0);  //Вимкнення PA5 світлодіоду
10  delay(1000);           //Павза 1 секунда (тобто 1000 мілісекунд)
11}

Завантажте програму на Дрон за вже знайомою інструкцією вище.
A ось так виглядає блок-схема програми, яка візуально більш зрозуміло пояснює, що робить програма:

flowchart LR
   k("Налаштування\n(setup)"):::step --> l
   a(LED вкл) --> b(Чекаємо\n1 секунду)
   b --> c(LED викл)
   c --> d(Чекаємо\n1 секунду)
   d --> a
   l:::loop
    subgraph l["Виконуємо циклічно (loop)"]
    direction LR
    a:::step
    b:::step
    c:::step
    d:::step

classDef step fill:#f96,color:black,stroke:#f96;
classDef loop fill:#5490ff,color:black;
linkStyle default fill:none,stroke-width:2px,stroke:white,text-color:red

end

В попередній програмі ми використовували функції, але ще не розглядали що це таке.
Функції в програмуванні це набір операцій (1 або більше), які об’єднанні спільною метою. Функція має ім’я, тобто її можна викликати звернувшись до неї по імені, там само як ви звертаєтесь до свого однокласника за допомогою. Наприклад, уявіть, що Ваш однокласник вміє робити щось таке чого не вмієте Ви (наприклад красиво малювати) і ви звертаєтесь до однокласника по імені за допомогою намалювати калину. В даному випадку ви викликаєте функцію свого однокласника намалювати калину, в якості вхідного параметру слугує калина, тому що окрім того, щоб просто малювати Ви маєте сказати однокласнику що саме ви хочете намалювати. Функції також повертають результат своєї роботи. В нашому випадку однокласник віддасть картину з намальованою на ній калиною.
Інший приклад функції. Ваш однокласник вміє добре додавати великі числа в голові (без допомоги калькулятора) і Ви на уроці математики просите його додати два великі числа: 3245 та 3305. В результаті однокласник має видати вам суму цих чисел. Якщо перевести це в програмування, то така функція виглядала б ось так:
int result = calculate(3345, 3105); Тут ми викликали функцію calculate з двома параметрами і записали результат (6450) собі в змінну result. Що таке змінні ми розглянемо на наступному уроці.

В Ардуїно вже існує певна кількість готових функцій і ось кілька з них, які ми використовуємо на цьому уроці:

 1//Функція 'pinMode' перемикає режими пінів дрона на потрібний нам.
 2//Тому ця функція приймає два параметри: назву піна, який треба перемкнути і
 3//режим роботи, на який його треба перемкнути. Режим OUTPUT (на вихід) - якщо треба керувати тим,
 4//що підключено до піна (світлодіод наприклад). Уявіть, що Ви водій авто і перед тим як рушити з місця,
 5//треба перемкнути передачу вперед чи назад. Так само з пінами спочатку треба виставити режим.
 6pinMode(PA5, OUTPUT);//Переводимо пін PA5 в режим на вихід, щоб керувати світлодіодом
 7
 8//Функція 'digitalWrite' вмикає чи вимикає, те що підключено до піна. Так само приймає 2 параметри:
 9//теж назву піна, і у вигляді числа (1 - вкл, 0 - викл) що потрібно зробити з піном
10digitalWrite(PA5, 1);//Вмикаємо пін PA5
11
12//Функція 'delay' заставляє Дрон почекати задану кількість часу перед виконанням наступної дії (1 секунда = 1000 мілісекунд)
13//і нічого не робити
14delay(2000);//Чекаємо 2 секунди
15//Ця функція потрібно тому, що Дрон виконує операції одну за одною дуже швидко і якби не було
16//затримки між командами вкл та викл, то ми ніколи б не побачили, що наша програма увімкнула світлодіод,
17//оскільки дуже швидко виконається команда на вимкнення після увімкнення. Затримка довзоляє на деякий час побачити
18//світіння світлодіоду

Ардуїно має ще дуже багато готових функцій, які ми можемо просто викликати для наших потреб. Весь перелік функцій можна знайти за посиланням, з деякими з них ми познайомимось на наступних уроках, а також навчимось писати свої власні функції

Самостійна робота №2

Модифікуйте попередню програму так, щоб тепер миготів будь-який інший світлодіод, який Ви оберете на Дроні.


Змініть швидкість мигання світлодіоду. Для цього в стрічках 7 і 10 попередньої програми змініть павзи. Наприклад, спробуйте виставити будь-яке інше число окрім 1000 мілісекунд. Почніть з 500 і перебирайте числа більші або менші: 100, 300, 600, 2000 і так далі. Також спробуйте поставити в стрічках 7 і 10 не однакові павзи і поспостерігайте як тепер мигає світлодіод.