Плата Arduino Uno R3: схема, описание, подключение устройств

Плата Arduino Uno – центр большой империи Arduino, самое популярное и самое доступное устройство. В ее основе лежит чип ATmega – в последней ревизии Ардуино Уно R3 – это ATmega328 (хотя на рынке можно еще встретить варианты платы UNO с ATmega168). Большинство ардуинщиков начинают именно с платы UNO. В этой статье мы рассмотрим основные особенности, характеристики и устройство платы Arduino Uno ревизии R3, требования к питанию, возможности подключения внешних устройств, отличия от других плат (Mega, Nano).

Плата Arduino Uno

Контроллер Uno является самым подходящим вариантом для начала работы с платформой: она имеет удобный размер (не слишком большой, как у Mega и не такой маленький, как у Nano), достаточно доступна из-за массового выпуска всевозможных клонов, под нее написано огромное количество бесплатных уроков и скетчей.

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

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

Изображения плат Ардуино Уно

Оригинальная плата выглядит следующим образом:

Многочисленные китайские варианты выглядят вот так:

Еще примеры плат:

Общие сведения

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

В отличие от всех предыдущих плат, использовавших FTDI USB микроконтроллер для связи по USB, новый Ардуино Uno использует микроконтроллер ATmega8U2. “Uno” переводится как один с итальянского и разработчики тем самым намекают на грядущий выход Arduino 1.0. Новая плата стала флагманом линейки плат Ардуино. Для сравнения с предыдущими версиями можно обратиться к полному списку плат Arduino.

Где купить Arduino Uno

Минимальные цены на платы UNO можно найти в китайских электронных магазинах. Если у вас есть несколько недель на ожидание, вы можете существенно сэкономить, купив дешево (в районе 200-300 рублей) с бесплатной доставкой. Причем можно найти как самые простые варианты, так и официальные или “почти оригинальные” платы на базе оригинального микроконтроллера. Еще одна группа товаров – необычные платы со встроенными WiFi (на базе ESP8266 или ESP32), дополнительными разъемами для более удобного подключения периферии. Вот некоторые варианты, которые можно купить у проверенных поставщиков на Алиэкспрессе:

Arduino UNO R3 (CH340G) MEGA328P. Типичный представитель плат Ардуино на Aliexpress с ценой ниже 250 рублейКачественная плата Arduino UNO R3 на CH340G. Комплект без кабеля с минимальной ценой около 220 рублейArduino оптом – 10 плат контроллера UNO R3 с MEGA328P ATMEGA16U2 на борту
Официальный Arduino UNO R3 MEGA328P на базе ATMEGA16U2 – максимальное качествоПлата MegaPower Uno на базе оригинальных ATmega328 R3, FTDI FT232RLОригинальный Arduino UNO R3 (плата на базе оригинальных микросхем MEGA и ATMEGA16U2) с USB кабелем в картонной коробке
Два в одном! Arduino UNO со встроенным Sensor Shield (Atmega328P Atmega16U2 плюс Sensor I/O Shield)Arduino Uno и WiFi под одной крышей: R3 ATmega328P+ESP8266 (32Mb memory)Отличный вариант от KeyeStudio – UNO R3 MEGA328P ATMEGA16U2 с совмещенным Sensor Shield

Если вы интересуетесь наборами Ардуино, то более подробный обзор доступных вариантов вы можете найти на нашем сайте.

Особенности

Когда кто-нибудь говорит об Ардуино, он, скорее всего, имеет ввиду электронную монтажную плату, которая называется Arduino Uno. Это плата с микроконтроллером. С помощью нее можно создавать и управлять абсолютно разными проектами: датчик движения, датчик температуры, можно создать робота, который принесет вам тапочки. Все ограничивается только фантазией человека, и финансовыми средствами. Например, если создавать систему «умный» дом с помощью Ардуино, надо будет потратиться.

Ардуино можно сравнить с материнской платой компьютера, которая также имеет процессор, находящийся под кулером. Материнская плата с процессором выполняет те же функции, что и Arduino Uno. К ней подключаются другие устройства: дисплей, дисководы, жесткие диски, и вся остальная периферия. Также можно подключить много различных устройств. Конечно, плодотворная работа требует некоторых знаний: схемотехники, электроники, и даже основ программирования на языке С++. Однако, поверьте, это несложно, если все подробно рассмотреть и изучить.

Показанная выше плата не является единственной платой в этом семействе. Имеется множество плат с другими микроконтроллерами, другими характеристиками для различных целей. Однако Ардуино UNO является наиболее популярной, и лучше всех подходит для первых проектов. Это не оригинальная плата. Оригинальные стоят очень дорого. Их присылают из Италии в картонных коробках, а не в полиэтиленовых пакетах. Но китайские клоны также вполне работоспособны, и смогут заменить оригинальные платы за вполне адекватную цену.

Конструктивные особенности

На рисунке показаны те элементы, без которых невозможно понять устройство. USB порт необходим для подключения платы к компьютеру, для создания и закачки в нее программы работы. Также, при применении этого подключения по USB порту подается входное питание. Штекер подключения источника питания не особо необходим для работы, так как для питания используется порт USB. При одновременном подключении питания от внешнего источника и от USB, питание от порта USB автоматически отключается. Работу устройства в этом случае обеспечивает внешний источник питания.

RESET (сброс) – эта кнопка применяется для выполнения сброса микропроцессора до первоначальных настроек, которые были запрограммированы в нем до момента подключения.

Индикаторный светодиод показывает включение в работу Arduino, и является элементом схемы. Устройство имеет выходы и входы, к которым подключаются управляемые внешние устройства. Эти устройства в свою очередь также оказывают управляющее воздействие на плату. Входы и выходы имеют свою нумерацию. Выход №13 соответствует встроенному светодиоду.

Схема и распиновка платы

Ардуино – это открытая платформа. По сути, любой желающий может скачать схему с официального сайта или одного из популярных форумов, а затем собрать плату на основе контроллера ATmega. Необходимые электронные компоненты можно весьма не дорого купить во множестве интернет-магазинов.

Распиновка платы на базе ATMEGA 328

Принципиальная схема:

Описание элементов платы Arduino Uno R3

Распиновка микроконтроллера ATMega 328

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

Arduino Uno имеет следующие размеры: длина 69 мм и ширина 53 мм. Однако разъем питания и разъем USB немного выпирают за пределы печатной платы. Arduino Uno весит около 25 грамм. Плата имеет 4 отверстия для возможности ее закрепления на поверхности. Расстояние между выводами равняется 2,5 мм, кроме выводов 7 и 8. Между ними 4 мм.

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

Описание пинов Ардуино

Пины Ардуино используются для подключения внешних устройств и могут работать как в режиме входа (INPUT), так и в режиме выхода (OUTPUT). К каждому входу может быть подключен встроенный резистор 20-50 кОм с помощью выполнения команды pinMode () в режиме INPUT_PULLUP. Допустимый ток на каждом из выходов – 20 мА, не более 40 мА в пике. Для удобства работы некоторые пины совмещают в себе несколько функций:

  • Пины 0 и 1 – контакты UART (RХ и TX соответственно) .
  • Пины c 10 по 13 – контакты SPI (SS, MOSI, MISO и SCK соответственно)
  • Пины A4 и A5 – контакты I2C (SDA и SCL соответственно).

Цифровые пины платы Uno

Пины с номерами от 0 до 13 являются цифровыми. Это означает, что вы можете считывать и подавать на них только два вида сигналов: HIGH и LOW. С помощью ШИМ также можно использовать цифровые порты для управления мощностью подключенных устройств.

Пин ардуиноАдресация в скетчеСпециальное назначениеШИМ
Цифровой пин 00RX
Цифровой пин 11TX
Цифровой пин 22Вход для прерываний
Цифровой пин 33Вход для прерыванийШИМ
Цифровой пин 44
Цифровой пин 55ШИМ
Цифровой пин 66ШИМ
Цифровой пин 77
Цифровой пин 88
Цифровой пин 99ШИМ
Цифровой пин 1010SPI (SS)ШИМ
Цифровой пин 1111SPI (MOSI)ШИМ
Цифровой пин 1212SPI (MISO)
Цифровой пин 1313SPI (SCK)
К выходу также подсоединен встроенный светодиод (есть в большинстве плат Arduino)

Аналоговые пины Arduino Uno

Аналоговые пины Arduino Uno предназначены для подключения аналоговых устройств и являются входами для встроенного аналого-цифрового преобразователя (АЦП), который в ардуино уно десятиразрядный.

ПинАдресация в скетчеСпециальное назначение
Аналоговый пин A0A0 или 14
Аналоговый пин A1A1 или 15
Аналоговый пин A2A2 или 16
Аналоговый пин A3A3 или 17
Аналоговый пин A4A4 или 18I2C (SCA)
Аналоговый пин A5A5 или 19I2C (SCL)

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

  • AREF – выдает опорное напряжения для встроенного АЦП. Может управляться функцией analogReference().
  • RESET – подача низкого сигнала на этом входе приведет к перезагрузке устройства.

Arduino — коммуникационные контакты — интерфейс I2C

Ардуино также имеет шину I2C, которая обеспечивает связь между двумя компонентами. Для платы UNO R3 связь по I2C реализована с помощью двух контактов:

  • SDA (Data Series) — пин «A4» для передачи данных по шине I2C
  • SCL (Serial Clock) — пин «A5» тактового сигнала, синхронизирующий передачу данных по шине I2C в обе стороны

Каждое внешнее устройство, которое обменивается данными с Arduino через шину I2C, имеет свой уникальный адрес, например, 0x23. К одной шине одновременно может быть подключено до 255 устройств.

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

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

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

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

Видео с инструкциями:

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

Для того, чтобы плата Arduino Uno могла функционировать, на неё необходимо подать питание. Сделать это можно несколькими способами, а именно:

  • Запитать непосредственно через USB-разъём с помощью шнура для программирования или связи с ПК;
  • Запитать от AC/DC адаптера с выходным напряжением 7-12В, подключившись через специальный разъём внешнего питания.
  • Подать напряжение 7-12В напрямую на вход Vin, который расположен на штыревой колодке питающей группы. При этом минусовой контакт источника питания следует соединить с одним из контактов GND платы.

Также, плата Arduino Uno, предоставляет пользователю два контакта, на которых присутствуют напряжения 5В и 3,3В. Эти напряжения формируются встроенными линейными стабилизаторами при любом из вышеперечисленных способов питания. Максимальный ток, который способен обеспечить вывод 3,3В равен 50мА. Некоторые «умельцы» питают плату через один из этих выводов, однако это чревато выходом последней из строя, так как входное напряжение идёт в обход стабилизатора и любой скачок просто-напросто спалит микроконтроллер.

Интересно почитать: Как обычный выключатель переделать в проходной.

Вывод GND говорит сам за себя и является общим минусом. Все выводы GND на плате соединены между собой. Следует обратить внимание, что большинство странных глюков в работе с платой Arduino Uno связаны с тем, что разработчик проекта забывает соединить вывод GND платы Arduino с соответствующими выводами других модулей и датчиков, которые используются в проекте. Вывод IOREF, служит для информирования подключаемых к Arduino Uno модулей или шилдов об уровне бортового напряжения. Если подключаемый модуль имеет возможность работать как с 5В, так и с 3,3В, то прочитав значение на выводе IOREF, он может выбрать для себя соответствующий режим работы.

Варианты питания Ардуино Уно

Рабочее напряжение платы Ардуино Уно – 5 В. На плате установлен стабилизатор напряжения, поэтому на вход можно подавать питание с разных источников. Кроме этого, плату можно запитывать с USB – устройств. Источник питания выбирается автоматически.

  • Питание от внешнего адаптера, рекомендуемое напряжение от 7 до 12 В. Максимальное напряжение 20 В, но значение выше 12 В с высокой долей вероятности быстро выведет плату из строя. Напряжение менее 7 В может привести к нестабильной работе, т.к. на входном каскаде может запросто теряться 1-2 В. Для подключения питания может использоваться встроенный разъем DC 2.1 мм или напрямую вход VIN для подключения источника с помощью проводов.
  • Питание от USB-порта компьютера.
  • Подача 5 В напрямую на пин 5V. В этом случае обходится стороной входной стабилизатор и даже малейшее превышение напряжения может привести к поломке устройства.

Пины питания

  • 5V – на этот пин ардуино подает 5 В, его можно использовать для питания внешних устройств.
  • 3.3V – на этот пин от внутреннего стабилизатора подается напряжение 3.3 В
  • GND – вывод земли.
  • VIN – пин для подачи внешнего напряжения.
  • IREF – пин для информирования внешних устройств о рабочем напряжении платы.

Размеры Уно

Arduino Uno R3 – самая популярная плата, построенная на базе процессора ATmega328. В зависимости от конкретной модели платы этой линейки используются различные микроконтроллеры, на момент написания статьи самой распространённой является версия именно R3.

Плату используют для обучения, разработки, создания рабочих макетов устройств. Ардуино, по своей сути, – это AVR микроконтроллер с возможностью упрощенного программирования и разработки. Это достигнуто с помощью специально подготовленного загрузчика, прошитого в память МК, и фирменной среды разработки.

Размеры платы представлены на схеме ниже. Общие размеры Уно составляют 53,4 мм на 68,6 мм.

Память Arduino Uno R3

Плата Uno по умолчанию поддерживает три типа памяти:

  • Flash – память объемом 32 кБ. Это основное хранилище для команд. Когда вы прошиваете контроллер своим скетчем, он записывается именно сюда. 2кБ из данного пула памяти отводится на bootloader- программу, которая занимается инициализацией системы, загрузки через USB и запуска скетча.
  • Оперативная SRAM память объемом 2 кБ. Здесь по-умолчанию хранятся переменные и объекты, создаваемые в ходе работы программы. Память эта энерго-зависимая, при выключении питания все данные, разумеется, сотрутся.
  • Энергонезависимая память (EEPROM) объемом 1кБ. Здесь можно хранить данные, которые не сотрутся при выключении контроллера. Но процедура записи и считывания EEPROM требует использования дополнительной библиотеки, которая доступна в Arduino IDE по-умолчанию. Также нежно помнить об ограничении циклов перезаписи, присущих технологии EEPROM.

Некоторые модификации стандартной платы Uno могут поддерживать память с большими значениями, чем в стандартном варианте. Но следует понимать, что для работы с ними потребуются и дополнительные библиотеки.

Arduino — цифровые выводы с функцией генерации сигналов ШИМ

В дополнение к своей стандартной функциональности некоторые цифровые контакты используются для генерации сигнала ШИМ. Выходы ШИМ в Arduino: «D3», «D5», «D6», D9», «D10» и «D11». По умолчанию частота ШИМ Arduino составляет 490 Гц.

Величина скважности определяет, в течение какой части периода на цифровом выводе находиться низкое состояние. Например, если скважность ШИМ-сигнала составляет 40%, то при пиковом напряжении 5В среднее значение напряжения такого сигнала будет равно 2В. Соответственно, чем больше значение коэффициента заполнения, тем выше среднее значение сигнала ШИМ.

Популярными приложениями, использующие ШИМ-сигнал, являются регуляторы скорости электродвигателя, регуляторы яркости светодиодного освещения, музыкальные синтезаторы.

Программирование для платы Uno

Для написания программ (скетчей) для контроллер Ардуино вам нужно установить среду программирования. Самым простым вариантом будет установка бесплатной Arduino IDE, скачать ее можно с официального сайта.

После установки IDE вам нужно убедиться, что выбрана нужная плата. Для этого у Arduino IDE в меню “Инструменты” и подпункте “Плата” следует выбрать нашу плату (Arduino/Genuino Uno). После выбора платы автоматически изменятся параметры сборки проекта и итоговый скетч будет скомпилирован в формат, который поддерживает плата. Подключив контроллер к компьютеру через USB, вы сможете в одно касание заливать на него вашу программу,используя команду “Загрузить”.

Сам скетч чаще всего представляет собой бесконечный цикл, в котором регулярно опрашиваются пины с присоединенными датчиками и с помощью специальных команд формируется управляющее воздействие на внешние устройства (они включаются или выключаются). У программиста Ардуино есть возможность подключить готовые библиотеки, как встроенные в IDE, так и доступные на многочисленных сайтах и форумах.

Написанная и скомпилированная программа загружается через USB-соединение (UART- Serial). Со стороны контролера за этот процесс отвечает bootloader.

Более подробную информацию о том, как устроены программы для платы Ардуино можно найти в нашем разделе, посвященном программированию.

Программирование и связь с ПК

В левом верхнем углу (рисунок №3) расположен USB-разъём. Он выполняет две функции. Первая – организация канала обмена данными между микроконтроллером и ПК и вторая – запись прошивки в ATMega328. На аппаратном уровне за связь с компьютером отвечает модуль последовательного интерфейса передачи данных (UART), который встроен в ATMega328 и выведен на контактах 0(RX) и 1(TX) платы Arduino Uno. Однако просто передавать данные на компьютер не получиться. Посредником между ATmega328 и компьютером выступает отдельно установленный микроконтроллер ATMega16.

Его специальная прошивка позволяет определять плату Arduino Uno как виртуальный СОМ-порт, когда та подключается к ПК. Обмен данными будет сопровождаться миганием соответствующих светодиодов RX и TX, расположенных справа от ATMega16.

Что касается записи прошивки, то этот процесс максимально упрощён и сводится к нажатию всего одной кнопки в среде Arduino IDE. Такая простота обусловлена тем, что Arduino Uno выпускается со встроенным прошитым загрузчиком, работающем по протоколу STK500. Следовательно, во внешнем программаторе нет никакой необходимости. Тем не менее, для любителей прошить контроллер напрямую, на плате предусмотрена колодка ICSP (справа посередине) для внутрисхемного программирования в обход загрузчика. Сам DFU-загрузчик находиться в ATMega16 и также может быть переписан путём внутрисхемного программирования через аналогичную колодку в верхней левой части платы.

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

Сегодня на рынке можно встретить множество вариантов плат ардуино. Самыми популярными конкурентами Уно являются платы Nano и Mega. Первая пойдет для проектов, в которых важен размер. Вторая – для проектов, где у схема довольно сложна и требуется множество выходов.

Отличия Arduino Uno от Arduino Nano

Современные платы Arduino Uno и Arduino Nano версии R3 имеют, как правило, на борту общий микроконтроллер: ATmega328. Ключевым отличием является размер платы и тип контактных площадок. Габариты Arduino Uno: 6,8 см x 5,3 см. Габариты Arduino Nano: 4,2 см x 1,85 см. В Arduino UNO используются коннекторы типа «мама», в Nano – «гребень» из ножек, причем у некоторых моделей контактные площадки вообще не припаяны. Естественно, больший размер UNO по сравнению с Nano в некоторых случаях является преимуществом, а в некоторых – недостатком. С платой большого размера гораздо удобнее производить монтаж, но она неудобна в реальных проектах, т.к. сильно увеличивает габариты конечного устройства.

На платах Arduino Uno традиционно используется разъем TYPE-B (широко применяется также для подключения принтеров и МФУ). В некоторых случаях можно встретить вариант с разъемом Micro USB. В платах Arduino Nano стандартом является Mini или Micro USB.

Естественно, различия есть и в разъеме питания. В плате Uno есть встроенный разъем DC, в Nano ему просто не нашлось места.

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

Отличия от Arduino Mega

Плата Mega в полном соответствии со своим названием является на сегодняшний день самым большим по размеру и количеству пинов контроллеров Arduino. По сравнению с ней в Uno гораздо меньше пинов и памяти. Вот список основных отличий:

  • Плата Mega использует иной микроконтроллер: ATMega 2560. Но тактовая частота его равна 16МГц, так же как и в Уно.
  • В плате Mega большее количество цифровых пинов – 54 вместо 14 у платы Uno. И аналоговых – 16 / 6.
  • У платы Mega больше контактов, поддерживающих аппаратные прерывания: 6 против 2. Больше Serial портов – 4 против 1.
  • По объему памяти Uno тоже существенно уступает Megа. Flash -память 32/256, SRAM – 2/8, EEPROM – 4/1.

Исходя из всего этого можно сделать вывод, что для больших сложных проектов с программами большого размера и активным использованием различных коммуникационных портов лучше выбирать Mega. Но эти платы дороже Uno и занимают больше места, поэтому для небольших проектов, не использующих все дополнительные возможности Mega, вполне сойдет Uno – существенного прироста скорости при переходе на “старшего” брата вы не получите.

Сфера применения

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

  • система «умный дом»;
  • всевозможные датчики;
  • робототехника;
  • автоматические вентиляторы;
  • светофоры;
  • охранные системы;
  • мини метеостанции;
  • мультитестеры;
  • квадрокоптеры.

Преимущества

  • Открытые схемы оборудования и спецификации. Arduino Uno выполнен на популярных микропроцессорах Amtel и ATMEGA. Квалифицированные специалисты могут спроектировать на основе имеющихся схем собственный вариант модуля для определенных задач.
  • Открытый код программы. Кодирование программы может расширяться на платформе С++.
  • Простая и удобная среда программирования. Оболочка программы является легкой в применении для начинающих программистов, однако имеет достаточную гибкость для работы профессионалов. Она наиболее удобна для среды обучения студентов, которым легко будет разобраться в работе этой платформы.
  • Программирование, подключение и питание выполняется одним USB-кабелем, либо кабелем, имеющим адаптер на микросхеме.
  • Возможность функционирования на различных видах систем. Программное обеспечение успешно функционирует на Линукс, Макинтош, Ява и других системах, так как имеет открытый код. Однако наиболее популярной системой для Ардуино стала система Windows.
  • Приемлемая цена. В больших городах Arduino Uno можно приобрести по цене менее 1000 рублей. Это цена за готовое законченное устройство, не требующее вспомогательного оборудования, дорогих программаторов, платных программ.

Недостатки

Слишком простая оболочка программы. Это очень неудобный редактор кода. Для программирования придется переходить на более удобный редактор, но кодовый редактор Arduino IDE все равно необходимо оставлять открытым. Малая частота микропроцессора. Нет возможности ее изменить. Малый объем памяти для сохранения программ.

Будет интересно➡ Arduino Nano: распиновка и схема платы, характеристики, описание

Краткие выводы

Arduino Uno – отличный вариант платы для создания своих первых проектов и умных устройств. 14 цифровых и 6 аналоговых пинов позволяют подключать разнообразные датчики, светодиоды, двигатели и другие внешние устройства. USB-разъем поможет подключиться к компьютеру для перепрошивки скетча без дополнительных внешних устройств. Встроенный стабилизатор позволяет использовать различные элементы питания с широким диапазоном напряжения, от 6-7 до 12-14 В. В Arduino Uno достаточно удобно реализована работа с популярными протоколами: UART, SPI, I2C. Есть даже встроенный светодиод, которым можно помигать в своем первом скетче. Чего еще желать начинающему ардуинщику?

Arduino — цифровые контакты

У Arduino Uno 14 цифровых контактов («D0» — «D13»), которые можно настроить как входы или выходы. Один из этих контактов «D13» подключен к встроенному светодиоду.

Максимальный ток (нагрузка) каждого цифрового контакта составляет 20 мА. Цифровые выводы работают с логическими состояниями: низкое состояние означает лог.0, а высокое состояние — лог.1. Если цифровые контакты Ардуино настроены как выходы, то низкое напряжение равно 0 В, а высокое равно 5 В.

Если же цифровые контакты сконфигурированы как входы, принимающие сигналы от внешних устройств, то логические уровни будут другие. Ардуино интерпретирует входное напряжение в диапазоне 0,0В — 0,8В как низкое состояние («0»), а в диапазоне 2,0В до 5,0В как высокое состояние («1»). Диапазон 0,8В — 2,0В означает запрещенное состояние, в котором нет права на изменение логического состояния.

Преимущества и недостатки

  • Цена. В Москве Arduino Diecimila можно купить меньше чем за 1000 руб. При этом вы покупаете законченное (ну почти) устройство, не требующее дополнительного оборудования, такого, как дорогостоящие программаторы и отладочные стенды, и не требует платного софта.
  • Кроссплатформенность. Программное обеспечение Arduino работает на Windows, Macintosh OS X, Linux и других операционных системах, поскольку является открытым и работает на Java. Большинство микроконтроллерных систем ограничиваются Windows.
  • Простая среда программирования. Программная оболочка является простой в использовании для новичков, но достаточно гибкой для продвинутых пользователей, чтобы быстро достичь нужного результата. Особенно это удобно в образовательной среде, где студенты могут с лёгкостью разобраться с платформой, а преподаватели — разработать учебный курс и задания.
  • Открытый исходный код. Язык может быть расширен с помощью C++ библиотек, более продвинутые специалисты могут создать свой собственный инструментарий для Arduino на основе компилятора AVR C.
  • Открытые спецификации и схемы оборудования. Arduino основан на микроконтроллерах Atmel ATMEGA8 и ATMEGA168. Схемы модулей опубликованы под лицензией Creative Commons, поэтому опытные схемотехники могут создать свою собственную версию модуля для своих нужд. Даже сравнительно неопытные пользователи могут сделать макетную версию модуля, чтобы понять, каким образом он работает и сэкономить деньги.

Из недостатков отмечу, пожалуй, довольно убогую программную оболочку, низкую частоту процессора (чего на самом деле достаточно выше крыши и, кроме того, снижает энергопотребление) и малое количество «дисковой» (флэш) памяти для программ. При такой тактовой частоте и объёме памяти вряд ли получится собрать простой mp3-плеер. Однако вряд ли кто будет пытаться сделать на основе Arduino, скажем, управляемую крылатую ракету Кроме того, мне не удалось найти вменяемых исходников для сборки avr-gcc. Ну и само собой, придётся знать (или изучить в процессе) основы электроники на уровне «плюс/минус, резистор/конденсатор» — без этого точно никак.

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

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

Комментарий эксперта

Лагутин Виталий Сергеевич

Инженер по специальности «Программное обеспечение вычислительной техники и автоматизированных систем», МИФИ, 2005–2010 гг.

Задать вопрос

Прошивка, установленная в контроллер ATmega8U2, имеет на борту стандартные драйверы USB-COM, поэтому для подключения не потребуется никаких дополнительных драйверов.

Материал по теме: Для чего нужны SMD резисторы.

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

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

Помехи и защита от них

Если в одной цепи питания с Ардуино стоят мощные потребители, такие как сервоприводы, адресные светодиодные ленты, модули реле и прочее, на линии питания могут возникать помехи, приводящие к сильным шумам измерений с АЦП, а более мощные помехи могут дергать прерывания и даже менять состояния пинов, нарушая связь по различным интерфейсам связи и внося ошибки в показания датчиков, выводя чушь на дисплеи, а иногда дело может доходить до перезагрузки контроллера или его зависания. Некоторые модули также могут зависать, перезагружаться и сбоить при плохом питании, например bluetooth модуль спокойно может зависнуть и висеть до полной перезагрузки системы, а радио модули rf24 вообще не будут работать при “шумном” питании.

Более того, помеха может прийти откуда не ждали – по воздуху, например от электродвигателя, индуктивный выброс ловится проводами и делает с системой всякое. Что же делать? “Большие дяди” в реальных промышленных устройствах делают очень много для защиты от помех, этому посвящены целые книги и диссертации. Мы с вами рассмотрим самое простое, что можно сделать дома на коленке.

  • Питать логическую часть (Ардуино, слаботочные датчики и модули) от отдельного малошумящего блока питания 5V, то есть разделить питание логической и силовой частей, а ещё лучше питаться в пин Vin от блока питания на 7-12V, так как линейный стабилизатор даёт очень хорошее ровное напряжение. Для корректной работы устройств, питающихся отдельно (драйверы моторов, приводы) нужно соединить земли Ардуино и всех внешних устройств;
  • Поставить конденсаторы по питанию платы, максимально близко к пинам 5V и GND: электролит 6.3V 100-470 uF (мкФ, ёмкость зависит от качества питания: при сильных просадках напряжения ставить ёмкость больше, при небольших помехах хватит и 10-47 мкФ) и керамический на 0.1-1 uF. Это сгладит помехи даже от сервоприводов;
  • У “выносных” на проводах элементах системы (кнопки, крутилки, датчики) скручивать провода в косичку, преимущественно с землёй. А ещё лучше использовать экранированные провода, экран естественно будет GND. Таким образом защищаемся от электромагнитных наводок;
  • Соединять все земли одним толстым проводом и по возможности заземлять на центральное заземление;
  • Металлический и заземленный корпус устройства (или просто обернутый фольгой ? ), на который заземлены все компоненты схемы – залог полного отсутствия помех и наводок по воздуху.

Ещё лучше с фильтрацией помех справится LC фильтр, состоящий из индуктивности и конденсатора. Индуктивность нужно брать с номиналом в районе 100-300 мкГн и с током насыщения больше, чем ток нагрузки после фильтра. Конденсатор – электролит с ёмкостью 100-1000 uF в зависимости опять же от тока потребления нагрузки после фильтра. Подключается вот так, чем ближе к нагрузке – тем лучше:

Подробнее о расчёте фильтров можно почитать здесь.

Индуктивные выбросы

На практике самая подлая помеха обычно приходит при коммутации индуктивной нагрузки при помощи электромагнитного реле: от такой помехи очень сложно защититься, потому что приходит она по земле, то есть вас не спасёт даже раздельное питание проекта. Что делать?

  • Для цепей постоянного тока обязательно ставить мощный диод обратно-параллельно нагрузке, максимально близко к клеммам реле. Диод примет (замкнёт) на себя индуктивный выброс от мотора/катушки;

  • Туда же, на клеммы реле, можно поставить RC цепочку, называемую в этом случае искрогасящей: резистор 39 Ом 0.5 Вт, конденсатор 0.1 мкФ 400V (для цепи 220В);

  • Для сетей переменного тока использовать твердотельное (SSR) реле с детектором нуля (Zero-cross detector), они же называются “бесшумные” реле. Если в цепи переменного тока вместо реле стоит симистор с оптопарой, то оптопару нужно использовать опять же с детектором нуля, такая оптопара, как и SSR zero-cross будут отключать нагрузку в тот момент, когда напряжение в сети переходит через ноль, это максимально уменьшает все выбросы.

Подробнее об искрогасящих цепях можно почитать вот в этой методичке.

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]