Arduino Leonardo
Отладочная плата Arduino Leonardo построена на микроконтроллере ATmega32u4. Она имеет 20 цифровых входных/выходных выводов (7 из которых могут использоваться в качестве ШИМ выходов и 16 в качестве аналоговых входов), кварцевый резонатор 16 МГц, подключение USB, разъем питания, разъем ICSP и кнопку перезагрузки. Она содержит всё необходимое для работы с микроконтроллером; для того, чтобы начать работу с ней, просто подключите ее к компьютеру с помощью USB кабеля или подайте питание от блока питания AC/DC или от батареи.
Arduino Leonardo отличается от всех предыдущих плат тем, что ATmega32u4 имеет встроенные средства для связи через USB, устраняющие необходимость в дополнительном процессоре. Это позволяет в дополнение к виртуальному (CDC) последовательному COM порту подключать 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 Rev3b для САПР EAGL;
- Arduino Leonardo Rev3b. Схема электрическая принципиальная;
Питание
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
Номер вывода 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 мА, предохранитель автоматически разрывает соединение, пока короткое замыкание или перегрузка не будут устранены.
Магазины и цены
Товар в магазине | Количество штук в комплекте | Стоимость | Расчетная стоимость за 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 |