Миготіння вбудованим на плату Arduino світлодіодом
На цьому уроці Ви навчитеся програмувати свою плату Arduino на прикладі миготіння вбудованим світлодіодом.
Необхідні елементи
Для цього прикладу Вам знадобиться плата Arduino (в даному випадку – Arduino Uno R3, але Ви зможете пропрацювати цей приклад, маючи в наявності і іншу плату) та USB-кабель (типу A (4х12 мм) – B (7х8 мм) – більш докладно можна почитати на Вікі).
Що таке ”L” світлодіод


На Arduino Uno є ряди конекторів типу мама з боків плати, які використовуються для підключення периферійних електронних пристроїв або "шилдів".
Крім того, на платі є вбудований світлодіод (англ. – LED), яким Ви можете керувати за допомогою скетчів. Цей вбудований світлодіод умовно назвемо "L" світлодіод, як це заведено на багатьох англомовних ресурсах.
Розташування цього світлодіода на платі відзначено на фото знизу.

Завантаження прикладу “Blink” (блимання) у Arduino IDE
При підключенні нової плати до персонального комп'ютера, зверніть увагу, що світлодіод починає блимати, тому що всі плати від виробників надходять із вже "залитим" скетчем "Blink".
На цьому уроці ми перепрограмуємо нашу плату, змінивши частоту миготіння світлодіода. Не забудьте налаштувати оболонку Arduino IDE та вибрати потрібний серійний порт, яким Ви підключили Вашу плату.
Настав час перевірити Ваше підключення та запрограмувати плату.
В оболонці Arduino IDE існує велика колекція скетчів, які готові до використання. Серед них і приклад, який змушує блимати “L” світлодіод.
Відкрийте приклад “Blink”, що у пункті меню File – Examples – 01.Basics
Після відкриття, розширте вікно оболонки Arduino IDE, щоб Ви могли всескетч в одному вікні.
Скетчі з прикладів, включені до Arduino IDE, передбачають режим “тільки читання” (“read only”). Тобто завантажити їх на плату Ви зможете, але після зміни коду Ви не зможете їх зберегти в тому ж файлі.
Ми будемо змінювати скетч, тому в першу чергу Вам необхідно зберегти власну копію, яку Ви зможете змінювати.
З меню “File” виберіть опцію “Зберегти як” (“Save As..”) та збережіть скетч під відповідною назвою, наприклад, “MyBlink”.
Ви зберегли копію скетчу Blink у Вашій бібліотеці. Тепер відкрити цей файл Ви можете будь-коли, перейшовши по вкладці File - Scetchbook.
Завантаження прикладу “Blink” (миготіння) на плату
Підключіть свою плату Arduino до комп'ютера за допомогою USB і перевірте тип плати (“Board type”) та серійний порт (“Serial Port”), яким вона підключена.
Поточні установки відображаються внизу вікна оболонки Arduino IDE
Клацніть на кнопку “Завантажити” (“Upload”)
Під час завантаження в нижній частині вікна IDE з'явиться повзунок завантаження та повідомлення. Спочатку з'являється фраза "Компілювання" ("Compiling scetch.."), що означає процес конвертування Вашого скетчу у формат, який підходить для завантаження на плату Arduino.
Далі статус зміниться на Завантаження (Uploading). У цей момент світлодіоди на платі почнуть блимати, тому що почнеться перенесення скетчу до мікропроцесора.
Наприкінці статус зміниться на ”Завантаження завершено” (“Done uploading”). У повідомленні, яке з'явиться в текстовому рядку, з'явиться інформація про те, що завантажений скетч займає 1,084 байти з 32,256 доступних.
Іноді при компіляції у Вас може виникнути подібна помилка:
Причин може бути кілька: Ви не підключили плату до комп'ютера; Ви не встановили необхіднідрайвера; Ви вибрали неправильний серійний порт.
Якщо завантаження пройшло коректно, плата Arduino перезавантажиться і “L” світлодіод почне блимати.
Пояснення до скетчу “Blink”
Нижче наведено код скетчу "Blink".
Перемикання на LED на один секунду, то off для одного другого, repeatedly.
Цей код коду є в public domain.
// Pin 13 має LED connected on most Arduino boards.
// the setup routine runs once when you press reset:
// Initialize digital pin як output.
// the loop routine runs over and over again forever:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
// the setup routine runs once when you press reset:
// Initialize digital pin як output.
Кожен скетч Arduino зобов'язаний включати функцію “setup” і частину, в яку ви можете додавати власні інструкції, укладені між < >. У нашому прикладі у функції присутня лише одна команда, в якій зазначено, що пін, який ми використовуємо, налаштовується на висновок (Output). Також обов'язковою для будь-якого скетчу є функція циклу “Loop”. На відміну від функції "Setup", яка відпрацьовує один раз після перезавантаження, функція "Loop" після закінчення роботи команд знову запуститься.
// the loop routine runs over and over again forever:
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
В тіліфункції “Loop” світлодіод включається (HIGH), це значення затримується на 1000 мілісекунд (1 секунда), світлодіод відключається (LOW) і залишається вимкненим на 1 секунду, після чого цикл повториться.
Зміна частоти миготіння світлодіода
Для того, щоб забезпечити більш часте миготіння світлодіода, необхідно змінити параметр, що вказується в дужках ( ) у команді “delay”.
Як було зазначено, період затримки вказується в мілісекундах. Тобто, щоб змусити світлодіод блимати вдвічі частіше, необхідно змінити значення з 1000 на 500. У результаті, пауза між включенням/вимиканням світлодіода становитиме половину секунди і світлодіод блиматиме швидше.
Для перевірки не забудьте завантажити змінений скетч на плату Arduino.