У цій статті я покажу вам практичний приклад того, як підключити та запрограмувати Arduino. Це також програмування "Hello World" з Arduino. У нашому випадку це "Світлодіодне блимання Arduino".
Блимання світлодіода може бути здійснено без будь-яких інших компонентів за допомогою будь-якої плати розробки Arduino. У цьому прикладі це буде Arduino UNO. Це буде найлегше, що ви можете зробити з вашим Arduino. Тож давайте дійдемо до цього.
Що мені знадобиться для миготливого світлодіода Arduino?
Для спалаху світлодіода вам знадобиться плата розробки, напр. Arduino UNO, підключаючи USB-кабель та комп’ютер із завантаженою програмою Arduino IDE (клацніть на посилання, я написав вам там інструкції з установки). Поточну версію завжди можна завантажити з веб-сайту arduino.cc. І звичайно трохи часу та терпіння.
Це також буде доречно спробуйте блимати не тільки з вбудованим світлодіодом діод, але також із зовнішнім світлодіодом. Для цього знадобиться принаймні один кольоровий світлодіод, резистор 220 Ом і трохи макетів - це поле силового контакту.
І як мені це зв’язати?
Для цього ми маємо монтажна схема. Кожен компонент має свою електротехніку торгова марка, де вони цим позначені торгових точок, можливо значення. Така схема виглядає напр. наступним чином:
Це є типове підключення вбудованого світлодіода безпосередньо на стандартних платах Arduino. Будьте обережні, але є також деякі дошки, які можуть мати його на іншій сосні (MKR1000) або навіть не мати його взагалі (Arduino DUE).
Ви бачите на схемі великий прямокутник Arduino з описом штифтів і послідовно підключається світлодіод з резистором 220 Ом між штифт D13 і GND (GND - земля або мінус полюс). Світлодіод - це електронний елемент - прилад (як і лампочка, електродвигун…). Технічно ці елементи називаються виконавчими механізмами, а схема управління (Arduino) управляє джерелом живлення до них і, таким чином, впливає на їх стан. У найпростішому випадку ми просто вмикаємо або вимикаємо живлення - привід знаходиться в активному стані або в стані спокою (увімкнення/вимкнення,…).
Підключіть зовнішній світлодіод разом з резистором, як показано на наступному малюнку. Зверніть увагу, що зараз він підключений до штифт D9. Чому слід закріплювати D9? Ну, бо я вирішив, що хочу її на цій сосні. Булавка знає щось зайве. Маленькі літери ШІМ можуть це вказувати. Що вони означають, ви дізнаєтесь пізніше. Тепер просто підключіть його так.
Резистор повинен бути рівним 220 Ом?
Це правильне питання. Особливо, якщо у вас немає резистора з таким значенням, але у вас є подібний. Arduino, до якого ви хочете підключити світлодіод, має обмежений максимальний струм, який здатний доставити на виході. Максимальний струм через один штифт (ногу) становить 40 мА. Рекомендовано навантажувальний штифт до 20мА. Отже, ви можете підключити світлодіод безпосередньо до виходу Arduino, але напр. це не лампочка або електродвигун, вони, як правило, мають набагато більше споживання струму.
Для обмеження струму, що протікає, використовується резистор. Що вище значення опору має резистор, команда менше струму тече діод і діод будуть про це тьмяний. Отже, при значенні резистора 220ie струм протікає, давайте йому приблизно 11mA (це залежить від кольору діода), при значенні резистора 1kΩ це вже близько 3mA. Навіть при такому слабкому струмі світлодіод буде м’яко світитися (але ми споживаємо мінімум енергії). А якщо поставити туди резистор зі значенням 150 Ом, то струм буде протікати близько 20 мА, світлодіод буде горіти яскравіше.
І навіть не думайте про підключення світлодіода до Arduino без резистора. Чому? Ні прото! Лебо ви перевантажуєте штифт Arduino зі струмом більше 40 мА і випускає безповоротно прихований дим і світлодіод знову останній спалах 🙂
Але будьте обережні, максимальна сила струму для всього Arduino також обмежена - всі шпильки разом макс. 200 мА. Таким чином, ви можете підключити максимум 10 одночасно освітлених світлодіодів зі струмом 20 мА або використовувати менший струм завдяки резистору з вищим значенням опору, збільшуючи тим самим кількість світлодіодів, які можна одночасно запалити. Для струму 10 мА ви можете підключити їх 20. В одній статті я також підготував розрахунок резистора для світлодіода для певного струму. Звичайно, це стосується не тільки Arduino, але й інших інтегральних схем, де ви можете знайти їх максимальні вихідні струми в таблиці даних.
Я повинен підключити резистор перед світлодіодом або позаду світлодіода?
Так що ж ви думаєте? Це важливо чи ні? Тому що вони беруть участь в серії, протікає через обидва компоненти той самий струм, тому їм байдуже, в якому порядку вони задіяні.
Так що так, неважливо, знаходиться резистор перед або позаду світлодіода. Це можна використовувати для проектування розміщення компонентів на друкованій платі.
І як мені включити світлодіод?
На відміну від лампочок, які не мають значення полярності напруги живлення і тому здатні працювати від змінної напруги, Неправильно підключені світлодіоди не працюють, не запалюйте. Щоб визначити правильна полярність Найбезпечніше поглянути на його каталоговий аркуш (тобто техпаспорт), який є своєрідним свідоцтвом про народження кожного компонента. Але найшвидший спосіб - спробувати найкращий мультиметр.
Далі методи визначення таблиця з малюнком показує:
знак: | + | - |
полярність: | позитивні | негативний |
вихід: | анод (А) | катод (K) |
розетка: | довгота | короткий |
справа ззовні: | округлі | квартира |
всередині корпусу: | менший | більший |
Спочатку підключити довший "ніжний" світлодіод (позитивний анод) на резисторі. А тепер аналогічно і логічно з’єднайте її коротку ніжку (негативний катод) із землею (GND - земля).
А як щодо програмного коду?
Не потрібно напружено описувати чи шукати та завантажувати щось із Інтернету? Відповідь - НІ. Все, що вам потрібно, це IDE Arduino натисніть в меню до "Файл" та серед "Основних" прикладів знайти "Блимати“. Готово, програма відкриється, і ви побачите приблизно таке:
Не забувайте після підключення плати перевірити Номер COM-порту a налаштування правильна рада розвитку. А тепер натисніть на другу піктограму (стрілка праворуч) або натисніть «CTRL + U», і ця програма буде завантажена в Arduino, і ваш світлодіод буде блимати. Але який світлодіод блиматиме? Вбудований на дошці або зовнішній на макеті? Завантажте код, і ви побачите.
Як Arduino знає, де підключений мій світлодіод?
Ні, він цього не зробив він не знає, треба це якось робити розповісти. Ти знаєш його програма. Як ви, мабуть, вже дізналися під час завантаження програми з прикладу, вбудований світлодіод блимає з інтервалом близько секунди.
Тепер у вас це є ми розтинаємо програму і ми спробуємо деякі коригування. Ми хочемо щоб зробити зовнішній світлодіодний спалах.
То що означають ці барвисті слова?
Цілий Програма для Arduino складається з двох частин - функції. В офісі порожнеча установки - це команди, які будуть виконуватися лише один раз після включення (або після скидання). Тоді Arduino буде постійно запускатися виконувати команди, перелічені навколо в офісі порожня петля. Отже, перші команди ми дізнаємось вони будуть призначені для управління окремими шпильками (ніжками) Arduino. Для початку нам потрібні лише два стани (вимкнений чи ввімкнений), тобто цифровий контроль. Перше, що нам потрібно зробити, це налаштувати або дано шпилька буде допуск (сигнал буде подаватися на Arduino ззовні) або вихід (Arduino буде чимось керувати). Для цього використовується функція pinMode (команда) (pin, режим).
Ця функція pinMode є функцією налаштування, оскільки нам потрібно виконати її лише один раз під час запуску програми. Ми ще не вмикаємо цей світлодіод, ми просто скажемо Arduino, що хочемо, щоб цей штифт виводився. Наприклад, запис може виглядати так:
Ну привіт, але в прикладі я бачу LED_BUILTIN, а не номер виводу, що це таке?
Це гарна визначена константа, яка встановлюється таким чином, що відповідно до вибраної плати в IDE Arduino ви автоматично присвоює номер піну (в цьому випадку 13), до якого він прикріплений на дошці внутрішній світлодіод. Ви повинні пам’ятати, як я вже писав вище, що на деяких платах цей світлодіод підключений до інших контактів. А тому що є зусилля писати програми універсальний для різних типів плат, і ви, як програміст-розробник, не знаєте, яку плату підключить користувач, тому буде використана така константа, і вона подбає про неї і призначить правильний номер виводу внутрішньому світлодіоду.
О, отже, коли я всюди перепишу слово LED_BUILTIN на 9, зовнішній світлодіод блиматиме.?
Точно так. Вся програма буде виглядати так:
Це вся програма? І куди зникли інші англомовні рядки?
Це були примітки програміста. Я пишу, як вони правильно використовуються в цій статті.
Ну, підемо далі. Друга особливість, яка нам знадобиться, - це встановлення значення на виході сосни і для цього ми будемо використовувати іншу команду digitalWrite (pin, значення).
Ця команда вже є у функції циклу. Це вже частина програми, яка буде постійно повторюватися для нас. Написання цієї команди виглядає так:
І залишилася ще одна команда затримки (1000). Навіщо це?
Це підказує Arduino зупинився на деякий час. Цей конкретний час дорівнює 1000. Це значення наведено в мілісекундах. Ця затримка команди (1000) ti зупинить виконання вашої програми протягом 1000 мілісекунд, що становить одну секунду. Отже, ви можете бачити, що світлодіод блимає з інтервалами в секунду, оскільки він знаходиться між двома командами digitalWrite.
Якщо ви пропустили цю команду, ви побачите, що світлодіод буде блимати з меншою яскравістю. Спробуй це. Також спробуйте змінити це значення напр. до 500. Грайте з цими значеннями, у вас для цього є Arduino.
То як це все працює?
Коли я узагальнюю всю програму на нашій мові, це виглядає так. Спочатку встановлю висновок 9 на вихід. Далі, в циклі, я встановлюю цей штифт на ВИСОКИЙ, який вмикає світлодіод, потім я чекаю 1с, потім вимикаю діод і знову чекаю одну секунду. Потім програма знову запускається із циклу циклу від команди встановити штифт на ВИСОКИЙ і так далі весь час.
І коли хімічні мають світлодіоди на іншій сосні?
Чи потрібно переписувати всі цифри 9? Його не можна було змінити один раз в одному місці? Ну, уявіть, що це було б можливо і досить просто.
Переписуючи номер 9 на інший контактний номер, ви ризикуєте десь його забути. Особливо при довших програмах. Тому доцільніше ввести т. Зв символічне найменування замість конкретного номера PIN-коду, а потім використовуйте його наступним чином у програмі. Ми реалізуємо це так зване директива препроцесора. Як? Подібно до константи LED_BUILTIN.
Таке ім’я для себе зараз ми створимо і рівно два різних. Зрештою, нам також потрібно змінити час.
Тепер фізично підключіть світлодіод до виводу 10, завантажте програму, і тепер світлодіод блиматиме на сосни 10 і швидше. Змініть значення 500 на нижче і трохи опустіть світлодіод, щоб він блимав швидше. Спробуйте визначити два різні часи - один на довжину освітлення, а інший - на довжину неосвітлення. Наприклад Світлодіод горить протягом 2 секунд і вимикається протягом півсекунди.
Світлодіод також можна підключити іншими способами?
Так, він буде. Вимкніть ваш Arduino. Спочатку підключити на цей раз коротший світлодіод "ніжки" (позитивний катод) на резисторі, підключеному до виводу 10 (просто поверніть світлодіод фізично в макет). А тепер аналогічним чином підключіть її довшу ніжку (негативний анод) зараз, але до + 5В. Коротко, Тепер світлодіод підключений до + 5 В, а не до GND. Тут він намальований на малюнку різниця з'єднань.
Увімкніть Arduino, і якщо у вас записана програма, де світлодіод повинен був увімкнути протягом 2 секунд, а не протягом півсекунди, ви виявите, що він працює зараз якраз навпаки. Це означає, що тепер за допомогою команди digitalWrite ви не ввімкнете світлодіод зі значенням HIGH, але ви вимкнете його (аналогічно протилежне також стосується LOW).
І чому це так? Оскільки струм протікає від позитивного полюса + 5 В до негативного полюса GND. А тепер уважно подивіться на картину.
У першому випадку до контакту D9 застосовується значення HIGH + 5 В, і струм протікає через резистор і світлодіод до землі GND, і світлодіод горить. Коли LOW значення 0V (GND) на сосні D9, струм нікуди не тече (він не тече від GND до GND).
У другому випадку для виводу D9 встановіть HIGH на + 5 В, а світлодіод також підключений до + 5 В, тому струм також не протікає (від + 5 В до + 5 В). Але якщо ми розмістимо значення LOW (GND) на цьому штифті D9, тоді світлодіод загориться. Це принаймні трохи зрозуміло?
Що ще я повинен знати?
Однозначно принаймні як не знищуйте Arduino при підключенні до мережі. Я розглядаю це в окремій статті "Як (не) знищити Arduino". Я рекомендую вам поглянути на це, щоб уникнути помилок, оскільки неправильна проводка може потенційно пошкодити плату Arduino.
І що далі?
Ну, чи важко було підключити та запрограмувати Arduino? Я думаю, що не. Що чекає вас далі? Налаштуйте ця програма для того, щоб функціонувати затримка у програмі не відбулося взагалі. По правді кажучи, цієї команди слід уникати і якомога менше її використовувати, щоб програма не стояла на вашому місці без потреби в одному місці, а також робила щось інше корисне.
Найближчим прикладом буде блимає кількома світлодіодами з різним часом блимання. Або яка яскравість світлодіода пішла загоряються як з диммером? Про це буде сказано ШІМ. Як це можна зробити за допомогою Arduino? Про це йтиметься в наступній статті.