Що таке Arduino?
Arduino – торгова марка апаратно-програмних засобів для побудови простих систем автоматики та робототехніки, орієнтована на непрофесійних користувачів. Програмна частина складається з безкоштовної програмної оболонки Arduino IDE для написання програм, їх компіляції та програмування мікроконтролерів.
Історія створення Arduino
Перший прототип контролера Arduino був випущений ще далекого 2005 року, коли італійський викладач Массімо Банці розробив його для студентів Інституту проектування взаємодій міста Івреа, Італія. Ардуїно спочатку створювалося для більшого залучення студентів до електротехніки. Назва пристрою походить від імені короля Ардуїна, який правив Італією всього два роки на початку XI століття, на честь якого був названий і пивний бар "ді Ре Ардуїно", що належить Массімо Банці, і розташований на тому самому місці, де за переказами народився король Ардуїн.
Спочатку команда викладачів, які розробили Ардуїно, відкрили сайт arduino.cc. Але через розбіжності у колективі стався розкол у 2008 році. Частина, що відокремилася, створила інший сайт arduino.org. Це спричинило плутанину, через однакові назви для різних Ардуїнок, програм та прошивок. Лише у 2017 році конфлікт вирішився повністю. Так залишився лише один офіційний сайт arduino.cc. Ідея стала мати величезний успіх не лише у студентському середовищі, а й серед звичайних любителів електроніки та проект Arduino почав успішно розвиватися. Завдяки своїй простій і відкритій архітектурі виробляти дані контролери, доповнювати модельний ряд, писати програми може будь-хто.Чим і скористалися китайські виробники електроніки, які за короткий час затопили китайський і не тільки ринок, дешевими аналогами плат контролерів Ардуїно. Тепер ви з легкістю можете купити безліч китайських аналогів Ардуїно на всьому відомому торговому майданчику AliExpress.
Що являє собою платня Arduino?
Основою контролерів Arduino є мікроконтролер фірми Atmel Atmega328-P, який є 8-бітним мікропроцесором з пам'яттю і різними периферійними пристроями, виконаною на одній мікросхемі. За фактом це однокристальний мікрокомп'ютер, здатний виконувати різні завдання. Різні моделі з сімейства Arduino оснащені різними мікроконтролерами, більш і менш потужними та функціональними. На даний момент є більш ніж 20 основних офіційних модифікацій плат контролерів Ардуїно, таких як Arduino UNO, Arduino Nano, Arduino Mega, Arduino Micro і т.д. Весь модельний ряд можна переглянути на офіційному сайті проекту arduino.cc.
Для підключення та взаємодії з будь-яким електронним компонентом (світлодіоди, мотори, датчики тощо) на платі контролера використовуються так звані порти введення/виводу контролера. Ще їх часто називають пінами (від англійського слова pin – висновок). Порти Ardiono бувають цифрові, аналогові чи цифро-аналогові інтерфейси, що мають свою власну функцію, яка полягає у взаємодії з іншими електронними пристроями. Наприклад, ваша плата може взаємодіяти з цифровим датчиком температури та вологості або, наприклад, аналоговим датчиком температури.
Для управління використовується спеціальна мова програмування, яка дуже схожа на мову програмування С++.Для спрощення процесу програмування розроблено спеціальне програмне середовище Arduino IDE. До її складу входять десятки прикладів коду, які допоможуть вам швидко вивчити мову програмування. Що робить Arduino IDE? Вона перетворює ваш код на машинну мову, яка буде зрозуміла контролеру і яка буде автоматично завантажуватися в пам'ять вашої плати Arduino і негайно виконуватися. По суті, Arduino IDE дуже полегшує весь процес розробки програм для Ардуїно. Інтерфейс програми дуже мінімалістичний і дозволить вам відразу розібратися, що за чим. Є ще один великий плюс Arduino IDE абсолютно безкоштовна і ви її можете скачати на офіційному сайті arduino.cc.
З чим може взаємодіяти Ардуїно?
Платформа підійде як любителю-початківцю, так і досвідченому електроннику. Саме тому Arduino виборола всі куточки електронного світу. Arduino використовується і в промислових областях: ЧПУ-верстати, 3D-принтери, а також у медичній та будівельній галузях. На базі Arduino створено цілу низку промислових плат контролерів, які успішно використовуються в різних сферах діяльності. Ось перелік найпопулярніших варіантів взаємодії:
- Датчики температури, вологості, освітленості, руху та ін;
- ЖК-дисплеї, індикатори, світлодіоди;
- Реле, кнопки, елементи комутації;
- Bluetooth, WiFi та Ethernet пристрої;
- Дальноміри;
- Зчитувачі карток SD;
- GPS та GSM модулі;
- та багато іншого.
Чому варто вибрати Arduino?
Ардуїно має ряд переваг:
- Не потрібний програматор;
- Не потрібні особливо глибокі знання у програмуванні мікроконтролерів;
- Проект Ардуїно повністю відкритий;
- Популярна платформа - купа сайтів з бібліотеками, схемами та проектами
- Стандартизація розташування висновків - це робить її привабливою для виробників - з'являються нові шилди
- Кросплатформове середовище розробки
З чого розпочати?
Більшість людей починає своє знайомство з купівлі плати контролера Arduino UNO. Це найпоширеніша плата для початківців. Ще вам знадобиться набір макетних плат. А також набір з'єднувальних проводів, для того щоб з'єднувати плату контролера і зовнішні пристрої. Також раджу відразу купити периферію для вивчення всіх можливостей Arduino. Для початку вам знадобляться кілька світлодіодів, пасивна пищалка, найпростіший датчик температури та вологості та потенціометр. Цього набору вам буде достатньо для початку вивчення Ардуїно. Надалі, якщо заняття справді захоплять і буде бажання продовжити експерименти, то список обладнання можна розширити до покупки дисплеїв, двигунів, модулів зв'язку та додаткових плат розширення (шилдів).
Де придбати плату Arduino?
Купити плату можна легко в багатьох інтернет-магазинах, що спеціалізуються на продажу Ардуїно. У багатьох магазинах є готові набори для початківців, які дозволять вам швидко почати працювати з Арудіно. Також ви можете купити плати в Китаї через весь відомий торговий майданчик AliExpress. На цьому майданчику є великий вибір різних плат-аналогів. При цьому треба буде враховувати, що доставка до країн СНД буде досить дорогою, а куплена там плата може бути не зовсім аналогічною до оригінальної плати Ардуїно!
Arduino.ru
Arduino Uno контролер побудований на ATmega328 (Технічне опис, pdf).Платформа має 14 цифрових вхід/виходів (6 з яких можуть використовуватися як виходи ШІМ), 6 аналогових входів, кварцовий генератор 16 МГц, USB-роз'єм, силовий роз'єм, роз'єм ICSP і кнопку перезавантаження. Для роботи необхідно підключити платформу до комп'ютера за допомогою кабелю USB або подати живлення за допомогою адаптера AC/DC або батареї.
На відміну від усіх попередніх плат, що використовували FTDI USB мікроконтролер для зв'язку по USB, новий Ардуїно Uno використовує мікроконтролер ATmega8U2 (Технічне опис, pdf).
"Uno" перекладається як один з італійської, і розробники тим самим натякають на майбутній вихід Arduino 1.0. Нова плата стала флагманом лінійки плат Ардуїно. Для порівняння з попередніми версіями можна звернутись до повного списку плат Arduino.
Характеристики
Схема та вихідні дані
Харчування
Arduino Uno може отримувати живлення через підключення USB або зовнішнього джерела живлення. Джерело живлення вибирається автоматично.
Зовнішнє живлення (не USB) може подаватися через перетворювач AC/DC (блок живлення) або акумуляторною батареєю. Перетворювач напруги підключається за допомогою роз'єму 2.1 мм із центральним позитивним полюсом. Провід від батареї підключається до висновків Gnd і Vin роз'єму живлення.
Платформа може працювати при зовнішньому живленні від 6 до 20 В. При напрузі живлення нижче 7 В, висновок 5V може видавати менше 5 В, при цьому платформа може працювати нестабільно. При використанні напруги вище 12 В регулятор напруги може перегрітися та пошкодити плату. Рекомендований діапазон від 7 до 12 В.
- VIN. Вхід використовується для подачі живлення від зовнішнього джерела (без 5 В від роз'єму USB або іншого регульованого джерела живлення). Подача напруги живлення відбувається через висновок.
- 5V. Регульоване джерело напруги, що використовується для живлення мікроконтролера та компонентів на платі. Живлення може подаватися від виведення VIN через регулятор напруги або від роз'єму USB, або іншого регульованого джерела напруги 5 В.
- 3V3. Напруга на виведенні 3.3 В генерується вбудованим регулятором на платі. Максимальне споживання струму 50 мА.
- GND. Висновки заземлення.
Пам'ять
Мікроконтролер ATmega328 має в своєму розпорядженні 32 кБ флеш пам'яті, з яких 0.5 кБ використовується для зберігання завантажувача, а також 2 кБ ОЗУ (SRAM) і 1 Кб EEPROM. (яка читається та записується за допомогою бібліотеки EEPROM).
Входи та Виходи
Кожен з 14 цифрових висновків Uno може бути налаштований як вхід або вихід, використовуючи функції pinMode(), digitalWrite(), і digitalRead(), . Висновки працюють при напрузі 5 В. Кожен висновок має резистор навантаження (за замовчуванням відключений) 20-50 кОм і може пропускати до 40 мА. Деякі висновки мають особливі функції:
- Послідовна шина: 0 (RX) та 1 (TX). Висновки використовуються для отримання (RX) та передачі (TX) даних TTL. Ці висновки підключені до відповідних висновків мікросхеми послідовної шини ATmega8U2 USB-to-TTL.
- Зовнішнє переривання: 2 та 3. Дані висновки можуть бути налаштовані на виклик переривання або на молодшому значенні, або на передньому або задньому фронті, або при зміні значення. Детальна інформація міститься в описі функції attachInterrupt().
- ШИМ: 3, 5, 6, 9, 10, та 11. Будь-який з висновків забезпечує ШІМ з роздільною здатністю 8 біт за допомогою функції analogWrite().
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). За допомогою даних висновків здійснюється зв'язок SPI, навіщо використовується бібліотека SPI.
- LED: 13. Вбудований світлодіод, підключений до цифрового 13.Якщо значення на виведенні має високий потенціал, світлодіод горить.
На платформі Uno встановлено 6 аналогових входів (позначених як A0.. A5), кожен роздільною здатністю 10 біт (тобто може набувати 1024 різних значень). Стандартно висновки мають діапазон вимірювання до 5 В щодо землі, проте є можливість змінити верхню межу за допомогою виведення AREF та функції analogReference(). Деякі висновки мають додаткові функції:
- I2C: 4 (SDA) та 5 (SCL). За допомогою висновків здійснюється зв'язок I2C (TWI), до створення якої використовується бібліотека Wire.
Додаткова пара висновків платформи:
- AREF. Опорна напруга для аналогових входів. Використовується з функцією analogReference().
- Reset. Низький рівень сигналу на виводі перезавантажує мікроконтролер. Зазвичай використовується для підключення кнопки перезавантаження на платі розширення, що закриває доступ до кнопки на платі Arduino.
Зверніть увагу на з'єднання між висновками Arduino та портами ATmega328.
Зв'язок
На платформі Arduino Uno встановлено кілька пристроїв здійснення зв'язку з комп'ютером, іншими пристроями Arduino або мікроконтролерами. ATmega328 підтримують послідовний інтерфейс UART TTL (5), здійснюваний висновками 0 (RX) і 1 (TX). Встановлена на платі мікросхема ATmega8U2 спрямовує даний інтерфейс через USB, програми на боці комп'ютера спілкуються з платою через віртуальний COM порт. Прошивка ATmega8U2 використовує стандартні драйвери USB COM, ніяких сторонніх драйверів не потрібно, але на Windows для підключення знадобиться файл ArduinoUNO.inf. Моніторинг послідовної шини (Serial Monitor) Arduino дозволяє надсилати і отримувати текстові дані при підключенні до платформи.Світлодіоди RX і TX на платформі блимають під час передачі даних через мікросхему FTDI або USB підключення (але не при використанні послідовної передачі через висновки 0 і 1).
Бібліотекою SoftwareSerial можна створити послідовну передачу даних через будь-який із цифрових висновків Uno.
ATmega328 підтримує інтерфейси I2C (TWI) та SPI. В Arduino включено бібліотеку Wire для зручності використання шини I2C.
Програмування
Платформа програмується за допомогою Arduino. З меню Tools > Board вибирається «Arduino Uno» (відповідно до встановленого мікроконтролера). Детальна інформація знаходиться у довіднику та інструкціях.
Мікроконтролер ATmega328 поставляється із записаним завантажувачем, що полегшує запис нових програм без використання зовнішніх програматорів. Зв'язок здійснюється оригінальним протоколом STK500.
Є можливість не використовувати завантажувач та запрограмувати мікроконтролер через висновки ICSP (внутрішньосхемне програмування). Детальна інформація міститься в даній інструкції.
Автоматичне (програмне) перезавантаження
Uno розроблена таким чином, щоб перед записом нового коду перезавантаження здійснювалося програмою Arduino на комп'ютері, а не натисканням кнопки на платформі. Одна з ліній DTR мікросхеми ATmega8U2, що управляють потоком даних (DTR), підключена до виведення перезавантаження мікроконтролера ATmega328 через 100 нФ конденсатор. Активація цієї лінії, тобто. подача сигналу низького рівня, що перезавантажує мікроконтролер. Програма Arduino, використовуючи цю функцію, завантажує код одним натисканням кнопки Upload у середовищі програмування. Подача сигналу низького рівня по лінії DTR скоординована з початком запису коду, що скорочує тайм завантажувача.
Функція має ще одне застосування.Перезавантаження Uno відбувається щоразу при підключенні до програми Arduino на комп'ютері з ОС Mac X або Linux (через USB). Наступні півсекунди після перезавантаження працює завантажувач. Під час програмування відбувається затримка кількох перших байтів коду щоб уникнути отримання платформою некоректних даних (всіх, крім коду нової програми). Якщо ви налаштовуєте скетч, записаний у платформу, або введіть будь-які інші дані під час першого запуску, переконайтеся, що програма на комп'ютері очікує протягом секунди перед передачею даних.
На Uno можна відключити лінію автоматичного перезавантаження розривом відповідної лінії. Контакти мікросхеми з обох кінців лінії можуть бути з'єднані з метою відновлення. Лінія маркована "RESET-EN". Вимкнути автоматичне перезавантаження також можливо підключивши резистор 110 Ом між джерелом 5 і даною лінією.
Токовий захист роз'єму USB
У Arduino Uno вбудований запобіжник (автомат), що самозупиняється, що захищає порт USB комп'ютера від струмів короткого замикання і надструмів. Хоча практично всі комп'ютери мають подібний захист, проте цей запобіжник забезпечує додатковий бар'єр. Запобіжник спрацьовують при проходженні струму більше 500 мА через USB порт і розмикає ланцюг до тих пір, поки нормальні значення струмів не будуть відновлені.
Фізичні характеристики
Довжина та ширина друкованої плати Uno становлять 6.9 і 5.3 см відповідно. Роз'єм USB та силовий роз'єм виходять за межі даних розмірів. Чотири отвори у платі дозволяють закріпити її на поверхні. Відстань між цифровими висновками 7 та 8 дорівнює 0,4 см, хоча між іншими висновками воно становить 0,25 см.
Arduino Uno
Arduino Uno – це пристрій на основі мікроконтролера ATmega328 (datasheet). До його складу входить все необхідне для зручної роботи з мікроконтролером: 14 цифрових входів/виходів (з них 6 можуть використовуватися як ШИМ-виходи), 6 аналогових входів, кварцовий резонатор на 16 МГц, роз'єм USB, роз'єм живлення, роз'єм для внутрішньосхемного програмування (ICSP) та кнопка скидання. Для початку роботи з пристроєм досить просто подати живлення від AC/DC-адаптера або батарейки, або підключити його до комп'ютера за допомогою кабелю USB.
На відміну від усіх попередніх плат Ардуїно, Uno як перетворювач інтерфейсів USB-UART використовує мікроконтролер ATmega16U2 (ATmega8U2 до версії R2) замість мікросхеми FTDI.
На платі Arduino Uno версії R2 для спрощення процесу оновлення прошивки додано резистор, що підтягує до землі лінію HWB мікроконтролера 8U2.
Зміни на платі версії R3 перераховані нижче:
- Розпинка 1.0: додано висновки SDA та SCL (біля виводу AREF), а також два нових виводи, розташовані біля виводу RESET. Перший – IOREF – дозволяє платам розширення підлаштовуватися під робочу напругу Ардуїно. Цей висновок призначений для сумісності плат розширення як з 5В-Ардуїно на базі мікроконтролерів AVR, так і з 3.3В-платами Arduino Due. Другий висновок ні до чого не приєднаний та зарезервований для майбутніх цілей.
- Поліпшено завадостійкість ланцюга скидання.
- Мікроконтролер ATmega8U2 замінено на ATmega16U2.
"Uno" (у перекладі з італійської - "один") названий з нагоди майбутнього випуску Arduino 1.0. Спільно з Arduino 1.0 ці пристрої будуть базовими версіями Ардуїно. Uno – еталонна модель платформи Arduino і є останньою у серії USB-плат; для порівняння з попередніми версіями див. список плат Arduino.
Характеристики
| Мікроконтролер | ATmega328 |
| Робоча напруга | 5В |
| Напруга живлення (рекомендована) | 7-12В |
| Напруга живлення (гранична) | 6-20В |
| Цифрові входи/виходи | 14 (з них 6 можуть використовуватися як ШІМ-виходи) |
| Аналогові входи | 6 |
| Максимальний струм одного висновку | 40 мА |
| Максимальний вихідний струм виведення 3.3V | 50 мА |
| Flash-пам'ять | 32 КБ (ATmega328) з яких 0.5 КБ використовуються завантажувачем |
| SRAM | 2 КБ (ATmega328) |
| EEPROM | 1 КБ (ATmega328) |
| Тактова частота | 16 МГц |
Схема та вихідний проект
Файли EAGLE: arduino-uno-Rev3-reference-design.zip (ПРИМІТКА: сумісно з версіями Eagle не нижче 6.0)
Примітка: У файлах проекту Ардуїно можуть фігурувати мікроконтролери ATmega8, 168 або 328. Наприклад, в останніх моделях використовується мікроконтролер ATmega328, але на схемі може бути вказаний мікроконтролер ATmega8. Це не помилка, оскільки всі три мікросхеми повністю сумісні між собою за висновками.
Харчування
Arduino Uno може бути вбудований від USB або від зовнішнього джерела живлення - тип джерела вибирається автоматично.
Як зовнішнє джерело живлення (не USB) може використовуватися мережний AC/DC-адаптер або акумулятор/батарея. Штекер адаптера (діаметр – 2.1мм, центральний контакт – позитивний) необхідно вставити у відповідний роз'єм живлення на платі. У разі живлення від акумулятора/батареї, її дроти необхідно підключити до висновків Gnd та Vin роз'єму POWER.
Напруга зовнішнього джерела живлення може бути в межах від 6 до 20 В. Однак зменшення напруги живлення нижче 7В призводить до зменшення напруги на виведенні 5V, що може стати причиною нестабільної роботи пристрою. Використання напруги більше 12В може призводити до перегріву стабілізатора напруги та виходу плати з ладу.З огляду на це рекомендується використовувати джерело живлення з напругою в діапазоні від 7 до 12В.
Нижче наведено висновки харчування, розташовані на платі:
- VIN. Напруга, що надходить Arduino безпосередньо від зовнішнього джерела живлення (не пов'язане з 5В від USB або іншою стабілізованою напругою). Через цей висновок можна подавати зовнішнє живлення, так і споживати струм, коли пристрій запитано від зовнішнього адаптера.
- 5V. На висновок надходить напруга 5В від стабілізатора напруги на платі, незалежно від того, як запитано пристрій: від адаптера (7 - 12В), від USB (5В) або через висновок VIN (7 - 12В). Запитувати пристрій через висновки 5V або 3V3 не рекомендується, оскільки в цьому випадку не використовується стабілізатор напруги, що може призвести до виходу з ладу.
- 3V3. 3.3В, що надходять від стабілізатора напруги на платі. Максимальний струм, який споживається від цього висновку, становить 50 мА.
- GND. Висновки землі.
- IOREF. Цей висновок надає платам розширення інформацію про робочу напругу мікроконтролера Ардуїно. Залежно від напруги, зчитаної з виведення IOREF, плата розширення може переключитися на відповідне джерело живлення або задіяти перетворювачі рівнів, що дозволить їй працювати як з 5В, так і з 3.3В-пристроями.
Пам'ять
Об'єм флеш-пам'яті ATmega328 становить 32 КБ (з яких 0.5 КБ використовуються завантажувачем). Мікроконтролер також має 2 КБ пам'яті SRAM та 1 КБ EEPROM (з якої можна зчитувати або записувати інформацію за допомогою бібліотеки EEPROM).
Входи та виходи
З використанням функцій pinMode(), digitalWrite() і digitalRead() кожен із 14 цифрових висновків може працювати як вход або вихід. Рівень напруги на висновках обмежений 5В.Максимальний струм, який може віддавати або споживати один висновок, становить 40 мА. Всі висновки пов'язані з внутрішніми резисторами (за замовчуванням відключеними) номіналом 20-50 кОм. Крім цього, деякі висновки Ардуїно можуть виконувати додаткові функції:
- Послідовний інтерфейс: висновки 0 (RX) та 1 (TX). Використовуються для отримання (RX) та передачі (TX) даних за послідовним інтерфейсом. Ці висновки з'єднані з відповідними висновками мікросхеми ATmega8U2, яка виконує роль USB-UART-перетворювача.
- Зовнішні переривання: висновки 2 та 3. Можуть бути джерелами переривань, що виникають при фронті, спаді або за низького рівня сигналу цих висновках. Для отримання додаткової інформації див. функцію attachInterrupt().
- ШІМ: висновки 3, 5, 6, 9, 10 та 11. За допомогою функції analogWrite() можуть виводити 8-бітові аналогові значення у вигляді ШІМ-сигналу.
- Інтерфейс SPI: висновки 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). З використанням бібліотеки SPI дані висновки можуть здійснювати зв'язок з інтерфейсом SPI.
- Світлодіод: 13. Вбудований світлодіод, приєднаний до виводу 13. При відправленні значення HIGH світлодіод вмикається, при відправленні LOW - вимикається.
Arduino Uno має 6 аналогових входів (A0 - A5), кожен з яких може представити аналогову напругу у вигляді 10-бітного числа (1024 різних значення). За замовчуванням, вимірювання напруги здійснюється щодо діапазону від 0 до 5 В. Проте верхню межу цього діапазону можна змінити, використовуючи висновок AREF і функцію analogReference(). Крім цього, деякі з аналогових входів мають додаткові функції:
- TWI: висновок A4 або SDA та висновок A5 або SCL. З використанням бібліотеки Wire ці висновки можуть здійснювати зв'язок за інтерфейсом TWI.
Крім перерахованих на платі, існує ще кілька висновків:
- AREF. Опорна напруга для аналогових входів. Може використовуватися функцією analogReference().
- Reset. Формування низького рівня (LOW) на цьому висновку призведе до перезавантаження мікроконтролера. Зазвичай цей висновок служить для функціонування кнопки скидання на платах розширення
Дивіться також відповідність висновків Arduino та ATmega328. Розпинка для мікроконтролерів ATmega8, 168 та 328 ідентична.
Зв'язок
Arduino Uno надає низку можливостей для здійснення зв'язку з комп'ютером, ще одним Ардуїном або іншими мікроконтролерами. У ATmega328 є приймач UART, що дозволяє здійснювати послідовний зв'язок за допомогою цифрових висновків 0 (RX) і 1 (TX). Мікроконтролер ATmega16U2 на платі забезпечує зв'язок цього приймача з USB-портом комп'ютера, і при підключенні до ПК дозволяє Ардуїно визначатися як віртуальний COM-порт. Прошивка мікросхеми 16U2 використовує стандартні драйвери USB-COM, тому встановлення зовнішніх драйверів не потрібно. На платформі Windows потрібен лише відповідний .inf-файл. У пакет програмного забезпечення Ардуїно входить спеціальна програма, що дозволяє зчитувати та відправляти на Ардуїно прості текстові дані. Під час передачі даних через мікросхему-перетворювач USB-UART під час USB-з'єднання з комп'ютером, на платі блиматимуть світлодіоди RX та TX. (При послідовній передачі даних за допомогою висновків 0 і 1, без використання USB-перетворювача, дані світлодіоди не використовуються).
Бібліотека SoftwareSerial дозволяє реалізувати послідовний зв'язок будь-яких цифрових висновків Arduino Uno.
У мікроконтролері ATmega328 також реалізовано підтримку послідовних інтерфейсів I2C (TWI) і SPI. До програмного забезпечення Ардуїно входить бібліотека Wire, що дозволяє спростити роботу з шиною I2C; для отримання більш детальної інформації див. документацію. Використовуйте бібліотеку SPI для роботи з інтерфейсом SPI.
Програмування
Arduino Uno програмується за допомогою Ардуїно (завантажити). Для цього з меню Tools > Board необхідно вибрати Arduino Uno з мікроконтролером, що відповідає вашій платі. Для отримання більш детальної інформації див. довідку та приклади.
ATmega328 в Arduino Uno випускається з прошитим завантажувачем, що дозволяє завантажувати в мікроконтролер нові програми без необхідності використання зовнішнього програматора. Взаємодія з ним здійснюється за оригінальним протоколом STK500 (опис, заголовні файли C).
Проте мікроконтролер можна прошити і через роз'єм для внутрішньосхемного програмування ICSP (In-Circuit Serial Programming), не звертаючи уваги на завантажувач; докладніше про це див. інструкції.
Вихідний код прошивки мікроконтролера ATmega16U2 (або 8U2 на платах версії R1 та R2) знаходиться у вільному доступі. Прошивка ATmega16U2/8U2 включає DFU-завантажувач (Device Firmware Update), що дозволяє оновлювати прошивку мікроконтролера. Для активації режиму DFU необхідно:
- На платах версії R1: замкнути перемичку на звороті плати (біля зображення Італії), після чого скинути 8U2.
- На платах версій R2 і вище для спрощення переходу в режим DFU присутній резистор, що підтягує до землі лінію HWB мікроконтролера 8U2/16U2.
Після переходу до DFU-режиму для завантаження нової прошивки можна використовувати програмне забезпечення Atmel's FLIP (для Windows) або DFU programmer (для Mac OS X та Linux). Альтернативний варіант – прошити мікроконтролер через роз'єм для внутрішньосхемного програмування ISP за допомогою зовнішнього програматора, проте в цьому випадку DFU-завантажувач затремтить. Для отримання більш детальної інформації див.
Автоматичний (програмний) скидання
Щоб щоразу перед завантаженням програми не потрібно натискати кнопку скидання, Arduino Uno спроектований таким чином, що дозволяє здійснювати його скидання програмно з підключеного комп'ютера. Один із висновків ATmega8U2/16U2, що бере участь у управлінні потоком даних (DTR), з'єднаний з виведенням RESET мікроконтролера ATmega328 через конденсатор номіналом 100 нФ. Коли на лінії DTR з'являється нуль, висновок RESET також переходить у низький рівень на час, достатній для перезавантаження мікроконтролера. Ця особливість використовується для того, щоб можна було прошивати мікроконтролер лише одним натисканням кнопки серед програмування Ардуїно. Така архітектура дозволяє зменшити тайм завантажувача, оскільки процес прошивки завжди синхронізований зі спадом сигналу на лінії DTR.
Однак ця система може призводити і до інших наслідків. При підключенні Uno до комп'ютерів, що працюють на Mac OS X або Linux, його мікроконтролер скидатиметься при кожному з'єднанні програмного забезпечення з платою.Після скидання на Arduino Uno активізується завантажувач на час близько півсекунди. Незважаючи на те, що завантажувач запрограмований ігнорувати сторонні дані (тобто всі дані, що не стосуються процесу прошивки нової програми), він може перехопити кілька перших байт даних з посилки, що надсилається платі відразу після встановлення з'єднання. Відповідно, якщо програма, що працює на Ардуїно, передбачає отримання від комп'ютера будь-яких налаштувань або інших даних при першому запуску, переконайтеся, що програмне забезпечення, з яким взаємодіє Ардуїно, здійснює відправлення через секунду після встановлення з'єднання.
На платі Uno існує доріжка (позначена як "RESET-EN"), розімкнувши яку, можна вимкнути автоматичне скидання мікроконтролера. Для відновлення функції автоматичного скидання необхідно спаяти між собою висновки, розташовані по краях цієї доріжки. Автоматичне скидання також можна вимкнути, підключивши резистор номіналом 110 Ом між виведенням RESET та 5В; для отримання більш детальної інформації див. відповідну гілку форуму.
Захист USB від перевантажень
В Arduino Uno є запобіжники, що відновлюються, що захищають USB-порт комп'ютера від коротких замикань і перевантажень. Незважаючи на те, що більшість комп'ютерів мають власний захист, такі запобіжники забезпечують додатковий рівень захисту. Якщо від USB-порту споживається струм більше 500 мА, запобіжник автоматично розірве з'єднання до усунення причин короткого замикання або перевантаження.
Фізичні характеристики
Максимальна довжина та ширина друкованої плати Uno складає 6.9 см і 5.4 см відповідно, з урахуванням роз'єму USB та роз'єму живлення, що виступають за межі плати. Чотири отвори кріплення дозволяють прикріплювати плату до поверхні або корпусу. Зверніть увагу, що відстань між цифровими висновками 7 і 8 не є традиційною 2.54 мм і становить 4 мм.
