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 Кб используются загрузчиком
Оперативная память SRAM2,5 Кб
Энергонезависимая память EEPROM1 Кб
Тактовая частота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
1PE6 (INT.6/AIN0)Цифровой вывод 7
2UVcc+5V
3D-RD-
4D+RD+
5UGndUGND
6UCapUCAP
7VUSBVBus
8(SS/PCINT0) PB0RXLED
9(PCINT1/SCLK) PB1SCK
10(PDI/PCINT2/MOSI) PB2MOSI
11(PDO/PCINT3/MISO) PB3MISO
12(PCINT7/OC0A/OC1C/#RTS) PB7Цифровой вывод 11 (PWM)
13RESETRESET
14Vcc+5V
15GNDGND
16XTAL2XTAL2
17XTAL1XTAL1
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) PD5TXLED
23GND1GND
24AVCCAVCC
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) PE2HWB
34Vcc1+5V
35GND2GND
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
42AREFAEF
43GND3GND
44AVCC1AVCC

Каждый из 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 на AliExpress1 277.32 руб. / 4.1 USD
(на 25 ноября 2018)
277.32 руб. / 4.1 USD
Arduino Leonardo на AliExpress1 312.49 руб. / 4.62 USD
(на 25 ноября 2018)
312.49 руб. / 4.62 USD
Arduino Leonardo на eBay1 348.34 руб. / 5.54 USD
(на 1 октября 2016)
348.34 руб. / 5.54 USD
Arduino Leonardo на AliExpress1 356.46 руб. / 5.27 USD
(на 25 ноября 2018)
356.46 руб. / 5.27 USD
Arduino Leonardo на DX.com1 575.88 руб. / 9.12 USD
(на 1 октября 2016)
575.88 руб. / 9.12 USD

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.