Сколько на arduino uno цифровых портов
Перейти к содержимому

Сколько на arduino uno цифровых портов

  • автор:

Распиновка плат Arduino UNO и NANO

На плате UNO расположено 14 цифровых входов/выходов и 6 аналоговых входов, USB-разъем, разъем для подключения блока питания на 7-12 В, разъем ICSP, а также кнопка перезагрузки.

Здесь можно скачать схему платы .

Расшифровка цветового обозначения:

Здесь возле платы ардуино обозначено разными цветами:

— серый цвет — физический пин микроконтроллера Atmega328;

— желтый цвет — номер порта, который управляется из программы;

— розовый цвет — номер выхода, который написан на самой плате;

— далее разным цветом указаны различные назначения портов;

Назначение и обозначения выводов:

VIN — питание от внешнего источника питания на 7-12 В (блок питания покупается отдельно, если он нужен).

USB — ардуионо можно подключать к компьютеру через USB-кабель (используется такой же кабель, как для подключения принтеров).

5V — через этот пин можно запитывать плату от источника питания на 5V, однако напряжение должно быть более-менее стабильным, поскольку оно подается непосредственно на микроконтроллер (минуя стабилизатор), и резкий скачек напряжения может вывести МК из строя.

3.3V — на этом пине будет висеть напряжение 3.3 В, которое формируется от внутреннего стабилизатора платы. Этот пин нужен для подключения некоторых внешних устройств, которым нужно именно 3.3 В, например некоторые ЖК-дисплеи. Однако максимальный ток вывода не должны превышать 50 мА.

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

IOREF — через этот вывод можно узнать рабочее напряжение микроконтроллера. Редко используется. На китайских платах этого вывода нет вовсе.

Reset — сброс микроконтроллера. Для сброса нужно подать низкий уровень на этот вход.

SDA, SCL — пины интерфейса TWI/I2C.

0. 13 — цифровые входы/выходы.

13 — вывод под номером 13 имеет одну особенность, на нем висит встроенный светодиод, который можно включить подав HIGH на этот вывод.

0 (RX), 1 (TX) — выводы порта UART (это тот же последовательный интерфейс Serial).

A1. A5 — аналоговые входы (но могут используется и в качестве цифровых)

Купить плату Arduino UNO по низкой цене можно по этой ссылке.

Arduino Uno входы

Микроконтроллер ATmega328(datasheet ATmega328p). Для начала работы, надо подключить Arduino к компьютеру кабелем USB, или подать питание 6 — 20 Вольт. На плате 14 цифровых входов/выходов и 6 аналоговых входов. Для работы с USB используется микроконтроллер ATmega8U2(datasheet ATmega8U2).

Arduino UNO

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

Входное напряжение (рекомендуемое)

Входное напряжение (предельное)

14 (6 из которых могут использоваться как выходы ШИМ)

Постоянный ток через вход/выход

Постоянный ток для вывода 3.3 В

32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика

Платформа Arduino Uno имеет:

14 цифровых(digital I/O) вход/выходов
6 из которых могут использоваться как выходы ШИМ они обозначены знаком ~

Цифровые входы/выходы

Цифровые выходы работают в диапазоне от 0 до 5 Вольт, могут выдавать 0(LOW) или 1(HIGH).
Максимальный ток не должен превышать 40 мА, а общий ток контактов должен быть не более 200 мА.

Выходы которые можно использовать как ШИМ — это 3, 5, 6, 9, 10, 11 Про ШИМ подробно описано в Arduino Nano шим

0 (RX) и 1 (TX) используются для приёма (RX) и передачи (TX) данных TTL

2 и 3 — Внешнее прерывание

4 (SDA) и 5 (SCL) — Осуществляет связь I2C (TWI), Для работы с I2C (TWI) необходимо установить библиотеку Wire

10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) — для связи SPI. Для работы с SPI необходимо установить библиотеку SPI

13 — Встроенный светодиод, подключенный к цифровому выводу 13

AREF — Опорное напряжение для аналоговых входов

6 аналоговых(analog I/O) входов и питание

Цифровые входы/выходы

Аналоговые входы: A0-A5
Каждый разрешением 10 бит (может принять до 1024 значений). Работают в диапазоне от 0 до 5 Вольт(можно изменить диапазон выводом AREF).

Выводы питания:
VIN — Сюда подаётся питания от внешнего источника 6-20 Вольт, если вы будете питать плату не от разъёма USB.
5V — Можно запитать плату от источника напряжения 5 Вольт.
3,3V — С этого вывода можно снять напряжение 3,3 Вольт. Максимальное потребление тока 50 мА.
GND — Выводы заземления(«-» источника питания).

Разъем питания 6-20 Вольт и разъем USB

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

На разъём питания подаётся напряжение от источника питания 6-20 Вольт.

Разъём USB используется для связи с компьютером и для питания платы.

разъем ICSP

Разъём ICSP

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

Дополнительную информацию можно прочитать

Arduino Nano Pro Mini Uno Mega Сравнение Ардуино NANO — UNO — MEGA — Pro Mini
Arduino Nano описание Описание разных версий плат
Arduino Nano cnc shield Для удобства работы. Беспаечная сборка.
Arduino Nano datasheet Набор документации

Дополнительные файлы

Лучшие видео на YouTube

Изучаем Ардуино с нуля

Последнее из блога

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

Применение Световых Датчиков в Проектах на Arduino. Световые датчики Arduino являются ключевым элементом в создании интеллектуальных и адаптивных устройств. В данной статье мы рассмотрим разнообразные способы использования световых датчиков в проектах на платформе Arduino, а также предоставим практические примеры и рекомендации.

Принцип Работы Световых Датчиков Arduino. Световые датчики Arduino предоставляют уникальные возможности для создания устройств, реагирующих на изменения освещенности. В данной статье мы подробно рассмотрим принцип работы световых датчиков, их виды и области применения в проектах на базе Arduino.

Обзор Световых Датчиков Arduino: Фоторезисторы и Фотодиоды. Датчики освещенности являются важной частью мира Arduino, обеспечивая возможность создания устройств, чувствительных к уровню света в окружающей среде. В этой статье мы подробно рассмотрим два популярных типа световых датчиков Arduino: фоторезисторы и фотодиоды.

Датчики света Ардуино: Изучение и Применение. Световые датчики Arduino предоставляют огромные возможности для создания проектов, чувствительных к окружающей освещенности. В этой статье мы углубимся в мир световых датчиков, рассмотрим их разновидности, принципы работы и применение в практических проектах.

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

Разнообразие Датчиков Arduino и их Функциональность.Arduino, как платформа для создания электронных проектов, обрела огромную популярность благодаря своей простоте и гибкости. Однако, чтобы в полной мере раскрыть потенциал Arduino, необходимо понимание работы различных типов датчиков. В этой статье мы исследуем разнообразие датчиков Arduino, их функциональность и области применения.

Arduino Uno

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

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

На плате Arduino Uno версии R2 для упрощения процесса обновления прошивки добавлен резистор, подтягивающий к земле линию HWB микроконтроллера 8U2.

Изменения на плате версии R3 перечислены ниже:

  • Распиновка 1.0: добавлены выводы SDA и SCL (возле вывода AREF), а также два новых вывода, расположенных возле вывода RESET. Первый — IOREF — позволяет платам расширения подстраиваться под рабочее напряжение Ардуино. Данный вывод предусмотрен для совместимости плат расширения как с 5В-Ардуино на базе микроконтроллеров AVR, так и с 3.3В-платами Arduino Due. Второй вывод ни к чему не подсоединен и зарезервирован для будущих целей.
  • Улучшена помехоустойчивость цепи сброса.
  • Микроконтроллер ATmega8U2 заменен на ATmega16U2.

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

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

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

Схема и исходный проект

Файлы EAGLE: arduino-uno-Rev3-reference-design.zip (ПРИМЕЧАНИЕ: совместимо с версиями Eagle не ниже 6.0)

Примечание: В файлах проекта Ардуино могут фигурировать микроконтроллеры ATmega8, 168 или 328. Например, в последних моделях используется микроконтроллер ATmega328, но на схеме может быть указан микроконтроллер ATmega8. Это не является ошибкой, поскольку все три микросхемы полностью совместимы между собой по выводам.

Питание

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. Этот вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера Ардуино. В зависимости от напряжения, считанного с вывода IOREF, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5В, так и с 3.3В-устройствами.

Память

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

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

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

  • Последовательный интерфейс: выводы 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. Встроенный светодиод, подсоединенный к выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW — выключается.

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

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

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

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

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

Связь

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

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

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

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

Arduino Uno программируется с помощью программного обеспечения Ардуино (скачать). Для этого из меню Tools > Board необходимо выбрать «Arduino Uno» с микроконтроллером, соответствующим вашей плате. Для получения более подробной информации см. справку и примеры.

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

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

Исходный код прошивки микроконтроллера 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-загрузчик затрется. Для получения более подробной информации см. эти инструкции, составленные пользователями.

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

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

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

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

Защита USB от перегрузок

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

Физические характеристики

Максимальная длина и ширина печатной платы Uno составляет 6.9 см и 5.4 см соответственно, с учетом разъема USB и разъема питания, выступающих за пределы платы. Четыре крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.

Плата Arduino Uno – описание, схема, распиновка

Arduino Uno – плата от компании Arduino, построенная на микроконтроллере ATmega 328.

Плата имеет на борту 6 аналоговых входов, 14 цифровых выводов общего назначения (могут являться как входами, так и выходами), кварцевый генератор на 16 МГц, два разъема: силовой и USB, разъем ISCP для внутрисхемного программирования и кнопку горячей перезагрузки устройства. Для стабильной работы плату необходимо подключить к питанию либо через встроенный USB Разъем, либо подключив разъем питания к источнику от 7 до 12В. Через переходник питания плата также может работать и от батареи формата Крона.

Основное отличие платы от предыдущих – для взаимодействия по USB Arduino Uno использует отдельный микроконтроллер ATmega8U2. Прошлые версии Arduino использовали для этого микросхему программатора FTDI.

Несложно догадаться, что благодаря своему итальянскому происхождению, слова “Arduino” и “Uno” взяты именно из этого языка. Компания назвалась “Arduino” в честь короля Италии 11 века Ардуина, а Уно переводится с итальянского как “первый”.

Arduino Uno R3 (ATmega 328P)

Arduino Uno R3 (ATmega 328P)

Arduino Uno R3 (ATmega 328P)

Arduino Uno R3 (ATmega 328P)

Размеры и габариты платы

Печатная плата Arduino Uno является Open-Hardware, поэтому все ее характеристики доступны в открытом доступе.

Длина и ширина платы составляют 69 мм x 53 мм.

Силовой и USB разъемы выступают за границы печатной платы на 2 мм.

Расстояние между выводами соответствует стандарту 2.54 мм, однако расстояние между 7 и 8 контактами составляет 4 мм.

Разъемы питания

Плата Arduino Uno имеет на борту 3 способа подключения питания: через USB, через внешний разъем питания и через разъем Vin, выведенный на одну из гребенок сбоку. Платформа имеет на борту встроенный стабилизатор, позволяющий не только автоматически выбирать источник питания, но и выравнивать ток до стабильных 5 вольт, необходимых контроллеру для работы.

Внешнее питание можно подавать как напрямую от USB порта компьютера, так и от любого AC/DC блока питания через разъем питания или USB.

На плате предусмотрено несколько выводов, позволяющих запитывать от нее подключенные датчики, сенсоры и актуаторы. Все эти выводы помечены:

  • Vin – вход питания, используется для получения питания от внешнего источника. Через данных вывод происходит только подача питания на плату, получить оттуда питание для внешних устройств невозможно. На вход Vin рекомендуется подавать напряжение в диапазоне от 7В до 20В, во избежании перегрева и сгорания встроенного стабилизатора.
  • 5V – источник пятивольтового напряжения для питания внешних устройств. При получении питания платой из любых других источников (USB, разъем питания или Vin) на этом контакте вы всегда сможете получить стабильное напряжение 5 вольт. Его можно вывести на макетную плату или подать напрямую на необходимое устройство.
  • 3V3 – источник 3.3 вольтового напряжения для питания внешних устройств. Работает по такому-же принципу, что и контакт 5V. С данной ножки также можно вывести напряжение на макетную плату, либо подать на необходимый датчик/сенсор напрямую.
  • GND – контакт для подключения земли. Необходим для создания замкнутой цепи при подключении к контактам Vin, 5V или 3V3. Во всех случаях ножку GND необходимо выводить как минус, иначе цепь не будет замкнута и питание (что внешнее, что внутреннее) не подасться.

Характеристики памяти

Платформа Arduino Uno имеет на борту микроконтроллер ATmega328, который обладает Flash, SRAM и EEPROM памятью.

  • FLASH – 32kB, из которых 0.5kB используется для хранения загрузчика
  • SRAM (ОЗУ) – 2kB
  • EEPROM – 1kB (доступна с помощью библиотеки EEPROM)

Arduino Uno распиновка

Arduino Uno распиновка

Принципиальная схема Arduino Uno R3

Принципиальная схема Arduino Uno R3

Контакты ввода-вывода и интерфейсы

На плате выведены 14 цифровых пинов (контактов), любой из которых может работать как на вывод информации, так и на ввод. Для этого в коде программ применяются специальные функции:

Функция pinMode служит для задания режима работы контакта, будет-ли он работать на выход или на вход. В данной функции задается номер контакта, которым мы в дальнейшем собираемся управлять.

digitalRead()

Функция считывает текущее значение с заданного контакта – его значение может быть HIGH или LOW.

digitalWrite()

Функция передает определенное значение на заданный контакт – оно может быть HIGH или LOW.

Все выводы обладают пятивольтовой логикой, то есть выдают логическую единицу как напряжение 5В.

Каждый вывод платы имеет нагрузочный резистор номиналом 20-50 кОм и может пропускать до 40 мА, но по умолчанию все они отключены.

Также, на контактных площадках Arduino Uno выведены специальные интерфейсы подключения различных цифровых устройств:

Аналоговые входы: контакты A0, A1, A2, A3, A4, A5

Arduino Uno имеет на своей платформе 6 аналоговых входов с разрешением 10 Бит на каждый вход. Данное разрешение говорит нам о том, что сигнал, приходящий на него, можно оцифровать в диапазоне от 0 до 1024 условных значений.

Считывать значения с данных контактов можно функцией analogRead(), а передавать значения – функцией analogWrite().

Так как Arduino Uno обладает пятивольтовой логикой, то и значение будет находиться в диапазоне от 0 до 5 вольт, однако при помощи функции analogReference() можно изменять верхний предел.

Последовательный UART интерфейс: контакты 0 (RX) и 1 (TX)

Данные выводы используются для обмена данными по протоколу UART. Контакт RX используется для получения данных, а контакт TX – для их отправки. Эти выводы подключены к соответствующим контактам последовательной шины схемы ATmega8U2 USB-to-TTL, выступающей в данном контексте в роли программатора.

Внешнее прерывание: контакты 2 и 3

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

Вызов прерывания может быть задан по-разному:

  • на младшем значении
  • на переднем или заднем фронте
  • при изменении значения

Более подробно прерывания описаны в отдельной статье нашей Вики.

ШИМ: контакты 3, 5, 6, 9, 10, и 11

Любой из контактов 3, 5, 6, 9, 10, и 11, может генерировать сигнал Широтно-импульсной модуляции (ШИМ, PWM) с разрешением 8 Бит. Для этого в коде программы используется функция analogWrite().

SPI интерфейс: контакты 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)

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

I2C интерфейс: контакты 4 (SDA) и 5 (SCL)

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

Встроенный светодиод: контакт 13

Для проверки вашего кода по ходу его написания, самый удобный способ индикации – встроенный светодиод. Подав значение HIGH на 13 контакт, он загорается на плате красным цветом, тем самым показывая, что условие вашей программы выполнилось (или наоборот, что-то пошло не так). 13 контакт удобно использовать в коде программы для проверки ошибок и отладки.

Кстати, хотим заметить, что последовательно к 13-ому контакту подключен резистор на 220 Ом, поэтому не стоит использовать его для вывода питания ваших устройств.

Дополнительные контакты: AREF и RESET

Помимо всех вышеперечисленных, на платформе Uno имеется еще 2 дополнительных контакта.

AREF

Данный контакт отвечает за определение опорного напряжения аналоговых входов платформы. Используется только с функцией analogReference().

RESET

Данный контакт необходим для аппаратной перезагрузки микроконтроллера. При подаче сигнала низкого уровня (LOW) на контакт Reset, происходит перезагрузка устройства.

Данный контакт обычно соединен с аппаратной кнопкой перезагрузки, установленной на плате.

Связь с внешним миром

Для осуществления связи с внешними устройствами (компьютером и другими микроконтроллерами) на плате существует несколько дополнительных устройств.

На контактах 0 (RX) и 1 (TX) контроллер ATmega328 поддерживает UART – последовательный интерфейс передачи данных. ATmega8U2, выполняющий на плате роль программатора, транслирует этот интерфейс через USB, позволяя платформе общаться с компьютером через стандартный COM-порт. Прошивка, установленная в контроллер ATmega8U2, имеет на борту стандартные драйверы USB-COM, поэтому для подключения не потребуется никаких дополнительных драйверов.

Внимание! На платах китайского производства, вместо контроллера ATmega8U2 используется другой программатор – CH340G, который не распознается Windows в автоматическом режиме. Для него необходимо установить дополнительный драйвер, о чем подробно написано в нашем блоге – Установка драйверов микросхемы CH340G для Arduino.

При помощи мониторинга последовательной шины, называемого Serial Monitor, среда Arduino IDE посылает и получает данные от Arduino. При обмене данными на плате видно мигание светодиодов RX и TX. При использовании UART-интерфейса через контакты 0 и 1, светодиоды не мигают.

Плата может взаимодействовать по UART-интерфейсу не только через аппаратным, но и через программным способом. Для этого в среде Arduino IDE предусмотрена библиотека SoftwareSerial.

Также, на плате предусмотрены выводы основных интерфейсов взаимодействия с периферией: SPI и I2C (TWI).

Среда программирования Arduino IDE

Платформа Arduino Uno, как и все другие Arduino-совместимые платформы, программируется в среде Arduino IDE. Для работы с ней в настройках программы необходимо выбрать нужную платформу. Это можно сделать в верхнем меню -> Tools -> Boards -> Arduino UNO.

Выбор микроконтроллера зависит от того, какой стоит именно на вашей плате. Обычно это ATmega328.

Плата как правило поставляется уже прошитая необходимым загрузчиком и должна определяться системой в автоматическом режиме (за исключением плат на основе программатора CH340G). Связь микроконтроллера с компьютером осуществляется стандартным протоколом STK500.

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

Программная перезагрузка Arduino

Обычно, в микроконтроллерах перед загрузкой кода предусмотрен вход платы в специальный режим загрузки, однако Arduino Uno избавлена от данного действия для упрощения загрузки в нее программ. Стандартно, перед загрузкой каждый микроконтроллер получает сигнал DTR (digital reset), но в данной плате вывод DTR подключен к микроконтроллеру ATmega8U2 через 100 нФ конденсатор и программатор сам управляет процессом загрузки новой прошивки в контроллер. Таким образом, загрузка прошивки происходит моментально после нажания кнопки Upload в среде Arduino IDE.

Эта функция имеет еще одно интересное применение. Каждый раз при подключении платформы к компьютеру с OC Windows, MacOS или Linux, происходит автоматическая перезагрузка платы и в следующие полсекунды на плате работает загрузчик. Таким образом, для избежания получения некорректных данных, во время загрузки прошивок происходит задержка первых нескольких байтов информации.

Arduino Uno поддерживает отключение автоматической перезагрузки. Для этого необходимо разорвать линию RESET-EN. Еще один способ отключения автоматической перезагрузки – подключение между линиями RESET-EN и линией питания 5V резистора номиналом 110 Ом.

Защита USB разъема от перенапряжения

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *