Arduino Leonardo — это плата, схожая по характеристикам с Uno, но с несколько отличающимся микроконтроллером и его обвязкой.
В качестве микроконтроллера используется ATmega32u4. Он же используется и в качестве USB-UART преобразователя для прошивки. Этим Arduino Leonardo выделяется среди остальных плат Arduino, где для коммуникации используется дополнительный микроконтроллер. Это имеет следующие последствия:
- Arduino Leonardo смотрит в сторону USB через виртуальный serial-порт, не через аппаратный. Это означает, что 0-й и 1-й контакты аппаратного порта остаются свободными и вы можете использовать их одновременно с коммуникацией с компьютером. Виртуальный serial-порт доступен через класс Serial, а аппаратный — через класс Serial1.
- При сбросе микроконтроллера его соединение с компьютером теряется и поднимается заново. Это усложняет процесс прошивки, но не должно являться особой проблемой, т.к. Arduino IDE поддерживает этот процесс.
- При открытии serial-соединения с компьютера загруженный скетч не перезагружается. Это означает, что если вы отсылаете данные по serial до реального открытия соединения, они уйдут в никуда и вы не сможете их увидеть.
- С точки зрения компьютера Arduino Leonardo является HID устройством (вроде клавиатуры или мыши), поэтому сделать на основе 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 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 |
Ресурсы
Arduino Leonardo в проекте RFID плеера: