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

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

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


A000066 iso both.jpg

Arduino Uno[1]

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

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

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

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

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

С чего начать

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

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

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

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

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

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

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

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

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

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

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

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

Внимание

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

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

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

Питание

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

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

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

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

  • Vin – контакт для подачи на Arduino Uno(Купить Arduino Uno на Aliexpress) входного напряжения, когда используется внешний источник питания (в противовес 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(Купить ATmega328 на Aliexpress) имеет 32 Кб памяти, из которой 0,5 Кб занято загрузчиком. Кроме того, на плате есть 2 Кб памяти SRAM и 1 Кб памяти EEPROM (запись и чтение с этой памяти осуществляется с помощью библиотеки EEPROM).

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

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

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

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

  • Последовательная передача данных: 0-ой (RX) и 1-ый (TX) контакты. Используются для получения (RX) и передачи (TX) последовательных TTL-данных. Эти контакт подключены к соответствующим контактам на чипе (Купить ATmega8U2 на Aliexpress), конвертирующем 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(Купить Arduino Uno на Aliexpress) также обладает 6 аналоговыми контактами, названными от A0 до A5 и имеющими 10-битное разрешение (т.е. они позволяют работать с данными в диапазоне от 1 до 1024). По умолчанию вольтовый диапазон составляет 0-5 вольт, однако верхнюю границу диапазона можно поменять при помощи контакта AREF и функции analogReference().

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

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

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

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

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

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

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

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

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

Версии

Плата Arduino Uno(Купить Arduino Uno на Aliexpress) версии 3.0 имеет следующие функции:

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

См.также

Ссылки на различные партнерские ресурсы

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