Arduino Nano: устройство платы, питание, выводы и память

Arduino Nano: устройство платы, питание, выводы и память

Компактная плата на ATmega328 почти не уступает Arduino Uno. Разбираем её состав, способы питания, порты ввода-вывода и типичные затруднения.

Компактная плата с возможностями Uno

Arduino Nano — небольшая отладочная плата размером 4,3 х 1,85 см, одна из трёх самых популярных в семействе. По функциям она практически не уступает Arduino Uno, поэтому её берут в проекты, где важны габариты. Ранние версии строились на микроконтроллере ATmega168, а начиная с версии 3.0 ставится ATmega328 с увеличенным объёмом памяти.

Плата Arduino Nano V3.0

Выводы оформлены штыревыми колодками: так удобнее макетировать и ставить платы расширения, которых для Nano выпущено очень много — есть в том числе шилд для станка с ЧПУ или 3D-принтера. Колодки можно и не устанавливать, припаяв провода прямо к контактным площадкам.

Что размещено на плате

Чтобы сэкономить место, детали стоят с обеих сторон. На лицевой находятся микроконтроллер, кварцевый резонатор, разъём Mini-USB, кнопка сброса и четыре светодиода. TX и RX мигают при обмене по последовательному порту, PWR показывает наличие питания, а L — индикатор общего назначения, который загорается при высоком уровне на выводе 13. На обратной стороне размещены линейный стабилизатор на 5 В и преобразователь USB-интерфейса.

Расположение основных компонентов на плате Arduino Nano

Подключение к компьютеру и загрузка скетчей

Работа с Nano почти не отличается от работы с Uno. При первом подключении обычно нужно установить драйвер микросхемы CH340 — преобразователя USB-to-Serial, который стоит в большинстве модификаций и реплик платы. Затем в Arduino IDE выбирают тот тип микроконтроллера, который действительно установлен: ATmega168 или ATmega328.

Выбор типа микроконтроллера Arduino Nano в Arduino IDE

Если всё сделано верно, в меню «Инструменты — Порт» появляется виртуальный COM-порт платы, и скетч загружается одной кнопкой. Бывает, что среда видит плату, драйвер установлен, а загрузка завершается ошибкой. В части таких случаев помогает выбор процессора ATmega328 с пометкой Old Bootloader — эта опция появилась в версиях Arduino IDE после 1.6.20.

Предусмотрено и внутрисхемное программирование через разъём ICSP, для него нужен отдельный программатор — например, USB-ASP, STK500 или AVRISP. Этим же способом ускоряют запуск платы после подачи питания: загрузчик стирают и прошивают микроконтроллер напрямую.

Питание и допустимые нагрузки

Плату питают одним из двух способов: через USB от компьютера или другого источника на 5 В либо от внешнего стабилизированного источника, подключённого ко входу VIN. Во втором случае допустимо 6–20 В, рекомендуется 7–12 В. Если подключены оба источника, плата использует тот, чей потенциал выше. Общий минус — вывод GND.

Для мелкой периферии есть выводы 5V и 3.3V. Пять вольт формирует линейный стабилизатор LM1117IMPX-5.0. Напряжение 3,3 В берётся с четвёртого вывода микросхемы CH340G, отдельного стабилизатора для него, в отличие от Uno, нет. Поэтому линия 3,3 В работает только при питании от USB; при питании через VIN её получают внешним модулем преобразователя.

Электрическая схема платы Arduino Nano

Порты рассчитаны на напряжения 0–5 В. Превышение может вывести микроконтроллер из строя, несмотря на встроенные ограничительные диоды. Один вывод отдаёт не более 40 мА, а суммарный ток всех выводов не должен превышать 200 мА.

Цифровые и аналоговые выводы

Цифровых контактов 14, они обозначены буквой D. Направление задаёт функция pinMode() с параметром OUTPUT, INPUT или INPUT_PULLUP — в последнем случае включается внутренняя подтяжка к питанию. Уровень на выходе устанавливает digitalWrite(), состояние входа читает digitalRead().

Выводы D3, D5, D6, D9, D10 и D11 умеют формировать ШИМ. Вызов analogWrite(3, 128) даёт сигнал с заполнением 50%, значение 0 соответствует логическому нулю, 255 — логической единице.

Аналоговых входов восемь, A0–A7, они подключены к 10-битному АЦП. Функция analogRead() возвращает число от 0 до 1023, что при диапазоне 0–5 В даёт шаг около 0,0048 В. Более высокие напряжения измеряют через резистивный делитель. Часть аналоговых входов может работать как цифровые в обоих направлениях, но A6 и A7 действуют только на вход — это стоит учитывать при разработке. У некоторых выводов есть и альтернативные функции: шины SPI, I2C, Serial. Их включают встроенными библиотеками Arduino IDE или прямой работой с регистрами.

Память

Как и у всех AVR, память разделена на три вида. Flash хранит прошивку, а иногда и константы вроде строк меню, чтобы не занимать оперативную память. EEPROM сохраняет данные при отключении питания и используется для настроек; библиотека подключается строкой #include <EEPROM.h>. SRAM содержит переменные во время выполнения программы и обнуляется при выключении. Оперативная память у начинающих расходуется быстро, поэтому за типами данных следят с самого начала.

Flash-память16 кБ32 кБ
Занято загрузчиком2 кБ2 кБ
EEPROM512 байт1 кБ
SRAM1 кБ2 кБ

В итоге Nano остаётся законченным полнофункциональным устройством: при гораздо меньших размерах она даёт почти те же возможности, что и Uno, а множество библиотек и литературы упрощает работу с ней.

← Все статьи