Arduino Uno

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

Плата Arduino Uno  построена на микроконтроллере ATmega328. Имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру кабелем USB или подать питание при помощи адаптера AC/DC или батареи.

В отличие от предыдущих версий плат, использовавших USB-UART преобразователь на микросхеме FTDI FT232RL для связи по USB, новый Arduino  Uno использует микроконтроллер ATmega16U2.

Имеется недорогая альтернатива — плата Arduino Uno CH340G на USB-UART преобразователе CH340G.

Для работы CH340G необходимо загрузить драйвера.

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

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

 

Обозначение разъемов и сигналов портов ввода/вывода платы Arduino Uno.
Обозначение разъемов и сигналов портов ввода/вывода платы Arduino Uno.

Питание

Arduino Uno может получать напряжение питания через подключение USB или от внешнего источника. Источник питания выбирается автоматически.

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с центральным положительным полюсом. Провода от аккумулятора подключаются к выводам Gnd и Vin разъема питания. [sape count=3 block=1 orientation=1]
Плата может работать при внешнем питании от 6 В до 20 В. При напряжении питания ниже 7 В, вывод 5V может выдавать менее + 5 В, при этом Arduino Uno может работать нестабильно. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 В до 12 В.

Выводы питания:

  • VIN — вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод.
  • 5V — регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.
  • 3V3 — напряжение на выводе 3.3 В генерируемое встроенным регулятором на плате. Максимальное потребление тока 50 мА.
  • GND — выводы заземления.

Память

Микроконтроллер ATmega328 имеет 32 кБ флэш памяти, из которых 0.5 кБ используется для хранения загрузчика, а также 2 кБ ОЗУ (SRAM) и 1 Кб EEPROM, (которая читается и записывается с помощью библиотеки EEPROM).

Входы и Выходы

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

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

Arduino Uno имеет 6 аналоговых входов, обозначенных как A0 .. A5 — каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, но имеется возможность изменить верхний предел с помощью вывода AREF и функции analogReference(). Некоторые выводы имеют дополнительные функции:

  • I2C: 4 (SDA) и 5 (SCL) — посредством выводов осуществляется связь I2C (TWI), для создания которой используется библиотека Wire в Arduino IDE.

Дополнительная пара выводов платформы:

  • AREF — опорное напряжение для аналоговых входов. Используется с функцией analogReference().
  • Reset — низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

Связь

Arduino Uno имеет несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega328 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). Установленная на плате микросхема ATmega16U2 направляет данный интерфейс через USB, программы на стороне компьютера «общаются» с платой через виртуальный COM порт. Прошивка ATmega16U2 использует стандартные драйвера USB COM, установка сторонних драйверов не нужна, но на Windows для подключения потребуется файл ArduinoUNO.inf. Мониторинг последовательной шины (Serial Monitor) программы Arduino IDE позволяет посылать и получать текстовые данные при подключении к Uno. Светодиоды RX и TX на плате будут мигать при передаче данных при USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).

С помощью библиотеки SoftwareSerial можно последовательно передавать данные через любой из цифровых выводов Arduino Uno.

ATmega328 поддерживает интерфейсы I2C (TWI) и SPI. В Arduino включена библиотека Wire для удобства использования шины I2C.

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

Платформа программируется с помощью программного обеспечения Arduino IDE. Из меню Arduino IDE Настройки ->Платы выбирается «Arduino Uno» (согласно установленному микроконтроллеру). Подробная информация по языку программирования Arduino находится в справочнике программиста.

Микроконтроллер  ATmega328 поставляется с записанным  загрузчиком,  облегчающим запись  новых программ  без использования внешних  программаторов. Связь осуществляется оригинальным протоколом STK500.

Имеется возможность запрограммировать микроконтроллер через выводы блока ICSP (внутрисхемное программирование).

Автоматическая (программная) перезагрузка

Arduino Uno разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой Arduino на компьютере, а не нажатием кнопки на плате. Одна из линий DTR микросхемы ATmega16U2, управляющих потоком данных (DTR), подключена к выводу перезагрузки микроконтроллеру ATmega328. Активация данной линии подачей сигнала низкого уровня перезагружает микроконтроллер. Программа Arduino загружает код нажатием кнопки  Загрузка в самой среде программирования. Подача сигнала низкого уровня по линии DTR скоординирована с началом записи кода, что сокращает задержки загрузчика.

На Arduino Uno имеется возможность отключить автоматическую перезагрузку разрывом линии, маркированной как «RESET- EN». Автоматическую перезагрузку также возможно отключить подключением резистора номиналом 110 Ом между источником +5 В и данной линией.