Arduino:Продукты/Продукты Arduino/Плата Arduino Nano

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Arduino Nano[1]

Примечание

Этот продукт устарел, и документация к нему не обновляется.

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

Идеи для вдохновения

О проектах, которые можно сделать при помощи Arduino Nano, можно почитать на Arduino Project Hub – это образовательная платформа официального сайта Arduino.

Документация

Для Arduino Nano 3.0 (ATmega328):

Для Arduino Nano 2.0 (ATmega168):

Примечание

Бесплатная версия Eagle может работать не более чем с 2 слоями, а эта версия Nano имеет 4 слоя. Поэтому, чтобы пользователи могли открыть файл и использовать его в бесплатной версии Eagle, он сделан с несоединенными контактными площадками.

Технические характеристики

  • Микроконтроллер – Atmel ATmega168 или ATmega328
  • Рабочее напряжение – 5 вольт
  • Входное напряжение (рекомендуемое) – 7-12 вольт
  • Входное напряжение (лимит) – 6-20 вольт
  • Цифровые I/O контакты – 14 шт. (из которых 6 шт. можно использовать для выдачи ШИМ)
  • Входные аналоговые контакты – 8 шт.
  • Максимальная сила тока на один I/O контакт – 40 миллиампер
  • Flash-память – 16 Кб (ATmega168) или 32 Кб (ATmega328), из которых 2 Кб используются загрузчиком
  • SRAM – 1 Кб (ATmega168) или 2 Кб (ATmega328)
  • EEPROM – 512 байт (ATmega168) или 1 Кб (ATmega328)
  • Тактовая частота – 16 МГц
  • Длина – 45 мм.
  • Ширина – 18 мм.
  • Вес – 5 грамм

Распиновка

Питание

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

Память

Чип ATmega168 оснащен 16 Кб flash-памяти для хранения кода (из которых 2 Кб используются загрузчиком), а чип ATmega328 – 32 Кб (из которых те же 2 Кб используются загрузчиком). Кроме того, оба чипа оснащены памятью типа SRAM (ATmega168 имеет 1 Кб, а ATmega3282 Кб) и памятью типа EEPROM (ATmega168 имеет 512 байт, а ATmega3281 Кб). Запись и считывание с EEPROM осуществляется при помощи библиотеки EEPROM.

Входные и выходные контакты

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

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

Плата Arduino Nano имеет 8 входных аналоговых контактов, и все они поддерживают 10-битное разрешение (т.е. могут работать с 1024 разными значениями). По умолчанию вольтовый диапазон в них составляет от «земли» до 5 вольт, однако верхнюю границу этого диапазона можно увеличить при помощи функции analogReference(). Аналоговые контакты 7 и 8 нельзя использовать в качестве цифровых контактов.

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

Также на Nano есть еще несколько специальных контактов:

  • AREF – эталонное напряжение для входных аналоговых контактов. Используется вместе с функцией analogReference().
  • Reset – если подать на этот контакт LOW, это сбросит микроконтроллер. Как правило, используется, чтобы добавить на «шилд» кнопку сброса, потому что подключение «шилда» блокирует кнопку сброса на самой плате.

Смотрите также распиновку между контактами Arduino и портами Atmega168.

Коммуникация

Плата Arduino Nano имеет несколько средств для коммуникации с компьютером, а также другими Arduino и микроконтроллерами. Чипы ATmega168 и ATmega328 обеспечивают последовательную UART TTL (5-вольтовую) коммуникацию, которая доступна на 0-ом (RX) и 1-ом (TX) цифровых контактах. Также на плате есть чип FTDI FT232RL, который перенаправляет эту последовательную коммуникацию на USB, а благодаря драйверам FTDI (есть в IDE Arduino) ОС компьютера видит плату как виртуальный COM-порт. Также в IDE Arduino встроен монитор порта, который позволяет отправлять простые текстовые данные – и на плату, и от нее. Кроме того, на Nano есть светодиоды RX и TX, которые загораются при передаче данных через чип FTDI и USB-соединение с компьютером (но не через последовательный порт на 0-ом и 1-ом контактах).

Все цифровые контакты Nano поддерживает последовательную коммуникацию, которая осуществляется при помощи библиотеки SoftwareSerial.

Кроме того, чипы ATmega168 и ATmega328 поддерживают коммуникацию типа I2C (TWI) и SPI. Для упрощения работы с шиной I2C в IDE Arduino встроена библиотека Wire, а для SPIбиблиотека SPI.

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

Плата Arduino Nano программируется при помощи IDE Arduino. Зайдите в нее и кликните по Инструменты > Плата > Arduino Nano (Tools > Board > Arduino Nano). О языке программирования Arduino читайте тут, а руководства ищите тут.

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

Загрузчик коммуницирует через протокол STK500 (описание, заголовочные файлы на C).

Вы также можете обойти программный загрузчик и программировать микроконтроллер через ICSP-гребешок при помощи программатора ISP или похожего устройства. Более подробно читайте в этих инструкциях.

Автоматический (программный) сброс

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

Одна из линий управления потоками данных на чипе FT232RL (а именно – линия DTR) подключена к Reset-линии на чипе ATmega168 (или ATmega328) через 100-нанофарадный конденсатор. Если подать на эту линию LOW, значение на линии Reset снизится достаточно для того, чтобы сбросить чип. Эту возможность можно использовать для того, чтобы загружать новый код, просто нажав в IDE Arduino кнопку загрузки. Это значит, что у загрузчика может быть более короткий таймаут, поскольку подачу значения LOW на линию DTR можно скоординировать с началом загрузки скетча.

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

См.также

Внешние ссылки