Программы arduino nano v 3.0. Блог › Опыт изучения Arduino. Пост очередной. Аппаратный

Общие сведения

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

Схема и исходный проект

Связь

Arduino Nano предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega168 и ATmega328 есть приемопередатчик UART, позволяющий осуществлять связь по последовательным интерфейсам посредством цифровых выводов 0 (RX) и 1 (TX). Микросхема FTDI FT232RL обеспечивает связь приемопередатчика с USB-портом компьютера, и при подключении к ПК позволяет Ардуино определяться как виртуальный COM-порт (драйвера FTDI включены в пакет программного обеспечения Ардуино). В пакет программного обеспечения Ардуино также входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных компьютеру через USB на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1 данные светодиоды не задействуются).

ATmega168 и ATmega328 в Arduino Nano выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по оригинальному протоколу STK500 ( , ).

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

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

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

Платформа Nano, построенная на микроконтроллере ATmega328 (Arduino Nano 3.0) или ATmega168 (Arduino Nano 2.x), имеет небольшие размеры и может использоваться в лабораторных работах.

Плата Arduino Nano

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

Характеристики платы Arduino Nano

Микроконтроллер

ATmega168 или ATmega328

Рабочее напряжение

5 В

7–12 В

Входное напряжение (предельное)

6–20 В

Цифровые входы/выходы

14 (6 из которых могут использоваться как выходы ШИМ)

Аналоговые входы

Постоянный ток через вход/выход

40 мА

Постоянный ток для вывода 3,3 В

50 мА

Флеш-память

16 Кбайт (ATmega168) или 32 Кбайт (ATmega328), при этом 2 Кбайт используются для загрузчика

ОЗУ

1 Кбайт (ATmega168) или 2 Кбайт (ATmega328)

Общие сведения

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

Схема и исходный проект

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

  • AREF. Опорное напряжение для аналоговых входов. Может задействоваться функцией .
  • Reset. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения

Связь

Arduino Nano предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega168 и ATmega328 есть приемопередатчик UART, позволяющий осуществлять связь по последовательным интерфейсам посредством цифровых выводов 0 (RX) и 1 (TX). Микросхема FTDI FT232RL обеспечивает связь приемопередатчика с USB-портом компьютера, и при подключении к ПК позволяет Ардуино определяться как виртуальный COM-порт (драйвера FTDI включены в пакет программного обеспечения Ардуино). В пакет программного обеспечения Ардуино также входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных компьютеру через USB на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1 данные светодиоды не задействуются).

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

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

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

Основные версии плат Arduino представлены следующими моделями:

Общие сведения

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

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

Связь

На платформе 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). Следующие полсекунды после перезагрузки работает загрузчик. Во время программирования происходит задержка нескольких первых байтов кода во избежание получения платформой некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча, записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере ожидает в течение секунды перед передачей данных.


Источник:

В середине 2013 года я приобрёл плату Arduino Nano версии 3.0. Ясно, что плата построена по схожей с полноценной ардуино уно платформе, но есть и нюансы. Попробуем в этой статье разобраться в них

Платформа Arduino Nano 3.0 построена на микроконтроллере ATmega328, имеет небольшие размеры и может использоваться в разных проектах. Nano разработана и продается компанией Gravitech. Ниже привожу технические характеристики:

Микроконтроллер - ATmega328
Рабочее напряжение - 5 В
Входное напряжение (рекомендуемое) - 7-12 В
Входное напряжение (предельное) - 6-20 В
Цифровые Входы/Выходы - 14 (6 из них могут использоваться как выходы ШИМ)
Аналоговые входы - 8
Постоянный ток через вход/выход - 40 мА
Флеш-память - 32 Кб (при этом 2 Кб используются для загрузчика)
ОЗУ - 2 Кб
EEPROM - 1 Кб
Тактовая частота - 16 МГц
Размеры - 1.85 см x 4.3 см

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

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

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


Платформа программируется посредством ПО Arduino , свежую версию которого можно скачать с официального сайта .

Но перед этим необходимо чтобы устройство определилось на вашем компьютере. Вот в этом моменте у меня и возникли сложности. При подключении Ардуино через USB шнур к компьютеру, в системе (Windows 7) платформа определилась как UART устройство. При этом автоматически драйвера не установились (драйвера можно скачать с сайта производителя чипов FTDI). Пришлось это сделать вручную. Для этого в диспетчере устройств надо выбрать неопознанное устройство. В свойствах выбрать пункт установить или обновить драйвер, а далее выбрать из списка уже установленных драйверов производителя FTDI модель USB serial converter. После установки драйвера появилось составное Usb устройство, и осталось только установить драйвер на порты COM и LTP. Точно таким же образом я выбрал драйвер того же производителя, и после этого моя Ардуина стала доступна для заливки скетчей.

Для проверки работоспособности откроем приложение для Arduino. На вкладке сервис (Tools), в меню плата (board) выбираем Arduino Nano w/ATmega328. Теперь скопируйте этот скетч себе в программу и нажмите кнопку загрузить.

/* Мигание светодиодом SOS. Слегка модифицированный стандартный скетч мигания светодиодом. Имитирует сигнал SOS азбуки Морзе, повторяя поочередно три коротких вспышки, три длинных, затем опять три коротких. Подробнее сдесь http://www.craft-tech.ru */ // Скетч включается при подаче питания, либо при нажатии кнопки reset void setup() { // работаем с 13 пином. pinMode(13, OUTPUT); } // функция loop запускает скетч по кругу void loop() { digitalWrite(13, HIGH); // подает напряжение на 13 ноку светодиода delay(100); // ждем 1 десятую секунды digitalWrite(13, LOW); // выключаем напряжение с 13 ноги delay(100); digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(100); digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(200); // ждем 2 десятые секунды digitalWrite(13, HIGH); // включаем напряжение delay(500); // ждем пол секунды digitalWrite(13, LOW); // выключаем напряжение delay(100); digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(100); digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(200); digitalWrite(13, HIGH); // и опять короткие вспышки delay(100); digitalWrite(13, LOW); delay(100); digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(100); digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(6000); // ждем 6 секунд и все повторяется заново }

После того как скетч скомпилируется и загрузится в ардуино, светодиод на плате начнет моргать повторяя сигнал SOS азбуки морзе. Это будет означать что настройка прошла успешно.

Вот так выглядит Arduino nano:

Существует несколько версий плат nano. Есть версия 2.X, а есть версия 3.0. Отличаются эти версии самим микроконтроллером. В младшей версии этой ардуинки используется чип ATmega168. Этот чип обладает меньшим объемом flash-памяти, энергонезависимой памяти, а так же пониженной тактовой частотой. Так как цена разных версий Arduino nano практически не отличается мы не будем рассматривать младшую из них.

Arduino nano v 3.0

Эта версия снабжена микроконтроллером ATmega328. В отличии от своего младшего собрата, он имеет вдвое большие объемы энергонезависимой и flash памяти. И может похвастаться тактовой частотой в 16 МГц.

Купить Arduino nano v 3.0

  • Качество практически не отличается от оригинальных плат, произведенных в Италии.
  • Цена в разы ниже. Итальянская ардуино нано стоит около 10$, а в Китае этот микроконтроллер обойдется в 2-2,5$
  • В российских магазинах наценка составляет 100-500%. При этом очень часто под видом оригинальной платы могут продавать китайские, да еще и очень низкого качества.
  • На алиэкспрессе вы легко можете найти надежных продавцов с хорошими отзывами.
  • Вы можете воспользоваться скидочными купонами и кэшбэк сервисами.

Характеристики

  • Микроконтроллер: ATmega328
  • Предельное напряжение питания: 5-20 В
  • Рекомендуемое напряжение питания: 7-12 В
  • Цифровых вводов/выводов: 14
  • ШИМ: 6 цифровых пинов могут быть использованы как выводы ШИМ
  • Аналоговые выводы: 8
  • Максимальная сила тока: 40 mAh с одного вывода и 500 mAh со всех выводов.
  • Flash память: 32 кб
  • SRAM: 2 кб
  • EEPROM: 1 кб
  • Тактовая частота: 16 МГц

Подключение питания к Arduino nano

Этот микроконтроллер можно питать через порт mini-USB от компьютера, паувербанка или от адаптера, подключенного в розетку.Так же пин +5V является не только выводом, но и вводом. Можно подавать ток на него и все это будет работать только при условии, что напряжение подаваемого тока строго равно пяти вольтам!
Еще можно подавать постоянный ток с напряжением от 6 до 20 вольт на пин VIN. Это предельные значения! При подачи напряжения 20 вольт на плате будет сильно греться стабилизатор напряжения. Рекомендуемое напряжение для питания через пин VIN — от 7 до 12 вольт.

Распиновка Arduino Nano v 3.0


Как уже было написано выше, плата имеет 14 цифровых пинов. На плате они помечены с ведущей буквой «D» (digital или цифровой). Они могут быть как входом так и выходом. Рабочее напряжение этих пинов составляет 5 В. Каждый из них имеет подтягивающий резистор и поданное на один из этих пинов напряжения ниже 5 вольт все равно будет считаться как 5 вольт (логическая единица).

Аналоговые пины на плате помечены ведущей «A». Эти пины являются входами и не имеют подтягивающих резисторов. Они измеряют поступающее на них напряжение и возвращают значение от 0 до 1024 при использовании функции analogRead(). Эти пины измеряют напряжение с точностью до 0,005 В.

Широтно-импульсная модуляция (ШИМ) Arduino nano

Если внимательно посмотреть на плату то можно увидеть значок тильды (~) рядом с некоторыми цифровыми пинами. Этот значок означает, что данный пин может быть использован как выход ШИМ. На некоторых платах ардуино этого значка нет так как производители не всегда находят место для этого символа на плате. У Arduino nano есть 6 выводов ШИМ, это пины D3, D5, D6, D9, D10 и D11. Для использования ШИМ у Arduino есть специальная функция analogWrite().

Другие пины:

  • rx0 и tx1 используются для передачи данных по последовательному интерфейсу.
  • Выводы D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK) рассчитаны для связи по интерфейсу SPI.
  • Так же на выводе D13 имеется встроенный в плату светодиод.
  • А4 (SDA) и А5 (SCL) могут использоваться для связи с другими устройствами по шине I2C. Подробнее про этот интерфейс вы можете почитать на википедии . В среде разработке Arduino IDE есть встроенная библиотека «wire.h» для более легкой работы с I2C.

Физические характеристики

Arduino Nano имеет следующие размеры: длина 42 мм и ширина 19 мм. Однако разъем USB немного выпирает за пределы печатной платы. Arduino Nano весит всего около 12 грамм. Плата имеет 4 отверстия для возможности ее закрепления на поверхности. Расстояние между выводами равняется 2,54 мм.

Принципиальная схема Arduino Nano