Напряжение питания ардуино нано

Arduino.ru

Плата контроллер Arduino NanoПлата Arduino Nano

Платформа Nano, построенная на микроконтроллере ATmega328 (Arduino Nano 3.0) или ATmega168 (Arduino Nano 2.x), имеет небольшие размеры и может использоваться в лабораторных работах. Она имеет схожую с Arduino Duemilanove функциональность, однако отличается сборкой. Отличие заключается в отсутствии силового разъема постоянного тока и работе через кабель Mini-B USB. Nano разработана и продается компанией Gravitech.

Принципиальные схемы и исходные данные

Arduino Nano 3.0 (ATmega328): схемы и файлы Eagle.

Arduino Nano 2.3 (ATmega168): руководство (pdf) и файлы Eagle. Примечание: т.к. свободная версия файлов Eagle не позволяет работать более чем с двумя слоями, а данная версия схем Nano содержит четыре слоя, то схемы публикуются не трассированными.

Краткие характеристики

Atmel ATmega168 или ATmega328
Рабочее напряжение (логическая уровень)
Входное напряжение (рекомендуемое)
Входное напряжение (предельное)
Цифровые Входы/Выходы
14 (6 из которых могут использоваться как выходы ШИМ)
Постоянный ток через вход/выход
16 Кб (ATmega168) или 32 Кб (ATmega328) при этом 2 Кб используются для загрузчика
1 Кб (ATmega168) или 2 Кб (ATmega328)
512 байт (ATmega168) или 1 Кб (ATmega328)

Питание:

Arduino Nano может получать питание через подключение Mini-B USB, или от нерегулируемого 6-20 В (вывод 30), или регулируемого 5 В (вывод 27), внешнего источника питания. Автоматически выбирается источник с самым высоким напряжением.

Микросхема FTDI FT232RL получает питание, только если сама платформа запитана от USB. Таким образом при работе от внешнего источника (не USB), будет отсутствовать напряжение 3.3 В, генерируемое микросхемой FTDI, при этом светодиоды RX и TX мигаю только при наличие сигнала высокого уровня на выводах 0 и 1.

Память

Микроконтроллер ATmega168 имеет 16 кБ флеш-памяти для хранения кода программы, а микроконтроллер ATmega328, в свою очередь, имеет 32 кБ (в обоих случаях 2 кБ используется для хранения загрузчика). ATmega168 имеет 1 кБ ОЗУ и 512 байт EEPROM (которая читается и записывается с помощью библиотеки EEPROM), а ATmega328 – 2 кБ ОЗУ и 1 Кб EEPROM.

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

Arduino Nano лицевая сторонаArduino Nano обратная сторона

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

  • Последовательная шина: 0 (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины FTDI USB-to-TTL.
  • Внешнее прерывание: 2 и 3. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachInterrupt().
  • ШИМ: 3, 5, 6, 9, 10, и 11. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, которая, хотя и поддерживается аппаратной частью, не включена в язык Arduino.
  • LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.

На платформе Nano установлены 8 аналоговых входов, каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел посредством функции analogReference(). Некоторые выводы имеют дополнительные функции:

  • I2C: A4 (SDA) и A5 (SCL). Посредством выводов осуществляется связь I2C (TWI). Для создания используется библиотека Wire (информация на сайте Wiring).

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

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

На платформе Arduino Nano установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega168 и ATmega328 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). Установленная на плате микросхема FTDI FT232RL направляет данный интерфейс через USB, а драйверы FTDI (включены в программу Arduino) предоставляют виртуальный COM порт программе на компьютере. Мониторинг последовательной шины (Serial Monitor) программы Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через микросхему FTDI или USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).

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

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

Программирование

Платформа программируется посредством ПО Arduino. Из меню Tools > Board выбирается «Arduino Diecimila, Duemilanove или Nano w/ ATmega168» или «Arduino Duemilanove или Nano w/ ATmega328» (согласно установленному микроконтроллеру). Подробная информация находится в справочнике и инструкциях.

Микроконтроллеры ATmega168 и ATmega328 поставляются с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500.

Имеется возможность не использовать загрузчик и запрограммировать микроконтроллер через выводы блока ICSP (внутрисхемное программирование). Подробная информация находится в данной инструкции.

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

Nano разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой, а не нажатием кнопки на платформе. Одна из линий FT232RL, управляющих потоком данных (DTR), подключена к выводу перезагрузки микроконтроллеров ATmega168 или ATmega328 через конденсатор 100 нФ. Активация данной линии, т.е. подача сигнала низкого уровня, перезагружает микроконтроллер. Программа Arduino, используя данную функцию, загружает код одним нажатием кнопки Upload в самой среде программирования. Подача сигнала низкого уровня по линии DTR скоординирована с началом записи кода, что сокращает таймаут загрузчика.

Функция имеет еще одно применение. Перезагрузка Nano происходит каждый раз при подключении к программе Arduino на компьютере с ОС Mac X или Linux (через USB). Следующие полсекунды после перезагрузки работает загрузчик. Во время программирования происходит задержка нескольких первых байтов кода во избежание получения платформой некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча, записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере ожидает в течение секунды перед передачей данных.

Питание схемы

Питание электронного компонента или Ардуино-модуля всегда состоит из двух проводов:

  • “Плюс”: +5V или +3.3V. Может быть подписан на плате как 5V, 3.3V, 3V3, Vin, VCC, +. Провод на схеме изображается красным цветом.
  • “Минус”: общий провод, 0V. Может быть подписан на плате как GND, COM, G, -. Провод на схеме изображается синим или чёрным цветом.

Несколько моментов о питании:

  • Нельзя превышать напряжение питания электронного компонента, иначе он сгорит. То есть провод с 5V нельзя подключать на пин, на котором написано 3V. А вот наоборот – можно: большинство модулей с питанием 5V будут работать от 3.3V. Это будет актуально при работе с платами на базе esp8266, которая работает от 3.3V.
  • Подключать питание нужно очень внимательно: минус соединяется с минусом, а плюс – с плюсом. Если перепутать провода – в 99% случаев модуль сгорит, защиту на них делают редко.
  • Даже если напряжение питания у модулей разное, выводы GND всех компонентов схемы должны быть соединены вместе, потому что сигналы “ходят” относительно нулевого провода .
  • В Ардуино-проекте мы чаще всего используем макетку и подключаем питание всех модулей к выводам питания платы Arduino. Если в проекте используется несколько модулей, то отверстий для проводов питания может не хватить! Именно для этого по краям макетки сделаны длинные линии контактов с подписями плюс и минус: можно подключить питание от платы к ним, и уже от них разводить на остальные компоненты. Это будет называться шиной питания :

blank

Внимание! Перед сборкой схемы или изменением существующей обязательно отключайте питание: USB кабель от Arduino и/или внешний источник. Случайное касание платы проводом может привести к выходу компонента из строя!

Ток потребления схемы

Все знают закон Ома, но не все умеют им пользоваться. Применительно к источникам питания и потребителям он работает так: потребитель берёт такой ток, какой ему нужен для работы, он называется ток потребления:

  • Сервопривод: ~500 мА во время движения
  • Реле: ~60 мА при активации
  • Датчики-модули ~1-10 мА
  • Мотор: ~500 мА
  • Плата Arduino: ~20 мА
  • Плата Wemos: ~50 мА
  • Дисплеи: ~40 мА

При подключении в схему нескольких компонентов их ток потребления суммируется.

Источник питания в свою очередь имеет такой параметр как максимальный ток, который он может отдать без повреждений. Суммарный ток потребления компонентов схемы должен быть меньше, чем максимальный ток источника питания, иначе источнику питания будет “тяжело”. Также это означает, что можно спокойно подключать слабенький датчик хоть к 100 Амперному источнику питания, он возьмёт столько, сколько ему надо. Остальное останется “с запасом”.

Есть несколько способов питать плату Arduino и схему на её основе, у каждого есть свои плюсы, минусы и ограничения.

Питание от USB

blank

Питание от USB – самый плохой способ питания Ардуино-проекта. Почему? По линии питания +5V от USB стоит диод, выполняющий защитную функцию: он защищает порт USB компьютера от высокого потребления тока компонентами схемы и от случайного короткого замыкания (КЗ). КЗ продолжительностью меньше секунды не успеет сильно навредить диоду и всё может обойтись, но продолжительное замыкание превращает диод в плавкий предохранитель, выпускающий облако синего дыма и спасающий порт компьютера. После этого плата перестаёт определяться компьютером и диод нужно заменить.

  • К китайским платам подходит диод SS14 (это 1N5819 в SMD исполнении) – ищите на AliExpress (ссылка) или магазинах электронных компонентов.

Максимальный ток, который можно получить при питании таким способом – 500 мА.

Оригинальные платы, а также платы от производителя Robotdyn имеют самовосстанавливающийся предохранитель вместо такого костыля с диодом-смертником.

Слаботочный диод имеет ещё одну неприятную особенность: на нём падает напряжение, причем чем больше ток потребления схемы, тем сильнее. По USB нам приходит ровно 5V, после диода остаётся ~4.7V. Чем это плохо:

  • Измерения с аналоговых пинов будут неточными.
  • Некоторые железки чувствительны к напряжению питания, например LCD дисплеи: при питании от 5V они яркие и чёткие, при 4.7V – уже заметно теряют яркость и контраст. Если подвигать сервоприводом или включить реле – на диоде упадет ещё большее напряжение и дисплей ощутимо мигнёт.
  • При более мощных нагрузках (выше 500-600 мА) микроконтроллер перезапустится, так как напряжение упадет ниже критического порога.

Питание через стабилизатор

На большинстве плат Arduino стоит линейный стабилизатор, позволяющий питать плату и схему от более высокого напряжения. Стабилизатор обеспечивает качественное питание, компенсируя помехи, пульсации и изменение входного напряжения. Рассмотрим популярные платы Arduino Nano, NodeMCU и Wemos Mini. На схемах ниже они питаются от внешнего источника, а остальные компоненты – от выхода 5 или 3.3V с платы:

blank

У Arduino Nano после стабилизатора остаётся 5V, у NodeMCU и Wemos – 3.3V!

  • На Nano и NodeMCU стоит стабилизатор AMS1117, который позволяет снимать максимум до 2А при 7V и около 500 мА при 12V входного напряжения. Напряжение подаётся на пин Vin.
  • На плате Wemos стоит слабый стабилизатор, причём у разных производителей разный, с максимальным напряжением от 5.5 до 7V и максимальным током до 500 мА. Лучше не экспериментировать и не подавать на него больше 5V. Напряжение подаётся на пин 5V.

Питание через стабилизатор возможно только в том случае, от платы не питаются мощные потребители тока, такие как сервоприводы, адресные светодиодные ленты, моторчики и прочее. Что можно: датчики, модули, дисплеи, реле (не более 3 одновременно в активном состоянии), одиночные светодиоды. Для проектов с мощной нагрузкой нужно использовать другое подключение.

Питание напрямую

На всех рассмотренных платах есть вывод питания, который идёт напрямую на питание микроконтроллера (сюда же приходит выход от стабилизатора). Перед скобками указано идеальное напряжение питания, в скобках – допустимый диапазон.

blank

Таким образом Arduino Nano можно питать от блока питания на 5V вместе с остальной схемой, это очень удобно. Платы NodeMCU и Wemos – уже не очень удобно, блок питания на 3.3V найти довольно непросто. Зато отлично подходят две пальчиковых батарейки или аккумулятора.

Пример проекта с питанием напрямую (зелёная плата справа вверху – Micro USB), но на фото плата питается от бортового USB для прошивки.

blank

Важно! На момент подключения к плате USB кабеля для прошивки внешнее питание должно быть подключено, иначе через плату может пойти большой ток!

Arduino Nano, пин 3V3

У Arduino Nano есть ещё один стабилизатор, выход с него – пин 3v3 с напряжением 3.3V. От этого пина можно питать модули, требующие питания 3.3V. Максимальный ток, который можно отсюда снять, зависит от стабилизатора (разные производители ставят разный), в основном это 100-200 мА, но лучше не снимать более 50 мА. На платах Nano от производителя Robotdyn стоит более мощный стабилизатор AMS1117-3.3, с которого можно снять 800 мА!

Питание “мощных” схем

Резюмируя всё написанное выше, рассмотрим варианты питания проектов с большим потреблением тока на примере Arduino Nano и напряжения 5V. Точно так же по аналогии можно работать и с 3.3V платами на базе esp8266 (NodeMCU, Wemos).

Питать мощный проект (светодиоды, двигатели, нагреватели) от 5V можно так: Arduino и потребитель питаются вместе от 5V источника питания (провода к нагрузке можно сделать толще, например если это светодиодная лента):

blank

Пример: питание нескольких сервоприводов:

blank

Питать мощный потребитель (выше 500 мА) от USB через плату нельзя, там стоит диод, да и дорожки питания слишком тонкие:

blank

Что делать, если всё-таки хочется питать проект от USB, например от powerbank’а? Всё очень просто, режем кабель и подключаем:

blank

Важно! На момент подключения к плате USB кабеля для прошивки внешнее питание должно быть подключено, иначе через плату может пойти большой ток!

Можно защититься от этой опасности, поставив диод на питание Arduino. Да, в этом случае питание просядет до ~4.7V, но можно будет безопасно загружать прошивку:

blank

Если есть только блок питания на 12V, то у меня плохие новости: встроенный стабилизатор на плате не вытянет больше 500 мА:

blank

Но если мы хотим питать именно 12V нагрузку, то проблем никаких нет: сама плата Arduino потребляет около 20 мА, и спокойно будет работать от бортового стабилизатора. А нагрузку запитаем напрямую от блока питания:

blank

Автономное питание

Бывает, что нужно обеспечить автономное питание проекта, т.е. вдали от розетки, давайте рассмотрим варианты. Также для этих целей пригодится урок по энергосбережению и режимам сна микроконтроллера.

  • Питание в порт USB:
    • Самый обыкновенный Powerbank, максимальный ток – 500 мА. Напряжение на пине 5V и высокий уровень GPIO в этом случае будет равен ~4.7V. Внимание! У большинства Powerbank’ов питание отключается при нагрузке меньше 200 мА. Некоторые банки можно перевести в режим “слабой зарядки”, тогда они будут питать схему.
    • Любой блок питания/зарядник от ноута с напряжением 7.. 18 Вольт
    • 9V батарейка “Крона” – плохой, но рабочий вариант. Ёмкость кроны крайне мала.
    • Сборка из трёх литиевых аккумуляторов: напряжение 12.6.. 9V в процессе разряда.
    • Сборка из двух литиевых аккумуляторов: напряжение 8.4.. 6V в процессе разряда.
    • Энергосбережение – не очень выгодный вариант, т.к. стабилизатор потребляет небольшой, но всё же ток.
    • Для стабильных 5V на выходе – литиевый аккумулятор и повышающий до 5V модуль. У таких модулей обычно запас по току 2А, также модуль потребляет “в холостом режиме” – плохое энергосбережение.
    • Литиевый аккумулятор – напряжение на пине 5V и GPIO будет 4.2-3.5V, некоторые модули будут работать, некоторые – нет. Работа МК от напряжения ниже 4V не гарантируется, у меня работало в целом стабильно до 3.5V, ниже уже может повиснуть. Энергосбережение – отличное.
    • Пальчиковые батарейки (ААА или АА) – хороший вариант, 3 штуки дадут 4.5-3V, что граничит с риском зависнуть. 4 штуки – очень хорошо. Новые батарейки дадут 6V, что является максимальным напряжением для МК AVR и при желании можно так работать.
    • Пальчиковые Ni-Mh аккумуляторы – отличный вариант, смело можно ставить 4 штуки, они обеспечат нужное напряжение на всём цикле разряда (до 4V). Также имеют хороший запас по току, можно даже адресную ленту питать.
    • Платы с кварцем (тактовым генератором) на 8 МГц позволяют питать схему от низкого напряжения (2.5V, как мы обсуждали выше), отлично подойдут те же батарейки/аккумуляторы, также маломощные проекты можно питать от литиевой таблетки (3.2-2.5V в процессе разряда).
    • Максимальный выходной ток с пина 5V ограничен током источника питания.

    Помехи и защита от них

    Если в одной цепи питания с Ардуино и другими микросхемами стоят мощные потребители, такие как сервоприводы, адресные светодиодные ленты, модули реле и прочее, на линии питания могут возникать помехи. Они могут приводить к сильным шумам измерений с АЦП, дергать прерывания и даже менять состояния пинов, нарушая связь по различным интерфейсам связи и внося ошибки в показания датчиков. Более сильные пульсации и просадки напряжения иногда могут привести к перезагрузке контроллера или его зависанию.

    Более того, помеха может прийти откуда не ждали – по воздуху, например от электродвигателя или любой другой катушки. “Большие дяди” в реальных промышленных устройствах делают очень много для защиты от помех, этому посвящены целые книги и диссертации. Мы с вами рассмотрим самое простое, что можно сделать дома на коленке.

      • Питать логическую часть (Ардуино, слаботочные датчики и модули) от отдельного малошумящего блока питания 5V, то есть разделить питание логической и силовой частей, а ещё лучше питаться в пин Vin от блока питания на 7-12V, так как линейный стабилизатор даёт очень качественное напряжение.
      • Поставить конденсаторы по питанию платы, максимально близко к пинам 5V/3V и GND: электролит 6.3V 100-470 uF (мкФ, ёмкость зависит от качества питания: при сильных просадках напряжения ставить ёмкость больше, при небольших помехах хватит и 10-47 мкФ) и керамический на 0.1-1 uF. Это сгладит помехи даже от сервоприводов;

      blank

      • У “выносных” на проводах элементах системы (кнопки, крутилки, датчики) скручивать провода в косичку, преимущественно с землёй. А ещё лучше использовать экранированные провода, экран подключать на GND схемы. Таким образом защищаемся от электромагнитных наводок;
      • Металлический и заземленный корпус устройства (или просто обернутый фольгой), на который заземлены все компоненты схемы – залог полного отсутствия помех и наводок по воздуху.

      Ещё лучше с фильтрацией помех справится LC фильтр, состоящий из индуктивности и конденсатора. Индуктивность нужно брать с номиналом в районе 100-300 мкГн и с током насыщения больше, чем ток нагрузки после фильтра. Конденсатор – электролит с ёмкостью 100-1000 uF в зависимости опять же от тока потребления нагрузки после фильтра. Подключается вот так, чем ближе к нагрузке – тем лучше:

      Подробнее о расчёте фильтров можно почитать здесь.

      Главный Глупый Вопрос

      У новичков в электронике, которые не знают закон Ома, очень часто возникают вопросы вида: “а каким током можно питать Ардуино“, “какой ток можно подать на Ардуино“, “не сгорит ли моя Ардуина от от блока питания 12V 10A“, “сколько Ампер можно подавать на Arduino” и прочую чушь. Запомните: вы не можете подать Амперы, вы можете подать только Вольты, а устройство возьмёт столько Ампер, сколько ему нужно. В случае с Arduino – голая плата возьмёт 20-22 мА, хоть от пина 5V, хоть от Vin. Ток, который указан на блоке питания, это максимальный ток, который БП может отдать без повреждения/перегрева/просадки напряжения. Беспокоиться стоит не об Arduino, а об остальном железе, которое стоит в схеме и питается от блока питания, а также о самом блоке питания, который может не вывезти вашу нагрузку (мотор, светодиоды, обогреватель). Общий ток потребления компонентов не должен превышать возможностей источника питания, вот в чём дело. А будь блок питания хоть на 200 Ампер – компоненты возьмут ровно столько, сколько им нужно, и у вас останется “запас по току” для подключения других (примечание: некоторые мощные, но “умные” блоки питания не будут питать слабую Arduino, т.к. она потребляет слишком маленький ток). Если устройство питается напряжением, то запомните про максимальный ток источника питания очень простую мысль: кашу маслом не испортишь.

      Полезные страницы

      • Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
      • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
      • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
      • Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
      • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
      • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
      • Поддержать автора за работу над уроками
      • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])

      Arduino Nano

      Arduino Nano – это отладочная плата небольшого размера, которая входит в тройку лидеров по популярности среди радиолюбителей-программистов. Несмотря на свой скромный размер, она практически ничем не уступает нашумевшей Arduino Uno по функционалу и может использоваться в проектах, где габариты играют существенную роль.
      Ранние версии Arduino Nano базировались на основе микроконтроллера ATmega168. Начиная с версии 3.0, в них установлены более продвинутые ATmega328, с увеличенным объёмом FLASH и EEPROM-памяти, а также с большей тактовой частотой. Ниже показан внешний вид платы Arduino Nano V3.0.

      Плата Arduino Nano

      Плата Arduino Nano

      Как видно из фото выше, для общения с внешним миром в этой плате предусмотрены штыревые колодки. Это удобно для макетирования, но при желании их можно не устанавливать. В таком случае провода к нужным выводам припаиваются напрямую. Также штыревые колодки нужны при использовании в проекте специализированных плат расширения (шилдов), которых для данной модификации Arduino придумано огромное множество.
      Если внимательно рассмотреть плату Arduino Nano, то на ней можно заметить не только микроконтроллер ATmega328, но и ряд дополнительных компонентов, обеспечивающих «жизнедеятельность» этого аппаратного комплекса в целом. Ниже можно увидеть, за что отвечает каждый из них.

      Состав платы Arduino Nano

      Состав платы Arduino Nano

      Чтобы сэкономить место, разработчики расположили радиоэлементы по обе стороны платы. С лицевой стороны нанесена вся информативная шелкография, установлен микроконтроллер ATmega328, кварцевый резонатор, разъём MiniUSB, кнопка сброса и четыре индикаторных светодиода (TX, RX, PWR и L). Первые два светодиода загораются при обмене данными платы Arduino Nano с другими устройствами через последовательный серийный порт. Индикатор PWR отражает поступление на плату питания, а светодиод L является индикатором общего назначения и загорается в случае подачи высокого сигнала на вывод №13.

      Обратная сторона послужила основой для линейного стабилизатора напряжения 5V и преобразователя интерфейса FTDI USB.

      Программирование и связь с ПК

      Процесс подключения платы Arduino Nano к персональному компьютеру обычно не вызывает затруднений – он полностью аналогичен работе с платой Arduino Uno, за исключением некоторых моментов, о которых будет сказано ниже.

      Если работа с платой происходит впервые, скорее всего, потребуется скачать и установить драйвер для микросхемы CH340. Эта микросхема представляет собой USB-to-Serial преобразователь, который обеспечивает общение Arduino Nano с компьютером через USB-кабель. Подобные микросхемы установлены в большинстве модификаций и реплик плат Arduino Nano.

      Следующий момент, на котором необходимо заострить внимание – это тип установленного микроконтроллера. Как говорилось выше, их может быть два: ATmega168 и ATmega328. Перед программированием, необходимо выбрать в среде Arduino IDE именно тот, с которым будет вестись работа. Этот нюанс отражён на нижеприведённом рисунке.

      Выбор типа микроконтроллера, установленного на плате Arduino Nano

      Выбор типа микроконтроллера, установленного на плате Arduino Nano

      Если всё сделано правильно, то при соединении Arduino Nano с компьютером во вкладке меню Инструменты-Порт, должен появиться номер виртуального COM-порта, привязанный к текущей плате. С этого момента можно загружать скетч в микроконтроллер путём нажатия всего одной кнопки, в виде смотрящей направо стрелки.

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

      Система питания

      Чтобы Arduino Nano начала функционировать, её необходимо запитать одним из двух возможных способов, а именно:

      • через USB-кабель при подключении к компьютеру или другому источнику питания 5V.
      • при помощи внешнего стабилизированного источника питания, напряжение которого должно лежать в диапазоне 6-20V (рекомендуется 7-12V). Данное напряжение подаётся непосредственно на вход VIN платы Arduino Nano.

      Примечание. Если одновременно подключить два источника питания, то плата выберет тот, потенциал которого будет выше. Независимо от способа подключения, вывод GND платы Arduino Nano является общим минусом.

      Что касается портов ввода-вывода, то следует помнить, что они работают с напряжениями 0-5V. Любое превышение, несмотря на встроенные ограничительные диоды, может вывести микроконтроллер из строя. То же самое касается и нагрузочной способности порта. Максимальный ток, который может выдать один вывод, равен 40мА, а суммарный ток всех выводов не должен превышать значение 200мА.

      Также плату Arduino Nano можно использовать для питания мелкой периферии. Для этого на ней предусмотрены выводы 5V и 3.3V. Первое напряжение формируется встроенным линейным стабилизатором LM1117IMPX-5.0, а второе берётся с четвёртого вывода микросхемы-конвертора CH340G (у платы Arduino Uno для этого предусмотрен свой отдельный стабилизатор). Следовательно, использовать напряжение 3.3V можно только в случае питания через разъём USB.

      Для полноты картины, ниже приведена электрическая схема платы Arduino Nano, на которой наглядно можно увидеть оговоренные ранее моменты.

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

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

      Порты ввода-вывода

      Для пользователя платы Arduino Nano доступно 14 цифровых контактов ввода/вывода. Их обозначение начинается с латинской буквы «D», от английского слова digital-цифровой. Каждый из этих контактов может быть настроен как на вход, так и на выход. Настройка направления осуществляется при помощи функции pinMode(), например:

      • pinMode(13, OUTPUT); – настройка на выход вывода №13;
      • pinMode(13, INPUT); – настройка на вход вывода №13;
      • pinMode(13, INPUT_PULLUP); – настройка на вход вывода №13 с подтяжкой к напряжению питания через внутренний резистор.

      Если цифровой пин настроен на выход, он может выдавать два уровня сигнала, которые соответствует логическому нулю или логической единице. Делается это при помощи следующих команд:

      • digitalWrite(13, LOW); – установить нулевой уровень на выводе №13;
      • digitalWrite(13, HIGH); – установить 5V на выводе №13;

      Также, некоторые из цифровых выводов способны генерировать на своём выходе ШИМ-сигнал с настраиваемой скважностью. Эти выводы помечаются на плате специальным дополнительным символом «*». Для Arduino Nano эти выводы имеют обозначение D3, D5, D6, D9, D10, D11. Ниже даны несколько соответствующих примеров:

      • analogWrite(3, 0); – установить на выводе №3 ШИМ сигнал с максимальной скважностью (аналогично логическому нулю);
      • analogWrite(3, 255); – установить на выводе №3 ШИМ сигнал с минимальной скважностью (аналогично логической единице);
      • analogWrite(3, 128); – установить на выводе №3 ШИМ сигнал со скважностью 50%.

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

      • uint8_t level=digitalRead(13); – переменной level будет присвоено значение 0 или 1 в зависимости от уровня напряжения на входе №13.

      Помимо цифровых контактов, плата Arduino Nano имеет на своём борту 8 аналоговых входов, которые связаны с 10-битным АЦП. Это даёт возможность измерять напряжение в пределах 0-5V с точностью 0,0048V. Расширение диапазона измеряемых напряжений достигается путём использования резистивных делителей.

      Обозначение аналоговых входов начинается буквой «А», от английского слова analog. На плате Arduino Nano эти входы маркируются как A0, A1, A2, A3, A4, A5, A6, A7. Первые пять входов могут использоваться в качестве цифровых, работая в оба направления. Пины A6 и A7 способны работать только на вход. Это следует помнить при проектировании программного обеспечения. Чтобы оценить уровень напряжения на аналоговом входе, необходимо воспользоваться следующей командой:

      Ввиду того, что Arduino Nano построена на базе микроконтроллера ATmega328, некоторые её выводы имеют также и альтернативные функции, например шину SPI, I2C, Serial и. т.д. Все эти структуры при необходимости активируются с помощью встроенных в Arduino IDE библиотек или напрямую через работу с регистрами микроконтроллера.

      Чтобы наглядно увидеть возможности этой небольшой платы в комплексе со всеми альтернативными возможностями, ниже приведена полная карта распиновки выводов Arduino Nano.

      Распиновка выводов платы Arduino Nano

      Распиновка выводов платы Arduino Nano

      Некоторые наиболее из часто используемых в Arduino IDE альтернативных функций для удобства восприятия сведены в таблицу ниже.

      Вывод платы Arduino Nano

      Название вывода в скетче

      Альтернативная функция

      Генерация ШИМ