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 плеера:
