Описание
Arduino Nano — компактная плата на микроконтроллере ATmega328 с USB-преобразователем CH340. Она невелика по размерам, полнофункциональна и подходит для установки на макетную плату.
С электрической точки зрения плата аналогична Arduino Diecimila, но у нее больше аналоговых входов и есть встроенный джампер эталонного напряжения AREF (+5 В). Разъема питания и переключателя источника тока нет: плата сама определяет и выбирает наиболее подходящий источник.
Особенности
- Микроконтроллер ATmega328: 32 кБ флэш-памяти (2 кБ занимает загрузчик), 2 кБ ОЗУ и 1 кБ EEPROM
- Микроконтроллер поставляется с записанным загрузчиком: новые программы записываются без внешнего программатора по протоколу STK500
- 14 цифровых выводов с рабочим напряжением 5 В: каждый настраивается как вход или выход функциями pinMode(), digitalWrite() и digitalRead(), может пропускать до 40 мА и имеет нагрузочный резистор 20–50 кОм (по умолчанию отключен)
- 8 аналоговых входов с разрешением 10 бит (1024 значения), диапазон измерения до 5 В относительно земли, верхний предел меняется функцией analogReference()
Связь с компьютером
ATmega328 поддерживает последовательный интерфейс UART TTL (5 В) на выводах 0 (RX) и 1 (TX). USB-преобразователь CH340 передает этот интерфейс по USB и создает на компьютере виртуальный COM-порт. Для CH340 может понадобиться установка отдельного драйвера, например в Windows.
Монитор последовательной шины (Serial Monitor) программы Arduino позволяет отправлять и получать текстовые данные. Светодиоды RX и TX на плате мигают при передаче данных через USB-преобразователь (но не при последовательной передаче через выводы 0 и 1).
Библиотека SoftwareSerial позволяет организовать последовательную передачу данных через любой из цифровых выводов. ATmega328 также поддерживает интерфейсы I2C (TWI) и SPI, для удобной работы с I2C в Arduino есть библиотека Wire.
Выводы и интерфейсы
- Последовательная шина: 0 (RX) и 1 (TX), выводы подключены к USB-преобразователю
- Внешнее прерывание: 2 и 3, можно настроить на вызов прерывания по низкому уровню, переднему или заднему фронту или при изменении значения, см. функцию attachInterrupt()
- ШИМ: 3, 5, 6, 9, 10 и 11, разрешение 8 бит, функция analogWrite()
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
- LED: 13, встроенный светодиод горит при высоком уровне на выводе
- I2C: 4 (SDA) и 5 (SCL), библиотека Wire
- AREF: опорное напряжение для аналоговых входов, используется с функцией analogReference()
- Reset: низкий уровень перезагружает микроконтроллер, обычно применяется для кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате
