Содержание
Схема платы 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 – это полнофункциональное миниатюрное устройство на базе микроконтроллера ATmega328 (Arduino Nano 3.0) или ATmega168 (Arduino Nano 2.x), адаптированное для использования с макетными платами. По функциональности устройство похоже на Arduino Duemilanove, и отличается от него размерами, отсутствием разъема питания, а также другим типом (Mini-B) USB-кабеля. Arduino Nano разработано и выпускается фирмой Gravitech.
Схема и исходный проект
Arduino Nano 2.3 (ATmega168): руководство (pdf), файлы Eagle. Примечание: печатная плата этой версии Arduino Nano содержит 4 слоя, в то время как бесплатная версия Eagle позволяет работать только с двухслойными платами. Поэтому, для возможности работы со схемой в бесплатной версии, проект выложен без трассировки печатной платы.
Характеристики:
Микроконтроллер | Atmel ATmega168 или ATmega328 |
Рабочее напряжение (логический уровень) | 5В |
Напряжение питания (рекомендуемое) | 7-12В |
Напряжение питания (предельное) | 6-20В |
Цифровые входы/выходы | 14 (из которых 6 могут использоваться как ШИМ-выходы) |
Аналоговые входы | 8 |
Максимальный ток одного вывода | 40 мА |
Flash-память | 16 КБ (ATmega168) или 32 КБ (ATmega328) из которых 2 КБ используются загрузчиком |
SRAM | 1 КБ (ATmega168) или 2 КБ (ATmega328) |
EEPROM | 512 байт (ATmega168) или 1 КБ (ATmega328) |
Тактовая частота | 16 МГц |
Размеры платы | 1.85 см х 4.3 см |
Питание
Arduino Nano может быть запитан через кабель Mini-B USB, от внешнего источника питания с нестабилизированным напряжением 6-20В (через вывод 30) либо со стабилизированным напряжением 5В (через вывод 27). Устройство автоматически выбирает источник питания с наибольшим напряжением.
Напряжение на микросхему FTDI FT232RL подается только в случае питания Arduino Nano через USB. Поэтому при питании устройства от других внешних источников (не USB), выход 3.3В (формируемый микросхемой FTDI) будет неактивен, в результате чего светодиоды RX и TX могут мерцать при наличии высокого уровня сигнала на выводах 0 и 1.
Память
Объем памяти программ микроконтроллера ATmega168 составляет 16 КБ (из них 2 КБ используются загрузчиком); в ATmega328 – этот объем составляет 32 КБ (из которых 2 КБ также отведены под загрузчик). Помимо этого, ATmega168 имеет 1 КБ оперативной памяти SRAM и 512 байт EEPROM (для взаимодействия с которой служит библиотека EEPROM); а микроконтроллер ATmega328 – 2 КБ SRAM и 1 КБ EEPROM.
Входы и выходы
С использованием функций pinMode(), digitalWrite() и digitalRead() каждый из 14 цифровых выводов Arduino Nano может работать в качестве входа или выхода. Рабочее напряжение выводов – 5В. Максимальный ток, который может отдавать или потреблять один вывод, составляет 40 мА. Все выводы сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом 20-50 кОм. Помимо основных, некоторые выводы Ардуино могут выполнять дополнительные функции:
- Последовательный интерфейс: выводы 0 (RX) и 1 (TX). Используются для получения (RX) и передачи (TX) данных по последовательному интерфейсу. Эти выводы соединены с соответствующими выводами микросхемы-преобразователя USB-UART от FTDI.
- Внешние прерывания: выводы 2 и 3. Данные выводы могут быть сконфигурированы в качестве источников прерываний, возникающих при различных условиях: при низком уровне сигнала, по фронту, по спаду или при изменении сигнала. Для получения дополнительной информации см. функцию attachInterrupt().
- ШИМ: выводы 3, 5, 6, 9, 10 и 11. С помощью функции analogWrite() могут выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
- Интерфейс SPI: выводы 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Данные выводы позволяют осуществлять связь по интерфейсу SPI. В устройстве реализована аппаратная поддержка SPI, однако на данный момент язык Ардуино пока ее не поддерживает.
- Светодиод: вывод 13. Встроенный светодиод, подсоединенный к цифровому выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW – выключается.
В Arduino Ethernet есть 8 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения). По умолчанию, измерение напряжения осуществляется относительно диапазона от 0 до 5 В. Тем не менее, верхнюю границу этого диапазона можно изменить, используя вывод AREF и функцию analogReference(). Помимо этого, некоторые из выводов имеют дополнительные функции:
- I2С: выводы 4 (SDA) и 5 (SCL). С использованием библиотеки Wire (документация на веб-сайте Wiring) данные выводы могут осуществлять связь по интерфейсу I2C (TWI).
Помимо перечисленных на плате существует еще несколько выводов:
- AREF. Опорное напряжение для аналоговых входов. Может задействоваться функцией analogReference().
- Reset. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения
Связь
Arduino Nano предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega168 и ATmega328 есть приемопередатчик UART, позволяющий осуществлять связь по последовательным интерфейсам посредством цифровых выводов 0 (RX) и 1 (TX). Микросхема FTDI FT232RL обеспечивает связь приемопередатчика с USB-портом компьютера, и при подключении к ПК позволяет Ардуино определяться как виртуальный COM-порт (драйвера FTDI включены в пакет программного обеспечения Ардуино). В пакет программного обеспечения Ардуино также входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных компьютеру через USB на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1 данные светодиоды не задействуются).
Библиотека SoftwareSerial позволяет реализовать последовательную связь на любых цифровых выводах Arduino Nano.
В микроконтроллерах ATmega328 и ATmega168 также реализована поддержка последовательных интерфейсов I2C (TWI) и SPI. В программное обеспечение Ардуино входит библиотека Wire, позволяющая упростить работу с шиной I2C; для получения более подробной информации см. документацию. Для работы с интерфейсом SPI см. даташиты микроконтроллеров ATmega168 и ATmega328.
Программирование
Arduino Nano программируется с помощью программного обеспечения Ардуино (скачать). Для этого из меню Tools > Board необходимо выбрать "Arduino Diecimila, Duemilanove, or Nano w/ ATmega168" или "Arduino Duemilanove or Nano w/ ATmega328" (в зависимости от микроконтроллера на вашей плате). Для получения более подробной информации см. справку и примеры.
ATmega168 и ATmega328 в Arduino Nano выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по оригинальному протоколу STK500 (справка, заголовки C-файлов).
Тем не менее, микроконтроллер можно прошить и через разъем для внутрисхемного программирования ICSP (In-Circuit Serial Programming), не обращая внимания на загрузчик; более подробно об этом см. соответствующие инструкции.
Автоматический (программный) сброс
Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Arduino Nano спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Один из выводов микросхемы FT232RL, участвующий в управлении потоком данных (DTR), соединен с выводом RESET микроконтроллера ATmega168 или ATmega328 через конденсатор номиналом 100 нФ. Когда на линии DTR появляется ноль, вывод RESET также переходит в низкий уровень на время, достаточное для перезагрузки микроконтроллера. Данная особенность используется для того, чтобы можно было прошивать микроконтроллер всего одним нажатием кнопки в среде программирования Ардуино. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии DTR. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии DTR.
Однако эта система может приводить и к другим последствиям. При подключении Arduino Nano к компьютерам, работающим на Mac OS X или Linux, его микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой. После сброса на Arduino Nano активизируется загрузчик на время около полсекунды. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е. все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения. Соответственно, если в программе, работающей на Ардуино, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Ардуино, осуществляет отправку спустя секунду после установки соединения.
Arduino Nano — аналог флагманской Arduino Uno в миниатюрном размере. На Arduino Nano предусмотрено всё необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъём Mini-USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса.
Видеообзор
Подключение и настройка
Для запуска платформы скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE.
При выборе платформы выбирайте Arduino Nano.
Если всё получилось — можете смело переходить к экспериментам.
Элементы платы
Микроконтроллер ATmega328P
Сердцем платформы Arduino Nano является 8-битный микроконтроллер семейства AVR — ATmega328P с тактовой частотой 16 МГц. Контроллер предоставляет 32 КБ Flash-памяти для хранения прошивки, 2 КБ оперативной памяти SRAM и 1 КБ энергонезависимой памяти EEPROM для хранения данных.
Микросхема FT232R
Микросхема FTDI FT232R обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к ПК Arduino Nano определяется как виртуальный COM-порт.
USB-UART преобразователь общается с микроконтроллером ATmega328P по интерфейсу UART через пины 0(RX) и 1(TX) . Рекомендуем не использовать эти контакты в своём проекте.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
RX и TX | Мигают при обмене данными между Arduino Nano и ПК. |
L | Пользовательский светодиод подключённый к 13 пину микроконтроллера. При высоком уровне светодиод включается, при низком – выключается. |
ON | Наличие питания на Arduino Nano. |
Разъём Mini-USB
Разъём Mini-USB предназначен для прошивки платформы Arduino Nano с помощью компьютера.
Регулятор напряжения 5 В
Линейный понижающий регулятор напряжения LM1117MPX-5.0 с выходом 5 вольт обеспечивает питание микроконтроллера ATmega328P и другой логики платформы. Максимальный выходной ток составляет 800 мА.
ICSP-разъём для ATmega328
ICSP-разъём предназначен для загрузки прошивки в микроконтроллер ATmega328 через программатор.
Через контакты ICSP Arduino Nano общается с платами расширения по интерфейсу SPI.