Arduino Nano
Arduino Nano — це повнофункціональний мініатюрний пристрій на базі мікроконтролера ATmega328 (Arduino Nano 3.0) або ATmega168 (Arduino Nano 2.x), адаптований для використання з макетної плати. За функціональністю пристрій схожий на Arduino Duemilanove, і відрізняється від нього розмірами, відсутністю роз'єму живлення, а також іншим типом (Mini-B) USB-кабелю. Arduino Nano розроблено і випускається фірмою Gravitech.
Характеристики
Мікроконтролер | 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. Дані виводи можуть бути налаштовані в якості джерел переривань, що виникають при різних умовах: при низькому рівні сигналу, по фронту, по спаду або при зміні сигналу.
ШІМ: виводи 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.
Програмування
Arduino Nano програмується за допомогою програмного забезпечення Ардуіно. Для цього з меню Tools> Board необхідно вибрати «Arduino Diecimila, Duemilanove, or Nano w / ATmega168» або «Arduino Duemilanove or Nano w / ATmega328» (в залежності від мікроконтролера на вашій платі).
ATmega168 і ATmega328 в Arduino Nano випускається з прошитим завантажувачем, що дозволяє завантажувати в мікроконтролер нові програми без необхідності використання зовнішнього програматора. Взаємодія з ним здійснюється за оригінальним протоколу STK500.
Проте, мікроконтролер можна прошити і через роз'єм для внутрисхемного програмування ICSP (In-Circuit Serial Programming), не звертаючи уваги на завантажувач.
Автоматичне (програмне) скидання
Щоб кожен раз перед завантаженням програми не було потрібно натискати кнопку скидання, Arduino Nano спроектований таким чином, що дозволяє здійснювати його скидання програмно з підключеного комп'ютера. Один з виходів мікросхеми FT232RL, який бере участь в управлінні потоком даних (DTR), з'єднаний з виходом RESET мікроконтролера ATmega168 або ATmega328 через конденсатор номіналом 100 нФ. Коли на лінії DTR з'являється нуль, вихід RESET також переходить в низький рівень на час, достатній для перезавантаження мікроконтролера. Дана особливість використовується для того, щоб можна було прошивати мікроконтролер всього одним натисненням кнопки в середовищі програмування Ардуіно. Така архітектура дозволяє зменшити таймаут завантажувача, оскільки процес прошивки завжди синхронізований зі спадом сигналу на лінії DTR.
Однак ця система може призводити і до інших наслідків. При підключенні Arduino Nano до комп'ютерів, що працюють на Mac OS X або Linux, його мікроконтролер буде скидатися при кожному з'єднанні програмного забезпечення з платою. Після скидання на Arduino Nano активізується завантажувач на час близько півсекунди. Незважаючи на те, що завантажувач запрограмований ігнорувати сторонні дані (тобто всі дані, які не стосуються процесу прошивки нової програми), він може перехопити кілька перших байт даних з посилки, що відправляється платі відразу після установки з'єднання. Відповідно, якщо в програмі, що працює на Ардуіно, передбачено отримання від комп'ютера будь-яких налаштувань або інших даних при першому запуску, переконайтеся, що програмне забезпечення, з яким взаємодіє Ардуіно, здійснює відправку через секунду після установки з'єднання.