Урок 2. Плата Arduino UNO R3. Описание, характеристики.

Arduino UNO R3

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

Предыдущий урок     Список уроков     Следующий урок

В качестве контроллера для программ уроков я выбрал плату Arduino UNO R3. Но ничего не мешает использовать и другие платы. Просто UNO R3 самый распространенный вариант контроллеров Ардуино.

 

Общая информация о контроллере.

Arduino UNO R3 выполнен на микроконтроллере  ATmega328. У него:

  • 14 цифровых портов входа-выхода ( 6 из них поддерживают режим ШИМ модуляции);
  • 6 аналоговых входов;
  • частота тактирования 16 МГц;
  • USB порт;
  • разъем питания;
  • разъем внутрисхемного программирования;
  • кнопка сброса.

У платы есть все необходимые компоненты для обеспечения работы микроконтроллера. Достаточно подключить USB кабель к компьютеру и подать питание. Микроконтроллер установлен на колодке, что позволяет легко заменить его в случае выхода из строя.

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

Тип микроконтроллера ATmega328P
Напряжение питания микроконтроллера 5 В
Рекомендуемое напряжение питания платы 7 – 12 В
Предельно допустимое напряжение питания платы 6 – 20 В
Цифровые входы-выходы 14 (из них 6 поддерживают ШИМ)
Выходы ШИМ модуляции 6
Аналоговые входы 6
Допустимый ток цифровых выходов 20 мА
Допустимый ток выхода 3,3 В 50 мА
Объем флэш памяти (FLASH) 32 кБ (из которых 0,5 кБ используется загрузчиком)
Объем оперативной памяти (SRAM) 2 кБ
Объем энергонезависимой памяти (EEPROM) 1 кБ
Частота тактирования 16 мГц
Длина платы 68,6 мм
Ширина платы 53,4 мм
Вес 25 г

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

Контроллер программируется из интегрированной среды программного обеспечения Ардуино (IDE). Программирование происходит под управлением резидентного загрузчика по протоколу STK500. Аппаратный программатор при этом не требуется.

Микроконтроллер можно запрограммировать через разъем для внутрисхемного программатора ICSP, не используя, загрузчик. Исходный код программы-загрузчика  находится в свободном доступе.

Отличие от других контроллеров Ардуино.

Arduino UNO R3, в отличие от предыдущих версий, не использует для подключения к компьютеру мост USB-UART FTDI. Эту функцию в нем выполняет микроконтроллер ATmega16U2.

Система питания.

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

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

Для подключения питания могут быть использованы следующие выводы.

Vin Питание платы от внешнего источника питания. Не связано с питанием 5 В от USB или выходами других стабилизаторов. Через этот контакт можно получать питание для своего устройства, если плата питается от адаптера.
5 V Выход стабилизатора напряжения платы. На нем напряжение 5 В при любом способе питания. Питать плату через этот вывод не рекомендуется, т.к. не используется стабилизатор, что может привести к выходу микроконтроллера из строя.
3 V 3 Напряжение 3,3 В от стабилизатора напряжения на плате. Предельно допустимый ток потребления от этого вывода 50 мА.
GND Общий провод.
IOREF На выводе информация о рабочем напряжении платы. Плата расширения может считать значение сигнала и переключиться на режим питания 5 В или 3,3 В.

Память.

У микроконтроллера три типа памяти:

  • 32 кБ флэш  (FLASH);
  • 2 кБ оперативной памяти (SRAM);
  • 1 кБ энергонезависимой памяти (EEPROM).

 

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

Каждый из 14 цифровых выводов может быть использован в качестве выхода или входа. Уровень напряжения на выводах 5 В. Рекомендовано вытекающий и втекающий ток каждого вывода ограничивать на уровне 20 мА. Предельно допустимое значение этого параметра составляет 40 мА. Каждый вывод имеет внутренний подтягивающий резистор сопротивлением 20-50 кОм. Резистор может быть отключен программно.

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

Некоторые выводы могут выполнять дополнительные функции.

Последовательный интерфейс: выводы 0 (Rx) и 1 (Tx). Используются для приема (Rx) и передачи (Tx) последовательных данных логических уровней TTL. Эти выводы подключены к выводам передачи данных микросхемы ATmega16U2, используемой в качестве моста USB-UART.

Внешние прерывания: выводы 2 и 3. Эти выводы могут быть использованы как входы внешних прерываний. Программно могут быть установлены на прерывание по низкому уровню, положительному или отрицательному фронту, или на изменение уровня сигнала.

ШИМ: выводы 3, 5, 6, 9, 10, 11. Могут работать в режиме ШИМ модуляции с разрешением 8 разрядов.

Последовательный интерфейс SPI: выводы 10(SS), 11(MOSI), 12(MISO), 13(SCK).

Светодиод: вывод 13. Светодиод, подключенный к выводу 13. Светится при высоком уровне сигнала на выводе.

Интерфейс TWI: вывод A4 или SDA и A5 или SCL. Коммуникационный интерфейс TWI.

У платы Arduino UNO есть 6 аналоговых входов, обозначенных A0-A5. Разрешающая способность аналогового цифрового преобразования 10 разрядов. По умолчанию, входное напряжение измеряется относительно земли в диапазоне 0-5 В, но может быть изменено с помощью вывода AREF и программных установок.

Еще 2 вывода платы имеют функции:

AREF. Опорное напряжение АЦП микроконтроллера.

RESET. Низкий уровень на этом выводе вызывает сброс микроконтроллера.

 

Коммуникационные интерфейсы.

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

Микроконтроллер ATmega328 также поддерживает коммуникационные интерфейсы I2C (TWI) и SPI.

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

Для того, чтобы не приходилось каждый раз перед загрузкой программы нажимать кнопку сброс, на плате UNO реализована аппаратная функция сброса, инициируемая с подключенного компьютера. Один из сигналов управления потоком данных (DTR) микросхемы ATmega16U2 подключен к выводу сброса микроконтроллера ATmega328 через конденсатор емкостью 0,1 мкФ.  Когда сигнал DTR переходит в низкое состояние, формируется импульс сброса микроконтроллера. Это решение позволяет загружать программу одним нажатием кнопки из интегрированной среды программирования Arduino (IDE).

Но такая функция может приводить к отрицательным последствиям. При подключении платы UNO к компьютеру с операционной системой Mac Os X или Linux, микроконтроллер будет сбрасываться при каждом соединении программы с платой. В течение половины секунды на плате UNO будет запущен загрузчик. Несмотря на то, что программа загрузчика игнорирует посторонние данные, она может принять несколько байтов из пакета сразу после установки соединения. Если в программе на плате Ардуино предусмотрено получение каких-либо данных при первом запуске, необходимо отправлять данные с задержкой примерно на 1 секунду после соединения.

 

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

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

В плате Arduino UNO линия питания от интерфейса  USB защищена восстанавливаемым предохранителем. При превышении тока свыше 500 мА, предохранитель разрывает цепь до устранения короткого замыкания.

Схема контроллера Arduino UNO.

Arduino_Schema

Предыдущий урок     Список уроков     Следующий урок

4

Автор публикации

не в сети 4 дня

Эдуард

285
Комментарии: 1946Публикации: 200Регистрация: 13-12-2015

29 комментариев на «Урок 2. Плата Arduino UNO R3. Описание, характеристики.»

  1. Здравствуйте. Где можно узнать допустимую величину силы тока для выводов Vin, 5v и GND. А то подключать советские 7-сегментые индикаторы типа АЛС321 даже с транзисторными ключами страшновато (20 мА на один сегмент).

    0
  2. у вас на фото не та андурина что вы описываете и схема не от той что на фото….. у вас китай с усб 304 чипом

    0
      • Первым делом спасибо за уроки.
        По поводу разницы в платах, у Вас написано «Микроконтроллер установлен на колодке, что позволяет легко заменить его в случае выхода из строя.», а на фотке МК впаян. Начинающий может не понять КАК же заменить МК.

        1
  3. Таблицу соответствия бы надписей на Ардуино номерам.
    Например,
    OneWire sensDs (14); // датчик подключен к выводу 14,
    а на плате это А0.

    0
  4. Купил Arduino Uno R3, почему-то не работает с числами типа long, unsigned long. Никакой информации по этому поводу нигде не нашел.

    0
  5. Здравствуйте! А можете провести ликбез?
    Получается, что нельзя одновременно подключить к Arduino Uno геймпад PS2 и 12 сервомоторов, так как всего 14 цифровых выходов?
    http://www.techmonkeybusiness.com/images/Tech/PS2_Servo_Control.png
    А можно ли решить эту проблему, использовав контроллер под 32 сервомотора?
    https://ru.aliexpress.com/item/New-Version-32-Channel-Robot-Servo-Control-Board-Servo-Motor-Controller-PS2-Wireless-Control-USB/32329729842.html
    И то есть получается, что нужно подключить от Arduino 4 провода GND, 5V, TX, RX?
    https://ae01.alicdn.com/kf/HTB1FVXXHVXXXXXhXVXXq6xXFXXXT/116191644/HTB1FVXXHVXXXXXhXVXXq6xXFXXXT.jpg?size=108104&height=563&width=750&
    Только я не могу понять, как будет происходить управление.

    0
  6. Скажите, пожалуйста, можно ли эту плату использовать, как программатор сторонних мк? Через тот же SPI?

    0
  7. «Это решение позволяет загружать программу одним нажатием кнопки из интегрированной среды программирования Андроид (IDE).»

    Здесь не описка -IDE Андроид или IDE Ардуино?

    0
  8. Здравствуйте,
    На плате, что на фото, на месте контакта IOREF стоит маркировка 5V. Это выход стабилизатора 5V?

    0
  9. Здравствуйте Эдуард!
    Большое спасибо за Ваши уроки.
    У меня такой вопрос:
    Собираю данные с аналогового порта, плата Arduino UNO запитана от внешнего источника, по нажатию кнопки хочу вывести на монитор порта. При запуске монитора порта ожидание сигнала нажатия кнопки сбрасывается, установка резистора 110 ом между контактами +5v и Reset не помогает.
    Если монитор порта уже запущен, то всё работает нормально.
    Подскажите, как можно решить проблему.

    0
  10. Здравствуйте Эдуард!
    Решением вопроса моего предыдущего письма оказалось снижение сопротивления резистора между контактами +5v и Reset до 80 ом.
    Извините за беспокойство.

    0
  11. Попробовал использовать аналоговые пины как цифровые — работает. Можно указать в хар-ках «20 цифровых входов/выходов, в т.ч. 6 с взможностью вывода сигнала ШИМ (3,5,6,9,10,11), 6 с возможностью использования как аналоговые входы(14-20 или А0-А5)» — выходит так?

    0
      • А в характеристиках — нет. Получается будто бы Piranha Uno обладает этим чудесным свойством (если сравнивать хар-ки), а остальные Un’ы — нет

        0
  12. Цитата:»Предельно допустимое значение этого параметра составляет 40 мА. Каждый вывод имеет внутренний подтягивающий резистор сопротивлением 20-50 кОм. Резистор может быть отключен программно.»

    Здесь противоречие: если резистор 20 кОм, то выходной ток не может быть более 0,25 мА: 5 В : 20 000 Ом = 0,25 мА . При величине резистора 50 кОм, ток на выходе ещё меньше — 0,1 мА.
    Очевидно, подтягивающие резисторы имеют величину порядка сотен Ом; 5 В : 250 Ом = 20 мА

    0
    • Написал и только потом понял, что нет никакого противоречия; предельные величины токов указаны, очевидно, для случая, когда подтягивающие резисторы выключены программно и разработчик должен сам рассчитать величину добавочного резистора.

      0
      • Ток выхода указан для ключей в выходных каскадах. Это ток через открытый транзистор, а не через подтягивающий резистор.

        0
  13. Уважаемый, Эдуард!
    Интерфейсы I2C, SPI привязаны к конкретным выводам — это обусловлено железом. Или реализации их чисто программная?
    С уважением Александр.

    0
    • Здравствуйте!
      Да, интерфейсы о которых идет речь реализованы внутренними аппаратными узлами микроконтроллера. Загрузил байт в регистр микроконтроллера и он сам передает его через интерфейс. А программа в этот момент может обрабатывать другие задачи.
      Но, ничего не мешает реализовать эти интерфейсы программным способом. Конечно, при этом ресурсы микроконтроллера будут в большей степени использоваться для работы с интерфейсами.

      0
  14. Здравствуйте, Эдуард!
    Не подскажете, у Вас есть уроки по I2C?
    Владеете ли Вы программой Flprog?

    0
    • Здравствуйте!
      Нет. Как-то не дошел до интерфейса I2C.
      Визуальным программированием Ардуино (Flprog) тоже не занимался. Считаю это довольно ограниченный способ программирования. Иногда быстродействия Си не хватает, на Ассемблер приходится переходить.

      0

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

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

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".