Arduino Leonardo

Arduino UNO
Arduino UNO

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

В отличие от всех предыдущих плат ATmega32u4 имеет встроенную поддержку для USB соединения, это позволяет задать как Leonardo будет виден при подключение к компьютеру, это может быть клавиатура, мышь, виртуальный серийный / COM порт.


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

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


Питание

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

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с центральным положительным полюсом. Провода от батареи подключаются к выводам Gnd и Vin разъема питания.

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

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

  • VIN. Вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод.
  • 5V. Регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.
  • 3.3V. Напряжение на выводе 3.3 В генерируемое встроенным регулятором на плате. Максимальное потребление тока 50 мА.
  • GND. Выводы заземления.
  • IOREF. Вывод с рабочим напряжением вход/выходов платы. Для Leonardo это 5 В. Предполагается к использованию платами расширения для правильного выбора рабочего напряжения.


Память

Микроконтроллер ATmega32u4 располагает 32 кБ флешь памяти, из которых 4 кБ используется для хранения загрузчика, а также 2.5 кБ ОЗУ (SRAM) и 1 Кб EEPROM.(которая читается и записывается с помощью библиотеки EEPROM).


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

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

Некоторые выводы имеют особые функции:

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

Дополнительная пара выводов платформы:

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


Связь

На платформе Arduino Leonardo может устанавливать связь с компьютером, другими устройствами Arduino или микроконтроллерами несколькими способами. ATmega32U4 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). ATmega32U4 позволяет также организовать последовательное соединение с программами на стороне компьютера через USB так, чтобы они "общались" с платой через виртуальный COM порт. Leonardo c помощью стандартных драйверов USB COM (для Windows потребуется .inf файл) может подключаться как USB 2.0 устройство. Мониторинг последовательной шины (Serial Monitor) среды разработки Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).

Библиотекой SoftwareSerial возможно создать последовательную передачу данных через любой из цифровых выводов Leonardo.

ATmega32U4 поддерживает интерфейсы I2C (TWI) и SPI. В Arduino включена библиотека Wire для удобства использования шины I2C. Для SPI может использоваться библиотека SPI.

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


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

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


Токовая защита разъема USB

В Arduino Leonardo встроен само восстанавливающийся предохранитель, защищающий порт USB компьютера от токов короткого замыкания и сверх токов. Хотя практически все компьютеры имеют подобную защиту, тем не менее, данный предохранитель обеспечивает дополнительный барьер. Предохранитель срабатывает при прохождении тока более 500 мА через USB порт и размыкает цепь до тех пока нормальные значения токов не будут восстановлены.


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

Размер печатной платы Leonardo составляют 6.9 на 5.3 см. Разъем USB и силовой разъем выходят за границы данных размеров. Четыре отверстия в плате позволяют закрепить ее на поверхности. Расстояние между цифровыми выводами 7 и 8 равняется 0.4 см, хотя между другими выводами оно составляет 0.25 см.

Расскажи о нас

Сообщение

Если у Вас есть опыт в работе с Arduino и собственно есть время для творчества, мы приглашаем всех желающих стать авторами статей публикуемых на нашем портале. Это могут быть как уроки, так и рассказы о ваших экспериментах с Arduino. Описание различных датчиков и модулей. Советы и наставления начинающим. Пишите и размещайте свои статьи в соответсвующей ветке форума.