Arduino Leonardo

Отладочная плата Arduino Leonardo построена на микроконтроллере ATmega32u4. Она имеет 20 цифровых входных/выходных выводов (7 из которых могут использоваться в качестве ШИМ выходов и 16 в качестве аналоговых входов), кварцевый резонатор 16 МГц, подключение USB, разъем питания, разъем ICSP и кнопку перезагрузки. Она содержит всё необходимое для работы с микроконтроллером; для того, чтобы начать работу с ней, просто подключите ее к компьютеру с помощью USB кабеля или подайте питание от блока питания AC/DC или от батареи.

Arduino Leonardo отличается от всех предыдущих плат тем, что ATmega32u4 имеет встроенные средства для связи через USB, устраняющие необходимость в дополнительном процессоре. Это позволяет в дополнение к виртуальному (CDC) последовательному COM порту подключать Arduino Leonardo к компьютеру, как мышь или клавиатуру, или использовать Arduino Leonardo в других применениях.

Arduino Leonardo
Arduino Leonardo

Технические характеристики

Микроконтроллер ATMega32u4
Рабочее напряжение 5 В
Входное напряжение (рекомендуемое) 7-12 В
Входное напряжение (предельное) 6-20 В
Цифровые входные/выходные выводы 20
ШИМ каналы 7
Аналоговые входные выводы 12
Постоянный ток через входные/выходные выводы 40 мА
Постоянный ток через вывод 3,3 В 50 мА
Флеш-память 32 Кб (ATmega32u4), из которых 4 Кб используются загрузчиком
Оперативная память SRAM 2,5 Кб
Энергонезависимая память EEPROM 1 Кб
Тактовая частота 16 МГц
Длина 68,6 мм
Ширина 53,3 мм
Вес 20 г

Документация

Схемы, разводка платы

Питание

Arduino Leonardo может получать питание либо через подключение microUSB, либо от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее (не USB) питание может подаваться либо от AC/DC адаптера, либо от батареи. Адаптер может быть подключен с помощью 2,1 мм разъема питания с положительным контактом в центре. Питание от батареи может быть подано на выводы Vin и GND разъема POWER.

Плата может работать от внешнего питания от 6 до 20 вольт. Если подается питание меньше, чем 7 вольт, то на выводе 5V питание может составлять менее пяти вольт, и плата может начать работать нестабильно. Если используется питание более 12В, регулятор напряжения может перегреться и повредить плату. Рекомендуется использовать напряжение питания в диапазоне от 7 до 12 вольт.

Выводы питания:

  • Vin. Вход питания платы при использовании внешнего источника питания (используется при отсутствии 5 вольт от USB подключения или от другого регулируемого источника питания). Вы можете подать питание через этот вывод, или, если напряжение питания подается через разъем питания, то это напряжение 5В будет доступно и на этом выводе.
  • 5V. С этого вывода можно взять регулируемое напряжение 5В с выхода регулятора на плате. Плата может питаться через разъем питания (7–12В), через USB разъем (5В) или через вывод Vin на плате (7–12В). Подача напряжения через выводы 5V и 3.3V обходит регулятор и может повредить плату. Поэтому не советуем подавать питание на плату через эти выводы.
  • 3V3. Питание 3,3 вольта, выдаваемое регулятором на плате. Максимальный ток 50 мА.
  • GND. Выводы земли.
  • IOREF. Этот вывод обеспечивает опорное напряжение, с которым работает микроконтроллер. Правильно, сконфигурированная плата расширения, может прочитать напряжение на выводе IOREF и выбрать подходящий источник питания или перевести буферы выходов для работы с напряжением либо 5В, либо 3,3В.

Память

ATmega32u4 обладает 32 килобайтами флэш-памяти для хранения кода программы (из которых 4 килобайт используется загрузчиком), 2,5 килобайтами SRAM и 1 килобайтом EEPROM (которая может быть считана и записана с помощью библиотеки EEPROM).

Входы и выходы

Диаграмма соответствия выводов Arduino Leonardo и ATmega32U4
Диаграмма соответствия выводов Arduino Leonardo и ATmega32U4
Таблица соответствия выводов Arduino Leonardo и ATmega32U4
Номер вывода Atmega32U4 Название вывода ATmega32U4 Соответствующий вывод на Arduino Leonardo
1 PE6 (INT.6/AIN0) Цифровой вывод 7
2 UVcc +5V
3 D- RD-
4 D+ RD+
5 UGnd UGND
6 UCap UCAP
7 VUSB VBus
8 (SS/PCINT0) PB0 RXLED
9 (PCINT1/SCLK) PB1 SCK
10 (PDI/PCINT2/MOSI) PB2 MOSI
11 (PDO/PCINT3/MISO) PB3 MISO
12 (PCINT7/OC0A/OC1C/#RTS) PB7 Цифровой вывод 11 (PWM)
13 RESET RESET
14 Vcc +5V
15 GND GND
16 XTAL2 XTAL2
17 XTAL1 XTAL1
18 (OC0B/SCL/INT0) PD0 Цифровой вывод 3 (SCL)(PWM)
19 (SDA/INT1) PD1 Цифровой вывод 2 (SDA)
20 (RX D1/AIN1/INT2) PD2 Цифровой вывод 0 (RX)
21 (TXD1/INT3) PD3 Цифровой вывод 1 (TX)
22 (XCK1/#CTS) PD5 TXLED
23 GND1 GND
24 AVCC AVCC
25 (ICP1/ADC8) PD4 Цифровой вывод 4
26 (T1/#OC4D/ADC9) PD6 Цифровой вывод 12
27 (T0/OC4D/ADC10) PD7 Цифровой вывод 6 (PWM)
28 (ADC11/PCINT4) PB4 Цифровой вывод 8
29 (PCINT5/OC1A/#OC4B/ADC12) PB5 Цифровой вывод 9 (PWM)
30 (PCINT6/OC1B/OC4B/ADC13) PB6 Цифровой вывод 10 (PWM)
31 (OC3A/#0C4A) PC6 Цифровой вывод 5 (PWM)
32 (ICP3/CLK0/)0C4A) PC7 Цифровой вывод 13 (PWM)
33 (#HWB) PE2 HWB
34 Vcc1 +5V
35 GND2 GND
36 (ADC7/TDI) PF7 Аналоговый вход 0
37 (ADC6/TDO) PF6 Аналоговый вход 1
38 (ADC5/TMS) PF5 Аналоговый вход 2
39 (ADC4/TCK) PF4 Аналоговый вход 3
40 (ADC1) PF1 Аналоговый вход 4
41 (ADC0) PF0 Аналоговый вход 5
42 AREF AEF
43 GND3 GND
44 AVCC1 AVCC

Каждый из 20 цифровых выводов Arduino Leonardo может быть использован и как вход, и как выход, с помощью функций pinMode(), digitalWrite() и digitalRead. Они работают с напряжением 5 вольт. Каждый вывод может пропускать максимальный ток 40 мА и имеет внутренний подтягивающий резистор (по умолчанию отключен) 20–50 кОм.

Также некоторые выводы обладают специальными функциями:

  • последовательный порт: 0 (RX) и 1 (TX). Выводы используются для приема (RX) и передачи (TX) последовательных данных с TTL уровнями с помощью аппаратных возможностей ATmega32U4. Обратите внимание, что для Arduino Leonardo класс Serial ссылается на USB (CDC) связь; для последовательной TTL связи через выводы 0 и 1 используйте класс Serial1;
  • TWI: 2 (SDA) и 3 (SCL). Поддерживают связь через TWI с помощью библиотеки Wire;
  • внешние прерывания: 3 (прерывание 0), 2 (прерывание 1), 0 (прерывание 2), 1 (прерывание 3) и 7 (прерывание 4). Эти выводы могут быть сконфигурированы для вызова прерывания по фронту или по спаду импульса или по изменению уровня на выводе. Смотрите работу с прерываниями на Arduino для более подробной информации;
  • ШИМ: выводы 3, 5, 6, 9, 10, 11 и 13. Обеспечивают 8-битный ШИМ выход с помощью функции analogWrite();
  • SPI: через разъем ICSP. Эти выводы поддерживают связь через SPI с помощью соответствующей библиотеки. Обратите внимание, что SPI выводы не подключены к каким-либо цифровым входным/выходным выводам, как на Arduino Uno. Они доступны только на разъеме ICSP. Это означает, что, если у вас есть плата расширения, использующая SPI, но у которой нет 6-пинового разъема ICSP, который подключается к 6-пиновому разъему ICSP на Arduino Leonardo, то эта плата работать не будет;
  • светодиод: 13. Встроенный светодиод подключен к цифровому выводу 13. При высоком уровне на выводе светодиод загорается, при низком – гаснет;
  • аналоговые входы: A0–A5, A6–A11 (на цифровых выводах 4, 6, 8, 9, 10 и 12). Arduino Leonardo имеет 12 аналоговых входов, обозначенных от A0 до A11, все из которых могут также использоваться в качестве цифровых входов/выходов. Выводы A0–A5 находятся на том же месте, что и на Arduino Uno; входы A6–A11 – на цифровых входных/выходных выводах 4, 6, 8, 9, 10 и 12 соответственно. Каждый аналоговый вход обеспечивает 10-битное разрешение (т.е. 1024 разных значений). По умолчанию они измеряют напряжение от 0 до 5 вольт, хотя можно изменить верхнюю границу их диапазона, используя вывод AREF и функцию analogReference().

И еще пара выводов на плате:

  • AREF. Опорное напряжение для аналоговых входов. Используется совместно с analogReference();
  • Reset. Низкий уровень на этом выводе приводит к перезагрузке микроконтроллера. Обычно используется для добавления кнопки сброса на платы расширения, закрывающей доступ к кнопке сброса на самой плате Arduino.

Связь

Плата Arduino Leonardo обладает рядом возможностей для связи с компьютером, с другой платой или с другими микроконтроллерами. ATmega32U4 обеспечивает аппаратный UART порт, доступный на цифровых выводах 0 (RX) и 1 (TX), для последовательной связи с TTL уровнями (5 вольт). ATmega32U4 также позволяет использовать последовательную (CDC) связь через USB и отображается на компьютере, как виртуальный COM порт. Микросхема также действует, как полноскоростное USB 2.0 устройство, использующее стандартные USB COM драйвера. Windows машинам понадобится inf-файл. Arduino IDE включает в себя монитор последовательного порта, который позволяет посылать и принимать от платы простые текстовые данные. Светодиоды RX и TX на плате загораются при передаче данных через микросхему ATmega8U2/ATmega16U2 и USB соединение (но не при передаче данных через выводы 0 и 1 последовательного порта).

Библиотека SoftwareSerial позволяет организовать последовательную связь через любые цифровые выводы Arduino Leonardo.

Arduino Leonardo также поддерживает связь через TWI и SPI. Arduino IDE включает в себя библиотеку Wire для упрощения использования шины TWI. Для связи через SPI используется библиотека SPI.

Arduino Leonardo отображается, как стандартные клавиатура и мышь, и может быть запрограммирована для управления этими устройствами ввода с помощью классов Keyboard и Mouse.

Программирование

Arduino Leonardo может быть запрограммирована с помощью Arduino IDE. Выберите "Arduino Leonardo" в меню Инструменты → Плата (согласно микроконтроллеру на вашей плате).

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

Вы можете также обойти загрузчик и прошить микроконтроллер через разъем ICSP (внутрисхемное последовательное программирование) с помощью программатора Arduino ISP или аналога.

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

Вместо того, чтобы требовать физического нажатия кнопки перезагрузки перед прошивкой кода новой программы, Arduino Leonardo спроектирована таким образом, что она позволяет перезагружать ее с помощью программного обеспечения, запущенного на подключенном компьютере. Перезагрузка вызывается, когда на Arduino Leonardo виртуальный (CDC) последовательный COM порт сначала открывается со скоростью 1200 бод, а затем закрывается. Когда это происходит, процессор перезагружается, разрывая USB соединение с компьютером (то есть виртуальный последовательный COM порт исчезает). После перезагрузки процессора, запускается загрузчик и остается в активном состоянии около 8 секунд. Загрузчик также может быть запущен нажатием кнопки перезагрузки на Arduino Leonardo. Обратите внимание, что при подаче напряжения питания на плату Arduino Leonardo сразу переходит к выполнению пользовательской программы (если та загружена) без запуска загрузчика.

Из-за этого способа обработки перезагрузки платой Arduino Leonardo лучше всего позволить Arduino IDE попытаться вызвать перезагрузку перед прошивкой, особенно если вы привыкли нажимать кнопку перезагрузки перед прошивкой на других платах. Если IDE не может перезагрузить плату, вы всегда можете запустить загрузчик нажатием кнопки перезагрузки на плате.

Защита от перегрузки по току при питании через USB

Arduino Leonardo имеет самовосстанавливающийся предохранитель, который защищает USB порты вашего компьютера от короткого замыкания и перегрузки по току. Несмотря на то, что большинство компьютеров обеспечивают свою собственную внутреннюю защиту, этот предохранитель дает дополнительный уровень защиты. Если ток через USB порт превышает 500 мА, предохранитель автоматически разрывает соединение, пока короткое замыкание или перегрузка не будут устранены.

Магазины и цены

Цены наArduino Leonardo
Товар в магазине Количество штук в комплекте Стоимость Расчетная стоимость за 1 шт.
Arduino Leonardo наAliExpress 1 277.32 руб. /4.1 USD
(на25 ноября 2018)
277.32 руб. /4.1 USD
Arduino Leonardo наAliExpress 1 312.49 руб. /4.62 USD
(на25 ноября 2018)
312.49 руб. /4.62 USD
Arduino Leonardo наeBay 1 348.34 руб. /5.54 USD
(на1 октября 2016)
348.34 руб. /5.54 USD
Arduino Leonardo наAliExpress 1 356.46 руб. /5.27 USD
(на25 ноября 2018)
356.46 руб. /5.27 USD
Arduino Leonardo наDX.com 1 575.88 руб. /9.12 USD
(на1 октября 2016)
575.88 руб. /9.12 USD