Устройство микроконтроллера arduino uno

Arduino Uno: распиновка, схема подключения и программирование

Arduino Uno — флагманская платформа для разработки на языке программирования С++.

Uno выполнена на микроконтроллере ATmega328P с тактовой частотой 16 МГц. На плате предусмотрены 20 портов входа-выхода для подключения внешних устройств, например плат расширения или датчиков.

Видеообзор

Подключение и настройка

Шаг 1

Подключите плату к компьютеру по USB. Для коммуникации используйте кабель USB (A — B).

Шаг 2

Установите и настройте интегрированную среду разработки Arduino IDE.

Что-то пошло не так?

Пример работы

В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод L , подключенный к 13 пину микроконтроллера.

После загрузки программы встроенный светодиод L начнёт мигать раз в секунду.

Это значит, всё получилось, и можно смело переходить к другим экспериментам на Ардуино.

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Arduino Uno является 8-битный микроконтроллер фирмы Microchip — ATmega328P на архитектуре AVR с тактовой частотой 16 МГц. Контроллер обладает тремя видами памяти:

Микроконтроллер ATmega16U2

Микроконтроллер ATmega328P не содержит USB интерфейса, поэтому для прошивки и коммуникации с ПК на плате присутствует дополнительный микроконтроллер ATmega16U2 с прошивкой USB-UART преобразователя. При подключении к ПК Arduino Uno определяется как виртуальный COM-порт.

Микроконтроллер ATmega328P общается с ПК через сопроцессор ATmega16U2 по интерфейсу UART используя сигналы RX и TX , которые параллельно выведены на контакты 0 и 1 платы Uno. Во время прошивки и отладки программы, не используйте эти пины в своём проекте.

Светодиодная индикация

Имя светодиода Назначение
ON Индикатор питания платформы.
L Пользовательский светодиод на 13 пине микроконтроллера. Используйте определение LED_BUILTIN для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.
RX и TX Мигают при прошивке и обмене данными между Uno и компьютером. А также при использовании пинов 0 и 1 .

Порт USB Type-B

Разъём USB Type-B предназначен для прошивки и питания платформы Arduino. Для подключения к ПК понадобится кабель USB (A — B).

Разъём питания DC

Коннектор DC Barrel Jack для подключения внешнего источника напряжения в диапазоне от 7 до 12 вольт.

Понижающий регулятор 5V

Понижающий линейный преобразователь NCP1117ST50T3G обеспечивает питание микроконтроллера и другой логики платы при подключении питания через разъём питания DC или пин Vin. Диапазон входного напряжения от 7 до 12 вольт. Выходное напряжение 5 В с максимальным выходным током 1 А.

Понижающий регулятор 3V3

Понижающий линейный преобразователь LP2985-33DBVR обеспечивает напряжение на пине 3V3 . Регулятор принимает входное напряжение от линии 5 вольт и выдаёт напряжение 3,3 В с максимальным выходным током 150 мА.

Кнопка сброса

Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера.

ICSP-разъём ATmega328P

ICSP-разъём выполняет две полезные функции:

ICSP-разъём ATmega16U2

ICSP-разъём предназначен для программирования микроконтроллера ATmega16U2. А подробности распиновки читайте в соответствующем разделе.

Источник

Arduino UNO R3

Легендарная платформа для прототипирования
и изучения микроэлектронных устройств

  • Описание
  • Характеристики
  • Схемы
  • Распиновка
  • Подключение
  • Фотографии

Что такое Arduino?

Arduino — это семейство электронных платформ, предназначенных для изучения проектирования электроники.

Arduino UNO является самым популярным продуктом компании Arduino Software. Сразу после выхода, платформа стала продаваться сотнями тысяч штук, завоевав любовь миллионов юных радиолюбителей и породив тысячи интересных проектов.

Основой начинки платформы является микроконтроллер ATmega 328, представляющий собой логическую микросхему обработки данных с тактовой частотой 16 МГц. От нее на плату выведены 14 цифровых и 6 аналоговых портов общего назначения, а также все самые популярные интерфейсы: I2C, UART и SPI.

Основными достоинствами флагмана стали:
  • Простота использования
  • Быстрое изучение
  • Удобная среда разработки
  • Открытый исходный код
  • Сообщество поклонников
  • Тысячи готовых проектов
  • Возможности расширения
  • Широкая переферия

Arduino в цифрах

Год релиза платформы Arduino

Продуктов продается ежедневно

Различных видов платформ

Пользователей в сообществе

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

Микроконтроллер

Atmel ATmega328 с тактовой частотой 16 МГц

Питание платформы

Рекомендуемое напряжение: 7-12В DC, рабочее — 5В DC

Цифровые порты

14 портов ввода-вывода, 6 из которых имеют возможность вывода ШИМ сигнала

Аналоговые входы

6 шт., каждый с разрешением 10 бит (от 0 до 1024 усл. значений)

Цифровые интерфейсы

1 x I2C, 1 x SPI, 1 x UART, 1 x ICSP

Размер памяти

32Кб Флеш-памяти, 2Кб ОЗУ, 1Кб EEPROM

Размеры платы

Физические габариты платы 69 x 53 мм, вес 25г

Варианты питания

Через разъем питания, через разъем USB, через разъем Vin на контактной линейке

Токовая защита

Встроенная защита USB порта от короткого замыкания и перенапряжений

За счет открытой архитектуры и программного обеспечения с открытым исходным кодом, компании Arduino удалось выпустить инструмент, способный показать, насколько легким может стать изучение микроэлектроники, схемотехники и программирования.

Схемы платформы

Ниже представлены ссылки на скачивание всех схем Arduino UNO:
Принципиальная схема, файлы EAGLE и распиновка платы

Принципиальная схема
Файлы трассировки .EAGLE
Контактная распиновка платы
Datasheet для ATmega328

Распиновка Arduino UNO

На изображении выше представлена схема контактной распиновки платы
третьей версии — Arduino UNO R3, с указанием назначения каждого вывода платформы.

Если вы или ваш ребенок хочет изучить основы микроэлектроники, робототехники или интернета вещей, Arduino — идеальное начало!

Подключение платы

При покупке официальной версии, подключение Arduino UNO к компьютеру выполняется автоматически.
При использовании китайских аналогов или других arduino-совместимых платформ, во время подключения следует учесть несколько важных моментов.

Подключение официальной платы

1. Скачивание и установка среды разработки

Для программирования платформы вам необходимо скачать и установить свежую версию среды разработки под Arduino — «Arduino IDE». Ее можно скачать с официального сайта по ссылке ниже.

При использовании Windows на русском языке, программа автоматически выставит в интерфейсе тоже русский язык.

В открывшемся окне следует нажать на кнопку «JUST DOWNLOAD«.

2. Первый запуск среды разработки

После того, как вы скачаете и установите Arduino IDE, вам необходимо подключить Arduino UNO в любой свободный порт компьютера и осуществить первичную настройку.

После того, как вы подключили вашу плату к компьютеру, Windows сообщит об обнаружении нового устройства и автоматически выполнит установку всех необходимых драйверов для работы с ней. После того, как вы увидели сообщение «Устройство установлено и готово к использованию», переходите к настройке программы.

3. Настройка подключения платы

Наверху программы размещен список пунктов меню. Вам необходим пункт Инструменты Плата.
В этом окне вам необходимо выбрать, какая плата была подключена к вашему компьютеру. Выбираем «Arduino/Genuino Uno» .

Инструменты Плата Arduino/Genuino Uno

После выбора платы, нам необходимо выбрать порт. Переходим ко вкладке Инструменты Порт.

Если вы уже подключили свою ардуино к компьютеру, то у вас должны отобразиться все занятые на текущий момент COM-порты. Выбираем любой из доступных и проверяем, правильный-ли порт мы выбрали.

4. Проверка работоспособности платы

Самый простой способ проверить, работает-ли ваша ардуино на том порту, который вы выбрали — это попробовать залить в нее тестовый скетч (прошивку).

Из верхнего меню открываем: Файл Примеры 01.Basics Blink

В новом окне у вас должен открыться код программы, которая мигает светодиодом. Для того, чтобы загрузить ее в вашу плату, необходимо нажать кнопку «загрузка».

В панели работы со скетчами — вторая кнопка:

В нижней части программы (в черном окне) показывается процесс загрузки прошивок в плату. Если все прошло нормально, вы увидите сообщение «загрузка успешно завершена».

Подключение неофициальных плат

1. Скачивание и установка среды разработки

Для программирования платформы вам необходимо скачать и установить свежую версию среды разработки под Arduino — «Arduino IDE». Ее можно скачать с официального сайта по ссылке ниже.

При использовании Windows на русском языке, программа автоматически выставит в интерфейсе тоже русский язык.

В открывшемся окне следует нажать на кнопку «JUST DOWNLOAD«.

2. Первый запуск среды разработки

После того, как вы скачаете и установите Arduino IDE, вам необходимо подключить Arduino UNO в любой свободный порт компьютера и осуществить первичную настройку.

После того, как вы подключили вашу плату к компьютеру, Windows сообщит об обнаружении нового устройства.

Обратите внимание на элемент платы, выделенный красной рамкой — это программатор. Если возле USB разъема вы видите данную микросхему, ваша Ардуино имеет встроенный китайский программатор CH340G, драйверы для которого Windows автоматически найти не сможет.

Если ваша Arduino UNO — Китай, драйвер придется устанавливать обязательно. Об этом система оповестит вас сообщением «Программное обеспечение для устройства не было установлено».

Если все произошло именно так, как мы описали выше, приступаем к установке драйверов по этой инструкции: Инструкция по установке CH340G

После того, как вы увидите сообщение «Устройство установлено и готово к использованию», переходите к настройке программы.

3. Настройка подключения платы

Наверху программы размещен список пунктов меню. Вам необходим пункт Инструменты Плата.
В этом окне вам необходимо выбрать, какая плата была подключена к вашему компьютеру. Выбираем «Arduino/Genuino Uno» .

Инструменты Плата Arduino/Genuino Uno

После выбора платы, нам необходимо выбрать порт. Переходим ко вкладке Инструменты Порт.

Если вы уже подключили свою ардуино к компьютеру, то у вас должны отобразиться все занятые на текущий момент COM-порты. Выбираем любой из доступных и проверяем, правильный-ли порт мы выбрали.

4. Проверка работоспособности платы

Самый простой способ проверить, работает-ли ваша ардуино на том порту, который вы выбрали — это попробовать залить в нее тестовый скетч (прошивку).

Из верхнего меню открываем: Файл Примеры 01.Basics Blink

В новом окне у вас должен открыться код программы, которая мигает светодиодом. Для того, чтобы загрузить ее в вашу плату, необходимо нажать кнопку «загрузка».

В панели работы со скетчами — вторая кнопка:

В нижней части программы (в черном окне) показывается процесс загрузки прошивок в плату. Если все прошло нормально, вы увидите сообщение «загрузка успешно завершена».

Фотографии разных версий платформы

Ниже представлены фотографии Arduino разных версий и от разных производителей.
Многие интересуются, чем китайская версия отличается от оригинала? Можем с уверенностью сказать, что основное отличие официальных платформ от аналогов заключается только в цене и упаковке платы. В разных версиях нет никаких функциональных отличий, все платформы работают абсолютно одинаково хорошо: будь это китайская, американская или итальянская плата.

Источник

Arduino UNO

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

«Uno» (в переводе с итальянского — «один») назван по случаю предстоящего выпуска Arduino IDE 1.0. Совместно с Arduino IDE 1.0 данные устройства будут базовыми версиями Ардуино. Uno — эталонная модель платформы Arduino и является последней в серии USB-плат.

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

Микроконтроллер ATmega328P
Рабочее напряжение 5 В
Входное напряжение (рекомендованное) 7-12 В
Входное напряжение (предельное) 6-20 В
Цифровых входов / выходов 14 (6 из которых с поддержкой ШИМ)
ШИМ входов / выходов 6
Аналоговых входов / выходов 6
Максимальный ток одного вывода 20 мА
Максимальный выходной ток вывода 3.3В 50 мА
Flash-память 32 Кбайт (0.5 Кбайт из которых выделены под bootloader)
Энергозависимая память (SRAM) 2 Кбайт
Энергонезависимая память (EEPROM) 1 Кбайт
Частота процессора 16 МГц
Встроенный светодиод на 13 порту
Длина 68.6 мм
Ширина 53.4 мм
Вес 25 г

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

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

Arduino Mini программируется с помощью программного обеспечения Arduino IDE (скачать).

ATmega328 в Arduino Uno выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по оригинальному протоколу STK500 (описание, заголовочные файлы C).

Тем не менее, микроконтроллер ATmega328 можно прошить и через разъем для внутрисхемного программирования ICSP (In-Circuit Serial Programming), не обращая внимания на загрузчик; информацию о распиновке разъема ICSP для прошивки Mini через загрузчик смотри на соответствующей странице. Инструкции по использованию внешнего программатора для прошивки контроллера смотри здесь.

Исходный код прошивки микроконтроллера ATmega16U2 (или 8U2 на платах версии R1 и R2) находится в свободном доступе. Прошивка ATmega16U2/8U2 включает в себя DFU-загрузчик (Device Firmware Update), позволяющий обновлять прошивку микроконтроллера. Для активации режима DFU необходимо:

  • На платах версии R1: замкнуть перемычку на обратной стороне платы (возле изображения Италии), после чего сбросить 8U2.
  • На платах версий R2 и выше — для упрощения перехода в режим DFU присутствует резистор, подтягивающий к земле линию HWB микроконтроллера 8U2/16U2.

После перехода в DFU-режим для загрузки новой прошивки можно использовать программное обеспечение Atmel’s FLIP (для Windows) или DFU programmer (для Mac OS X и Linux). Альтернативный вариант — прошить микроконтроллер через разъем для внутрисхемного программирования ISP с помощью внешнего программатора, однако в этом случае DFU-загрузчик затрется. Для получения более подробной информации смотри эти инструкции, составленные пользователями официального портала.

Защита USB

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

Отличия

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

Питание

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

В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер или аккумулятор/батарея. Штекер адаптера (диаметр — 2.1мм, центральный контакт — положительный) необходимо вставить в соответствующий разъем питания на плате. В случае питания от аккумулятора/батареи, ее провода необходимо подсоединить к выводам Gnd и Vin разъема POWER.

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

Ниже перечислены выводы питания, расположенные на плате:

  • VIN. Напряжение, поступающее в Arduino непосредственно от внешнего источника питания (не связано с 5В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, когда устройство запитано от внешнего адаптера.
  • 5V. На вывод поступает напряжение 5В от стабилизатора напряжения на плате, вне независимости от того, как запитано устройство: от адаптера (7 — 12В), от USB (5В) или через вывод VIN (7 — 12В). Запитывать устройство через выводы 5V или 3V3 не рекомендуется, поскольку в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
  • 3V3. 3.3В, поступающие от стабилизатора напряжения на плате. Максимальный ток, потребляемый от этого вывода, составляет 50 мА.
  • GND. Выводы земли.
  • IOREF. Этот вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера Arduino. В зависимости от напряжения, считанного с вывода IOREF, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5В, так и с 3.3В-устройствами.

Память

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

Ввод / вывод

Смотрите также соответствие выводов Arduino и ATmega328. Распиновка для микроконтроллеров ATmega8, 168 и 328 идентична.

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

Помимо этого, некоторые выводы Arduino Uno могут выполнять дополнительные функции:

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

TWI: вывод A4 или SDA и вывод A5 или SCL. С использованием библиотеки Wire данные выводы могут осуществлять связь по интерфейсу TWI.

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

Помимо перечисленных на плате существует еще несколько выводов:

  • AREF. Опорное напряжение для аналоговых входов. Может задействоваться функцией analogReference().
  • Reset. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения

Связь

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

Библиотека SoftwareSerial позволяет реализовать последовательную связь на любых цифровых выводах Arduino Uno.

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

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

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Arduino Uno спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Один из выводов ATmega8U2/16U2, участвующий в управлении потоком данных (DTR), соединен с выводом RESET микроконтроллера ATmega328 через конденсатор номиналом 100 нФ. Когда на линии DTR появляется ноль, вывод RESET также переходит в низкий уровень на время, достаточное для перезагрузки микроконтроллера. Данная особенность используется для того, чтобы можно было прошивать микроконтроллер всего одним нажатием кнопки в среде программирования Arduino IDE. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии DTR.

Однако эта система может приводить и к другим последствиям. При подключении Uno к компьютерам, работающем на Mac OS X или Linux, его микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой. После сброса на Arduino Uno активизируется загрузчик на время около полсекунды. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е. все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения. Соответственно, если в программе, работающей на Arduino, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Arduino, осуществляет отправку спустя секунду после установки соединения.

На плате Uno существует дорожка (отмеченная как «RESET-EN»), разомкнув которую, можно отключить автоматический сброс микроконтроллера. Для повторного восстановления функции автоматического сброса необходимо спаять между собой выводы, расположенные по краям этой дорожки. Автоматический сброс также можно выключить, подключив резистор номиналом 110 Ом между выводом RESET и 5В.

Для получения более подробной информации смотри соответствующую ветку форума на официальном сайте.

Источник

Adblock
detector