Arduino Leonardo

Arduino Leonardo — это плата схожая по характеристикам с Arduino Uno, но с несколько отличающимся микроконтроллером и его обвязкой.

В качестве микроконтроллера используется ATmega32u4. Он же используется и в качестве USB-UART преобразователя для прошивки. Этим Arduino Leonardo выделяется среди остальных плат Arduino, где для коммуникации используется дополнительный микроконтроллер. Это имеет следующие последствия:

  • Arduino Leonardo смотрит в сторону USB через виртуальный serial-порт, не через аппаратный. Это означает, что 0-й и 1-й контакты аппаратного порта остаются свободными и вы можете использовать их одновременно с коммуникацией с компьютером. Виртуальный serial-порт доступен через класс Serial, а аппаратный — через класс Serial1.
  • При сбросе микроконтроллера его соединение с компьютером теряется и поднимается заново. Это усложняет процесс прошивки, но не должно являться особой проблемой, т.к. Arduino IDE поддерживает этот процесс.
  • При открытии serial-соединения с компьютера загруженный скетч не перезагружается. Это означает, что если вы отсылаете данные по serial до реального открытия соединения, они уйдут в никуда и вы не сможете их увидеть.
  • С точки зрения компьютера Arduino Leonardo является HID устройством (вроде клавиатуры или мыши), поэтому сделать на основе Arduino Leonardo новый компьютерный эмулятор проще, чем с другими платами

Кроме того, в сравнении с Arduino Uno есть различия в распиновке:

  • SPI-интерфейс присутствует только на ICSP-контактах и не продублирован на цифровых контактах. Это означает, что если плата расширения использует SPI и не имеет снизу ICSP-разъёма ответного к этим штырькам на Arduino, она работать не будет.
  • TWI / I²C контакты номинально находятся на контактах 2 (SDA) и 3 (SCL). Это означает, что если плата расширения работает через TWI и для коммуникации использует не специальные TWI-контакты, появившиеся начиная с версий плат Rev 3, а напрямую контакты A4 и A5, она работать не будет.
  • Контакты 4, 6, 8, 9, 10 и 12 подключены к АЦП, а следовательно могут быть использованы как аналоговые входы (A6-A11) в дополнение к обычным A0-A5

По габаритам и допустимому вольтажу плата идентична Arduino Uno.

Если вы новичок и сомневаетесь в выборе между Arduino Leonardo и Arduino Uno — берите Arduino Uno, с ним проще работать, а уровень совместимости с другими железками выше.

Сравнительная таблица

Uno Leonardo
Микроконтроллер ATmega328p ATmega32u4
Количество цифровых входов/выходов 20 20
…из них ШИМ поддерживают 6 7
Количество аналоговых входов 6 12
Количество контактов для аппаратного прерывания 2 5
Объём Flash-памяти (кБ) 32 32
Объём SRAM-памяти (кБ) 2 2,5
Объём EEPROM-памяти (кБ) 1 1
Тактовая частота (МГц) 16 16
Количество аппаратных serial-портов 1 1
USB-разъём Type B micro-USB