Распиновка платы Ардуино Нaно (Arduino Nano Rev3.2) + схема
Схема платы Arduino Nano с нумерацией всех пинов (выводов) с указанием соответствия выводам микроконтроллера Atmega328. Скачать принципиальную схему Arduino Nano.
Arduino Nano — младший брат ардуины UNO, который отличается более компактными размерами, более низкой ценой , несколько урезанным количеством выводов и разъемов, но обладающий практически тем же функционалом, что и UNO, поскольку на обоих платах стоит один и тот же микроконтроллер Atmega328.
(замечание: в старых версиях Arduino Nano 2.x использовался МК ATmega168).
Распиновка платы Arduino Nano
На рисунке указаны номера и назначения выводов Arduino Nano (вид со стороны, на которой расположен микроконтроллер Atmega328):
Расшифровка цвета:
— серый цвет — физический пин микроконтроллера Atmega328;
— светло серый цвет (PD0, PD1 и т.д.) — номер порта микроконтроллера, который доступен из программ на ассемблере;
— зеленый цвет (ADC0 и т.д.) — номера аналогивых выводов;
— голубой цвет — пины портов UART и SPI.
Назначение и обозначения выводов:
USB — USB-порт, предназначенный для подключения ардуины к компьютеру через USB-кабель (нужен Mini-B USB разъем).
VIN — сюда может подается питание от внешнего источника питания на 7-12 В (блок питания покупается отдельно). Напряжение будет подаваться на стабилизатор и понижаться до 5 В. Поэтому оптимально подавать на этот пин около 9 В.
5V — через этот пин также можно запитывать плату от источника питания на 5 вольт, однако напряжение должно быть более-менее стабильным, поскольку оно подается непосредственно на микроконтроллер (стабилизатор не задействован), и поэтому высокое напряжение может убить основной микроконтроллер.
3.3V — на этом пине будет висеть напряжение 3.3 В, которое формируется от внутреннего стабилизатора платы. Этот пин нужен для подключения некоторых внешних устройств, которым для работы требуется 3.3 В — обычно это всякие ЖК-дисплеи. Однако максимальный ток вывода при этом не должны превышать 50 мА.
GND — земля (Ground Pin).
AREF — опорное напряжение для аналоговых входов. Используется по необходимости (настраивается с помощью analogReference()).
IOREF — позволяет узнать рабочее напряжение микроконтроллера. Используется редка. На китайских платах отсутствует вовсе.
Reset — выполняет сброс микроконтроллера, подать низкий уровень на этот вход.
SDA, SCL — пины интерфейса TWI/I2C.
D0. D13 — цифровые входы/выходы. На вывод D13 висит встроенный светодиод, который загорается, если на вывод D13 подан уровень HIGH.
0 (RX), 1 (TX) — выводы порта UART (последовательный порт Serial).
A1. A5 — аналоговые входы (могут использоваться и в качестве цифровых).
Внешний вид платы Arduino Nano с подписанными выводами:
RX+TX LEDs — светодиоды — моргают, когда передаются данные через последовательный порт Serial UART (пины RX и TX).
Reset Button — кнопка для перезапуска микроконтроллера;
(остальные обозначения смотри выше)
FTDI USB chip — микросхема FTDI FT323RL, которая используется для связи ардуины с компьютером через USB-кабель. Со стороны ардуины это serial-интерфейс. На компьютер этот интерфейс будет доступен в виде виртуального COM-порта (должны быть установлены драйвера для чипа FTDI — обычно входят в состав IDE Arduino).
Arduino Nano: распиновка, схема подключения и программирование
Плата Arduino Nano — аналог флагманской Uno в миниатюрном размере. На ней предусмотрено всё необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъём Mini-USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса.
Видеообзор
Подключение и настройка
Для запуска платформы скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.
При выборе платформы выбирайте Arduino Nano.
Если всё получилось — можете смело переходить к экспериментам.
Элементы платы
Микроконтроллер ATmega328P
Сердцем платформы Arduino Nano является 8-битный микроконтроллер семейства AVR — ATmega328P с тактовой частотой 16 МГц. Контроллер предоставляет 32 КБ Flash-памяти для хранения прошивки, 2 КБ оперативной памяти SRAM и 1 КБ энергонезависимой памяти EEPROM для хранения данных.
Микросхема FT232R
Микросхема FTDI FT232R обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к компьютеру Nano определяется как виртуальный COM-порт.
USB-UART преобразователь общается с микроконтроллером ATmega328P по интерфейсу UART через пины 0(RX) и 1(TX) . Рекомендуем не использовать эти контакты в своём проекте.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
RX и TX | Мигают при обмене данными между Arduino Nano и ПК. |
L | Пользовательский светодиод подключённый к 13 пину микроконтроллера. При высоком уровне светодиод включается, при низком – выключается. |
ON | Наличие питания на Arduino Nano. |
Разъём Mini-USB
Разъём Mini-USB предназначен для прошивки платформы с помощью компьютера.
Регулятор напряжения 5 В
Линейный понижающий регулятор напряжения LM1117MPX-5.0 с выходом 5 вольт обеспечивает питание микроконтроллера ATmega328P и другой логики платформы. Максимальный выходной ток составляет 800 мА.
ICSP-разъём для ATmega328
ICSP-разъём предназначен для загрузки прошивки в микроконтроллер ATmega328 через программатор.
Также через контакты ICSP Nano общается с платами расширения по интерфейсу SPI.
Цифровые пины
В уроке про возможности микроконтроллера мы обсуждали такое понятие, как GPIO – входы-выходы общего назначения, которые позволяют читать и выдавать цифровой сигнал. Давайте посмотрим на распиновке, какие пины умеют так делать.
Нумерация пинов
AVR (Arduino Nano)
- Нет прямой нумерации GPIO, всё поделено на порты и пины (не указаны на распиновке), о них мы поговорим в отдельном уроке.
- На плате выведенные GPIO подписаны как Dцифра и Aцифра и в программе мы можем обращаться к ним по этой нумерации:
- К пинам GPIO, подписанным как D (D0-D13), можно обращаться по номеру: D2 – просто 2 .
- К пинам GPIO, подписанным как A (A0-A5), можно обращаться по подписи на плате: A2 – A2 . Также нумерация A пинов продолжает нумерацию D пинов по порядку, то есть A0 это 14 , A1 это 15 .. A5 – 19 .
ESP8266 (Wemos Mini)
- Имеется прямая нумерация GPIO (номера подписаны на распиновке зелёным), по этим номерам можно обращаться к пинам в программе как к цифрам: GPIO5 – просто 5 .
- На плате пины подписаны как Dцифра. Эта нумерация не совпадает с номерами GPIO, но по ней также можно обращаться к пинам в программе: D1 это D1 , и этот же пин – просто 5 , как номер GPIO (см. распиновку выше).
Режимы работы пинов
Цифровой пин может находиться в двух состояниях, вход и выход. В режиме входа пин может считывать напряжение от 0 до напряжения питания МК, а в режиме выхода – выдавать такое же напряжение. Режим работы выбирается при помощи функции pinMode(pin, mode) , где pin это номер пина, а mode это режим:
- INPUT – вход
- OUTPUT – выход
- INPUT_PULLUP – подтянутый к питанию вход
Если со входом/выходом всё понятно, то с подтяжкой давайте разберёмся. В режиме входа пин МК не подключен никуда и ловит из воздуха всякие наводки, получая практически случайное значение. Для задания пину “состояния по умолчанию” используют подтяжку резистором к земле или питанию. Режим INPUT_PULLUP включает встроенную в микроконтроллер подтяжку пина к питанию при помощи внутреннего резистора. Подробнее об этом, со схемами и примерами я рассказывал в начале вот этого видео урока.
Вывод цифрового сигнала
Цифровой пин в режиме выхода ( OUTPUT ) может генерировать цифровой сигнал, т.е. выдавать напряжение. Так как понятие “цифровой” обычно связано с двумя состояниями, 0 и 1, цифровой пин тоже может выдать 0 или 1, точнее сигнал низкого или высокого уровня:
- Сигнал низкого уровня это 0V, пин подключается к GND микроконтроллера.
- Сигнал высокого уровня подключает пин к VCC микроконтроллера, то есть к питанию.
Если вы вспомните урок по питанию платы, то поймёте, что сигнал высокого уровня на цифровом пине будет варьироваться в зависимости от того, от какого напряжения питается плата. При питании напрямую от источника 5V на пине будет 5V, при питании от USB с потерей на защитном диоде мы получим около 4.7V.
Самый главный момент касательно цифровых пинов: микроконтроллер – логическое устройство, которое создано для управления другими устройствами при помощи логических сигналов. Логическое – означает не силовое, то есть питать от пина МК нельзя ничего мощнее светодиода или слабой микросхемы:
- Для AVR Arduino рекомендуемый ток с пина GPIO – не более 20 мА, максимальный ток – 40 мА.
- Для esp8266 максимальный ток с пина GPIO – не более 12 мА.
Вернёмся к вопросу подачи цифрового сигнала: для этого у нас есть функция digitalWrite(pin, value) :
- pin – пин GPIO (нумерацию смотри выше).
- value – уровень сигнала: HIGH высокий, LOW низкий. Также можно использовать цифры 1 и 0 соответственно.
Пример, в котором пины инициализируются как выходы и на них подаётся сигнал (на примере Arduino Nano):
Чтение цифрового сигнала
Цифровой пин может измерять напряжение, но сообщить он может только о его отсутствии (сигнал низкого уровня, LOW ) или наличии (сигнал высокого уровня, HIGH ), причём отсутствием напряжения считается промежуток от 0 до
VCC/2 Вольт, а от VCC/2 до VCC микроконтроллер считает за наличие сигнала высокого уровня.
Для чтения уровня сигнала на пине используется функция digitalRead(pin) , где пин – номер GPIO (нумерацию смотри выше).
Следующий код будет выводить в порт сигнал на пине D5. Если подключить его проводом к VCC – получим 1 , если к GND – получим 0 .
Видео
Что умеет микроконтроллер?
Микроконтроллер – чрезвычайно универсальное устройство, на его основе можно сделать бесконечно много разных электронных устройств, как полезных, так и бесполезных. Под управлением микроконтроллеров работает любая техника, в которой есть какие-то настройки, режимы или автоматизация (стиральная машина, микроволновка, мультиварка…), некоторые узлы автомобилей, станки с ЧПУ, простенькие гаджеты и так далее.
Что же делает МК настолько мощным и универсальным инструментом? Ведь фактически он умеет делать всего три вещи*:
- Измерять напряжение на пине
- Выдавать напряжение с пина
- Программироваться
(*) – ещё у МК может быть собственный беспроводной интерфейс, но это уже частный случай.
В том то и дело, что этого достаточно для решения всех мыслимых и немыслимых задач! Микроконтроллер может управлять любой внешней нагрузкой, опрашивать кнопки/крутилки/энкодеры/клавиатуры/джойстики, может работать практически с любыми датчиками, общаться с любыми сторонними микросхемами, выводить информацию на дисплей, в том числе сенсорный, управляться через Интернет из любой из точки планеты и многое другое. Самое важное, что всё это может работать абсолютно в любых сочетаниях и быть запрограммировано огромным количеством способов, то есть одна маленькая микросхема может стать сердцем бесконечного количества электронных устройств и проектов!
Что такое МК?
Микроконтроллер – это сильно навороченная программируемая микросхема, самый простой аналог – компьютер, точнее системный блок (без блока питания). Да, вы не ослышались! Микроконтроллер работает сам по себе, на нём может быть запущена простенькая операционная система, может даже быть выход в Интернет, а мы можем подключать к нему устройства ввода, датчики, дисплеи и прочие железки. Чем не компьютер?
Внутри любого микроконтроллера находится несколько аппаратных блоков, все они соединены между собой:
- Ядро (процессор) – отвечает за работу всех остальных блоков, связывает их между собой. Сам состоит из десятка элементов (кэш, набор вычислительных блоков, и т.д.). Аналог – процессор компьютера.
- Flash память – постоянное запоминающее устройство (ПЗУ). Хранит исполняемый код программы, также может хранить статические данные (изображения, веб-страницы, текст, таблицы с числами, и т.д.). Не очищается после сброса питания. Аналог – жёсткий диск компьютера.
- SRAM память – оперативное запоминающее устройство (ОЗУ). Хранит данные, изменяющиеся в процессе работы программы (промежуточные результаты вычислений, значения переменных, принятые от внешних устройств данные и т.д.). Очищается после сброса питания. Аналог – оперативная память компьютера.
Также в МК могут быть и другие блоки:
- GPIO (General Purpose Input-Output) – вход-выход общего назначения. Измеряет поданный на пин цифровой сигнал, либо выдаёт его с пина. Подробнее в этом уроке. Пины GPIO мы будем называть цифровые пины.
- АЦП (ADC, аналогово-цифровой преобразователь) – измеряет поданное на пин напряжение, аналоговый сигнал, и передаёт в программу. Подробнее в этом уроке. Такие пины мы будем называть аналоговые пины.
- ЦАП (DAC, цифро-аналоговый преобразователь) – выдаёт указанное напряжение с пина (аналоговый сигнал).
- Таймер (счётчик) – считает такты работы процессора
- Позволяет с очень высокой точностью (до наносекунд) измерять время.
- Часто таймер используется для генерирования ШИМ сигнала на своих выводах, они помечаются как PWM. Подробнее в этом уроке. Такие пины мы будем называть ШИМ-пины.
- Watchdog – данный блок позволяет перезагрузить МК, если он завис, а также выйти из спящего режима.
- Интерфейсы связи – нужны для связи с внешними устройствами, т.е. для обмена данными (получение значений с датчика, отправка данных по радио и т.д.). По сути МК может воспроизвести любой интерфейс связи при помощи GPIO, но это будет довольно затратно для процессора. Поэтому некоторые интерфейсы реализованы отдельно и работают самостоятельно, обмениваясь с ядром готовыми данными. Самые популярные интерфейсы:
- UART – связь с одним внешним устройством. По одному проводу передаёт, по второму – принимает. Может работать только на передачу или только на приём, используя один провод. Названия пинов:
- RX (Receive) – приём.
- TX (Transmit) – передача.
- I2C – адресная шина, можно подключить до 128 устройств одновременно всего по двум проводам. Названия пинов:
- SDA (Serial DAta) – линия данных.
- SCL (Serial CLock) – линия синхронизации.
- SPI – можно подключить сколько угодно устройств, но каждое требует логический сигнал (пин) для выбора. Требует два провода для передачи в одну сторону или три – для обмена данными (одновременный приём и передача). Самый быстрый из перечисленных интерфейсов. Названия пинов:
- MOSI (Master Output Slave Input) – линия данных от МК к внешней микросхеме.
- MISO (Master Input Slave Output) – линия данных от внешней микросхемы к МК.
- SCLK (Serial CLocK) – линия синхронизации.
- I2S – специальный интерфейс для передачи цифрового аудио сигнала.
- UART – связь с одним внешним устройством. По одному проводу передаёт, по второму – принимает. Может работать только на передачу или только на приём, используя один провод. Названия пинов:
Распиновка
Как вы наверное поняли, микроконтроллер – это микросхема с кучей ножек. У каждой ножки есть своя функция, в частности у блоков GPIO и интерфейсов связи есть свои личные ноги. Для экономии размера и уменьшения количества ног микросхемы производители практически всегда объединяют несколько функций на одной ножке. Чтобы понять, куда подключать внешнюю “железку”, нужно посмотреть на распиновку (pinout) микросхемы или платы: это картинка, на которой подписаны функции всех ножек МК или пинов платы. Вот для примера упрощённые распиновки плат Arduino Nano и Wemos Mini, на них вы найдёте уже знакомые из предыдущей главы аббревиатуры:
Почти на всех Ардуино-совместимых платах есть “отладочный” светодиод, подключенный к одному из пинов. На распиновках я отметил его как LED.