Leonardo Плати Ардуїно

Arduino
Leonardo
Arduino Leonardo з роз'ємами - вид спередуArduino Leonardo - задній вид
живлення
Arduino Leonardo без роз'ємів - вид спереду

Загальні відомості

Arduino Leonardo – це пристрій на базі мікроконтролера ATmega32U4 (datasheet). До його складу входить все необхідне для роботи з цим мікроконтролером: 20 цифрових входів/виходів (7 з яких можуть працювати як ШІМ-виходи, 12 - як аналогові входи), кварцовий резонатор на 16 МГц, роз'єм мікро-USB, роз'єм живлення , роз'єм для внутрішньосхемного програмування ICSP (In-Circuit Serial Programming) та кнопка скидання. Для початку роботи з Leonardo досить просто подати живлення від AC/DC-адаптера або батареї або підключити його до комп'ютера за допомогою USB-кабелю.

Відмінність Leonardo від усіх попередніх плат полягає в тому, що його USB-контролер вбудований безпосередньо в мікроконтролер ATmega32U4, що виключає необхідність додаткового процесора. Завдяки цьому при підключенні до комп'ютера Leonardo може визначатися не тільки як віртуальний (CDC) COM-порт, а й як звичайна миша або клавіатура. Крім того, така архітектура впливає і на поведінку плати; докладніше про це див. сторінку Початок роботи.

Характеристики:

МікроконтролерATmega32u4
робоча напруга
Напруга живлення (рекомендована)7-12В
Напруга живлення (гранична)6-20В
Цифрові входи/виходи20
Канали ШИМ7
Аналогові входи12
Максимальний струм одного висновку40 мА
Максимальний вихідний струм виведення 3.3V50 мА
Flash-пам'ять32 КБ (ATmega32u4) з яких 4 КБ використовуються завантажувачем
SRAM2.5 КБ (ATmega32u4)
EEPROM1 КБ (ATmega32u4)
Тактова частота16 МГц

Схема та вихідний проект

Arduino Leonardo може бути запитаний від мікро-USB або зовнішнього джерела живлення - тип джерела вибирається автоматично.

Як зовнішнє джерело живлення (не USB) може використовуватися мережний AC/DC-адаптер або акумулятор/батарея. Штекер адаптера (діаметр – 2.1мм, центральний контакт – позитивний) необхідно вставити у відповідний роз'єм живлення на платі. У разі живлення від акумулятора/батареї, її дроти необхідно підключити до висновків Gnd та Vin роз'єму POWER.

Напруга зовнішнього джерела живлення може бути в межах від 6 до 20 В. Однак зменшення напруги живлення нижче 7В призводить до зменшення напруги на виведенні 5V, що може стати причиною нестабільної роботи пристрою. Використання напруги більше 12В може призводити до перегріву стабілізатора напруги та виходу плати з ладу. З огляду на це рекомендується використовувати джерело живлення з напругою в діапазоні від 7 до 12В.

Нижче наведено висновки харчування, розташовані на платі:

  • VIN. Напруга, що надходить в Arduino безпосередньо від зовнішнього джерела живлення (не пов'язана з 5В від USB або іншою стабілізованою напругою). Через цей висновок можна подавати зовнішнє живлення, так і споживати струм, якщо пристрій запитано від зовнішнього адаптера.
  • 5V. Стабілізована напруга 5В, що живить мікроконтролер та інші компоненти на платі. Може чинити як черезстабілізатор напруги живлення VIN, і від USB чи іншого стабілізованого джерела 5В.
  • 3V3. 3.3В, що надходять від стабілізатора напруги на платі. Максимальний вихідний струм, який споживається від цього висновку, становить 50 мА.
  • GND. Висновки землі.
  • IOREF. Робоча напруга цифрових входів/виходів плати (еквівалентна напруги VCC на платі). У Leonardo ця напруга дорівнює 5В.

Об'єм пам'яті програм мікроконтролера ATmega32U4 становить 32 КБ (з них 4 КБ відведено під завантажувач). Крім цього, він має 2.5 КБ оперативної пам'яті SRAM та 1 КБ EEPROM (для взаємодії з якою служить бібліотека EEPROM).

Входи та виходи

З використанням функцій pinMode(), digitalWrite() і digitalRead() кожен із 20 цифрових висновків може працювати як вход або вихід. Робоча напруга висновків – 5В. Максимальний струм, який може віддавати або споживати один висновок, становить 40 мА. Всі висновки пов'язані з внутрішніми резисторами (за замовчуванням відключеними) номіналом 20-50 кОм. Крім основних, деякі висновки Ардуїно можуть виконувати додаткові функції:

  • Послідовний інтерфейс: висновки 0 (RX) і 1 (TX). Зверніть увагу, що Arduino Leonardo класSerial відповідає за передачу даних через USB (CDC)-з'єднання; для передачі даних через висновки 0 та 1 необхідно використовувати класSerial1.
  • TWI: висновки 2 (SDA) і 3 (SCL). З використанням бібліотеки Wire дані висновки можуть здійснювати зв'язок за інтерфейсом TWI.
  • Зовнішні переривання: висновки 3(interrupt 0), 2 (interrupt 1), 0 (interrupt 2), 1 (interrupt 3) і 7 (interrupt 4). сигналу, по фронту, спаду або за зміни сигналу. Для отримання додаткової інформації див. функцію attachInterrupt().
  • ШІМ: висновки 3, 5, 6, 9, 10, 11 і 13. За допомогою функції analogWrite() можуть виводити 8-бітові аналогові значення у вигляді ШІМ-сигналу.
  • Інтерфейс SPI: висновки роз'єму ICSP. З використанням бібліотеки SPI дані висновки дозволяють здійснювати зв'язок за інтерфейсом SPI. Зверніть увагу, що лінії SPI виведені лише на роз'єм ICSP і не з'єднані з висновками плати, як Arduino Uno. Тому, ті SPI-плати розширення, які не мають 6-контактного роз'єму ICSP для приєднання до Leonardo, працювати не будуть.
  • Світлодіод: висновок 13. Вбудований світлодіод, приєднаний до виводу 13. При відправленні значення HIGH світлодіод вмикається, при відправці LOW - вимикається.
  • Аналогові входи: висновки A0 - A5, A6 - A11 (на цифрових висновках 4, 6, 8, 9, 10 і 12). може використовуватись як звичайний цифровий висновок. Аналогові входи A0-A5 розташовані так само, як і на Arduino Uno; а входи A6 - A11 - на цифрових висновках 4, 6, 8, 9, 10 та 12 відповідно. Кожен із входів може уявити аналогову напругу у вигляді 10-бітного числа (1024 різних значення). За умовчанням, вимірювання напруги здійснюється щодо діапазону від 0 до 5 В. Однак, верхню межу цього діапазону можна змінити, використовуючи виведення AREF та функцію analogReference().

Крім перерахованих на платі, існує ще кількависновків:

  • AREF. Опорна напруга для аналогових входів. Може використовуватися функцією analogReference().
  • Reset. Формування низького рівня (LOW) на цьому висновку призведе до перезавантаження мікроконтролера. Зазвичай цей висновок служить для функціонування кнопки скидання на платах розширення

Arduino Leonardo надає низку можливостей для здійснення зв'язку з комп'ютером, ще одним Ардуїном або іншими мікроконтролерами. У ATmega32U4 є приймач UART, що дозволяє здійснювати зв'язок за послідовними інтерфейсами за допомогою цифрових висновків 0 (RX) і 1 (TX). Мікроконтролер 32U4 підтримує послідовний (CDC) зв'язок через USB і при підключенні до комп'ютера може визначатися як віртуальний COM-порт. При цьому мікросхема використовує стандартні драйвери USB-COM і може працювати в режимі USB 2.0 Full Speed. На платформі Windows потрібен лише відповідний .inf-файл. У пакет програмного забезпечення Ардуїно входить спеціальна програма, що дозволяє зчитувати та відправляти на Ардуїно прості текстові дані. Під час передачі даних комп'ютеру через USB на платі блиматимуть світлодіоди RX і TX. (При послідовній передачі даних шляхом висновків 0 і 1 дані світлодіоди не задіяні).

Бібліотека SoftwareSerial дозволяє реалізувати послідовний зв'язок на цифрових висновках Leonardo.

У мікроконтролері ATmega32U4 також реалізовано підтримку послідовних інтерфейсів I2C (TWI) і SPI. До програмного забезпечення Ардуїно входить бібліотека Wire, що дозволяє спростити роботу з шиною I2C; для отримання більш детальної інформації див. Використовуйте бібліотеку SPI для роботи з інтерфейсом SPI.

Leonardo може визначатися як звичайна клавіатура абомиша, і за допомогою бібліотек Keyboard та Mouse може бути запрограмований на керування цими пристроями введення.

Програмування

Arduino Leonardo програмується за допомогою Ардуїно (завантажити). Для цього з менюTools > Board необхідно вибрати "Arduino Leonardo" з мікроконтролером, що відповідає вашій платі. Для отримання більш детальної інформації див. довідку та приклади.

ATmega32U4 в Arduino Leonardo випускається з прошитим завантажувачем, що дозволяє завантажувати в мікроконтролер нові програми без необхідності використання зовнішнього програматора. Взаємодія з ним здійснюється за протоколом AVR109.

Проте мікроконтролер можна прошити і через роз'єм для внутрішньосхемного програмування ICSP (In-Circuit Serial Programming), не звертаючи уваги на завантажувач; Докладніше про це див.

Автоматичний (програмний) скидання та запуск завантажувача

Щоб щоразу перед завантаженням програми не потрібно натискати кнопку скидання, Leonardo спроектований таким чином, що дозволяє здійснювати його скидання програмно з підключеного комп'ютера. Скидання спрацьовує після закриття віртуального COM-порту, який попередньо було відкрито на швидкості 1200 бод. При спрацюванні цієї умови процесор скинеться, розірвавши USB з'єднання з комп'ютером (при цьому віртуальний COM-порт зникне). Після перезавантаження процесора, запускається завантажувач, залишаючись активним протягом приблизно 8 секунд. Крім того, ініціювати завантажувач можна, натиснувши кнопку скидання на платі Leonardo. Зверніть увагу, що при першому включенні пристрою замість запуску завантажувача, контролер відразу перейде до виконання програми користувача (якщо така є).

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

Захист USB від перевантажень

В Arduino Leonardo є запобіжники, що відновлюються, що захищають USB-порт комп'ютера від коротких замикань і перевантажень. Незважаючи на те, що більшість комп'ютерів мають власний захист, такі запобіжники забезпечують додатковий рівень захисту. Якщо від USB-порту споживається струм більше 500 мА, запобіжник автоматично розірве з'єднання до усунення причин короткого замикання або перевантаження.

Фізичні характеристики

Максимальна довжина та ширина друкованої плати Leonardo складає 6.9 см і 5.4 см відповідно, з урахуванням роз'єму USB та роз'єму живлення, що виступають за межі плати. Чотири отвори кріплення дозволяють прикріплювати плату до поверхні або корпусу. Зверніть увагу, що відстань між цифровими висновками 7 і 8 не є традиційною 2.54 мм і становить 4 мм.