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

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

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


Рис. 1. Фото плат Arduino Uno и Genuino Uno
Рис. 1. Фото плат Arduino Uno и Genuino Uno

Arduino Uno[1]

Arduino Uno – это микроконтроллерная плата на базе ATmega328P. У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выходной ШИМ), 6 входных аналоговых контактов, кварцевый кристалл на 16 МГц, USB-соединение, разъем для питания, ICSP-гребешок и кнопка сброса. Она оснащена всем, что необходимо для поддержки микроконтроллера. То есть, чтобы начать, достаточно просто подключить ее к компьютеру (при помощи USB-кабеля) или запитать от адаптера, конвертирующего переменный ток в постоянный, или от батарейки. Работая с этой платой, можно почти не беспокоиться о том, что вы можете сделать что-то не так. В самом худшем случае вам надо будет просто поменять кристалл, который стоит всего несколько долларов, после чего можно будет снова приступить к работе.

«Uno» на итальянском значит «один», и это название было выбрано, чтобы обозначить релиз IDE Arduino 1.0. Модель Uno и IDE Arduino версии 1.0 были базисными версиями Arduino, за которыми последовали усовершенствованные версии. Плата Uno – первая из серии USB-плат Arduino и базисная модель платформы Arduino. Расширенный список действующих, старых и устаревших плат Arduino смотрите здесь.

О гарантии читайте тут.

На этой странице можно почитать о том, как настроить платы, использовать IDE Arduino и побыстрее приступить к делу.

Если нужна помощь, то...

Купить

  • Arduino Uno (Купить Arduino Uno на Aliexpress)

С чего начать

На базе Arduino Uno можно создать множество различных проектов, а руководства по их созданию можно найти тут. Вот несколько примеров оттуда:

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

  • Микроконтроллер – ATmega328P
  • Рабочее напряжение – 5 вольт
  • Входное напряжение (рекомендуемое) – 7-12 вольт
  • Входное напряжение (лимит) – 6-20 вольт
  • Цифровые I/O контакты – 14 (на 6 есть ШИМ)
  • Цифровые I/O контакты с поддержкой ШИМ – 6
  • Входные аналоговые контакты – 6
  • Максимальная сила тока на один I/O контакт – 20 миллиампер
  • Максимальная сила тока на контакт 3.3V – 50 миллиампер
  • Flash-память – 32 Кб (ATmega328P), из которых 0,5 Кб используются загрузчиком
  • SRAM – 2 Кб (ATmega328P)
  • EEPROM – 1 Кб (ATmega328P)
  • Тактовая частота – 16 МГц
  • Встроенный светодиод (LED_BUILTIN) – 13-ый
  • Длина – 68,6 мм.
  • Ширина – 53,4 мм.
  • Вес – 25 грамм

Распиновка

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

Arduino Uno – это устройство, распространяемое по принципу «open-source». Вы можете создать собственную плату, используя следующие файлы:

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

Плату Arduino Uno можно программировать через IDE Arduino (среду разработки Arduino). Зайдите в нее, а потом кликните на Инструменты > Плата > Arduino/Genuino Uno (Tools > Board > Arduino/Genuino Uno), чтобы IDE Arduino понимала, с каким микроконтроллером ей придется иметь дело. О языке программирования Arduino читайте тут, а о руководствах – тут.

Чип ATmega328P на Arduino/Genuino Uno идет уже предварительно запрограммированным, т.е. на нем уже установлен загрузчик, который позволяет вам загружать на плату новый код без использования внешнего аппаратного программатора. Загрузчик коммуницирует при помощи протокола STK500(описание, заголовочные файлы).

Впрочем, загрузчик можно обойти и программировать микроконтроллер при помощи ICSP-коннектора, использующего Arduino ISP или похожее устройство. Более подробно читайте тут.

На репозитории Arduino можно скачать прошивку для ATmega16U2(или ATmega8U2 для плат rev1 и rev2). Чип ATmega16U2/ATmega8U2 загружается с помощью загрузчика DFU, который можно активировать:

  • На платах rev1: припаяв перемычку на задней стороне платы (рядом с картой Италии), а затем сбросив ATmega8U2
  • На платах rev2 и новее: при помощи резистора притянув линию HWB (от «hardware bootloader», что значит «аппаратный загрузчик») на ATmega16U2]/ATmega8U2 к «земле», тем самым упрощая переход в режим DFU.

Чтобы загрузить новую прошивку, можно воспользоваться либо программой FLIP от Atmel (для Windows), либо программатором DFU (для Mac OS X и Linux). Или можно воспользоваться ISP-коннектором (это перезапишет DFU-загрузчик). Более подробно читайте в этом пользовательском руководстве.

Внимание

Модель Arduino Uno/Genuino Uno оснащена восстанавливаемым предохранителем, защищающим USB-порты вашего компьютера от коротких замыканий и энергетических перегрузок. Хотя у компьютеров, как правило, есть собственная защита от этих напастей, предохранитель на Uno добавляет этой защите еще один слой. Если сила тока на USB-порт превысит 500 миллиампер, предохранитель автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.

Отличия от других плат

Модель Uno отличается от предшественников в том, что не использует чип для FTDI-драйвера, конвертирующий USB в последовательные данные. Вместо этого он использует ATmega16U2 (или ATmega8U2 на версиях до rev2), запрограммированный как устройство, конвертирующее USB в последовательные данные.

Питание

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

Внешним (не USB) источником питания может быть либо адаптер, конвертирующий переменный ток в постоянный, либо батарея. Адаптер можно подключить, вставив 2,1-миллиметровый штекер с положительным центральным контактом в разъем для питания на Arduino. Провода от батареи можно подключить к контактам GND и Vin на коннекторе POWER.

Плата может работать от внешнего источника питания, дающего напряжение 6-20 вольт. Впрочем, если на плату будет подаваться менее 7 вольт, то 5-вольтовый контакт, возможно, будет получать менее 5 вольт, из-за чего работа платы может быть нестабильной. Но если подать на плату более 12 вольт, регулятор напряжения может перегреться и повредить плату. Поэтому мы рекомендуем подавать на плату от 7 до 12 вольт.

Контакты коннектора POWER (т.е. коннектора, через который на плату подается питание):

  • Vin – контакт для подачи на Arduino Uno входного напряжения, когда используется внешний источник питания (в противовес 5 вольтам от USB-соединения или другого регулированного источника питания). Вы можете подать напряжение на этот контакт напрямую, либо через разъем для питания, который имеет доступ к этому контакту.
  • 5V – дает отрегулированные 5 вольт от регулятора платы. Плату можно питать либо от DC-разъема для питания (7-12 вольт), либо через USB-коннектор (5 вольт), либо через Vin-контакт (7-12 вольт). Подача напряжения через 5-вольтовый и 3,3-вольтовый контакты идет в обход регулятора и может повредить плату. Делать это не рекомендуется.
  • 3V3 – напряжение в 3,3 вольт, генерируемое встроенным регулятором платы. Максимальное потребление тока – 50 миллиампер.
  • GND – контакты для «земли».
  • IOREF – этот контакт является источником эталонного напряжения, необходимого для работы контроллера. Правильно настроенный «шилд» может прочитать напряжение на этом контакте и выбрать нужный источник питания или включить на выходных устройствах преобразователи, позволяющие работать либо с 5, либо с 3,3 вольтами.

Память

Чип ATmega328 имеет 32 Кб памяти, из которой 0,5 Кб занято загрузчиком. Кроме того, на плате есть 2 Кб памяти SRAM и 1 Кб памяти EEPROM (запись и чтение с этой памяти осуществляется с помощью библиотеки EEPROM).

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

Распиновку между контактами Arduino и портами ATmega328P смотрите тут. Чипы ATmega8, ATmega168 и ATmega328 имеют одну и ту же распиновку.

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

Кроме того, у некоторых контактов есть специальные функции:

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

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

Вот еще несколько специализированных контактов Arduino Uno:

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

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

На Arduino Uno есть множество средств для коммуникации с компьютером, другими платами Arduino и другими микроконтроллерами. Во-первых, чип ATmega328 может общаться через последовательную коммуникацию UART TTL (5 вольт), доступную на 0-ом (RX) и 1-ом (TX) цифровых контактах. Чип ATmega16U2 перенаправляет последовательную коммуникацию на USB, а ПО на компьютере видит его, как виртуальным COM-порт. Прошивка ATmega16U2 использует стандартные USB COM драйверы, поэтому никаких внешних драйверов этому чипу не требуется. Однако на Windows понадобится файл формата *.inf. В IDE Arduino есть монитор порта, позволяющий отправлять и получать от платы текстовые данные. При передаче данных через чип USB-Serial и USB-коммуникацию с компьютером (но не через последовательную коммуникацию на 0-ом и 1-ом контактах) на плате будут загораться светодиоды RX и TX. Библиотека SoftwareSerial позволяет настроить последовательную коммуникацию на любом из цифровых контактов Arduino Uno.

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

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

Если вы хотите загрузить на Arduino Uno новый скетч, для этого необязательно нажимать кнопку сброса вручную. Эта модель устроена таким образом, что позволяет выполнить сброс при помощи ПО, которое запущено на компьютере, подключенном к Arduino. Линия DTR на ATmega8U2/ATmega16U2, т.е. одна из аппаратных линий на чипе, отвечающих за управление потоками, через 100-нанофарадный конденсатор подключена к линии RESET на ATmega328. Когда эта линия получает значение LOW, значение на линии RESET падает настолько, что этого хватает для сброса чипа. IDE Arduino использует эту возможность, чтобы позволить вам загружать код простым нажатием на кнопку загрузки, находящуюся на панели инструментов. Это значит, что у загрузчика будет более короткий таймаут, поскольку передачу на DTR значения LOW можно привязать к началу загрузки.

Эта система влияет на работу Uno и в другом. Когда Uno подключена к компьютеру на Mac OS X или Linux, то сбрасывается каждый раз при настройке соединения между нею и программой (через USB). Следующие полсекунды на Uno выполняется запуск загрузчика. Хотя Uno запрограммирована на игнорирование дефектных данных (то есть всего, что не имеет отношение к загрузке нового кода), она все же перехватит несколько байт, отправленных ей после открытия соединения. Таким образом, если первом запуске скетча плата получает разовую конфигурацию или другие данные, сделайте так, чтобы программа, с которой он коммуницирует, перед отправкой этих данных подождала примерно секунду.

На плате Uno есть линия, обрезав которую, можно отключить автосброс. Чтобы снова его включить, нужно припаять друг к другу контактные площадки, находящиеся по обе стороны этой линии. Эта линия называется RESET-EN. Кроме того, автоматический сброс можно отключить, подключив 110-омовый резистор между контактом 5V и линией RESET. Более подробно читайте в этом посте на форуме Arduino.

Версии

Плата Arduino Uno версии 3.0 имеет следующие функции:

  • Распиновка 1.0. Добавлены контакты SDA и SCL, которые находятся рядом с контактом AREF, два новых контакта, расположенных рядом с контактом RESET, и контакт IOREF, который позволяет «шилду» адаптировать напряжение, идущее от платы. В будущем «шилды» будут совместимы и с платами на AVR, которые работают на 5 вольтах, и с Arduino Due, которая работает на 3,3 вольтах. Второй контакт ни к чему не подключен, он зарезервирован для использования в будущем.
  • Более стабильная RESET-цепь
  • Вместо ATmega8U2 теперь стоит ATmega16U2

См.также

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