Расширение портов arduino uno: Arduino » Digitrode.ru

Содержание

распиновка, схема подключения и программирование [Амперка / Вики]

Arduino Uno — флагманская платформа для разработки на базе микроконтроллера ATmega328P. На Arduino Uno предусмотрено всё необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъём USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса.

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

Для работы с платой в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.

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

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

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

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

Сердцем платформы Arduino Uno является 8-битный микроконтроллер семейства AVR — ATmega328P.

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

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

Пины питания

  • VIN: Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если к устройству подключён внешний адаптер.

  • 5V: На вывод поступает напряжение 5 В от стабилизатора платы. Данный стабилизатор обеспечивает питание микроконтроллера ATmega328. Запитывать устройство через вывод 5V не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.

  • 3.3V: 3,3 В от стабилизатора платы. Максимальный ток вывода — 50 мА.

  • GND: Выводы земли.

  • IOREF: Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.

Порты ввода/вывода

  • Цифровые входы/выходы: пины 013
    Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.

  • ШИМ: пины 3,5,6,9,10 и 11
    Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.

  • АЦП: пины A0A5
    6 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 значений). Разрядность АЦП — 10 бит.

  • TWI/I²C: пины SDA и SCL
    Для общения с периферией по синхронному протоколу, через 2 провода. Для работы — используйте библиотеку Wire.

  • SPI: пины 10(SS), 11(MOSI), 12(MISO), 13(SCK).
    Через эти пины осуществляется связь по интерфейсу SPI. Для работы — используйте библиотеку SPI.

  • UART: пины 0(RX) и 1(TX)
    Эти выводы соединены с соответствующими выводами микроконтроллера ATmega16U2, выполняющей роль преобразователя USB-UART. Используется для коммуникации платы Arduino с компьютером или другими устройствами через класс Serial.

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

Имя светодиода Назначение
RX и TX Мигают при обмене данными между Arduino Uno и ПК.
L Светодиод вывода 13. При отправке значения HIGH светодиод включается, при отправке LOW – выключается.
ON Индикатор питания на плате.

Разъём USB Type-B

Разъём USB Type-B предназначен для прошивки платформы Arduino Uno с помощью компьютера.

Разъём для внешнего питания

Разъём для подключения внешнего питания от 7 В до 12 В.

ICSP-разъём для ATmega328P

ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega328P. С использованием библиотеки SPI данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах

10(SS), 11(MOSI), 12(MISO) и 13(SCK).

ICSP-разъём для ATmega16U2

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

Распиновка

Принципиальная и монтажная схемы

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

  • Микроконтроллер: ATmega328

  • Тактовая частота: 16 МГц

  • Напряжение логических уровней: 5 В

  • Входное напряжение питания: 7–12 В

  • Портов ввода-вывода общего назначения: 20

  • Максимальный ток с пина ввода-вывода: 40 мА

  • Максимальный выходной ток пина 3.3V: 50 мА

  • Максимальный выходной ток пина 5V: 800 мА

  • Портов с поддержкой ШИМ: 6

  • Портов, подключённых к АЦП: 6

  • Разрядность АЦП: 10 бит

  • Flash-память: 32 КБ

  • EEPROM-память: 1 КБ

  • Оперативная память: 2 КБ

  • Габариты: 69×53 мм

Ресурсы

Arduino Nano и 74HC595 — расширяем порты вывода: trampampamparam — LiveJournal

Как я уже рассказывал, я заказал три более или менее не пересекающихся набора датчиков для Ардуино. В обоих комплектах ко мне приехала микросхема 74HC595, которая так и осталась лежать в боксе до поры до времени. До поры до времени я даже не знал, что это за микросхема, и как вообще этот черный тараканчик промаркирован.

Но настали черные дни, когда мне перестало хватать выходных сигналов Arduino Nano, когда я занимался созданием устройства для тестирования шаговых двигателей. (TODO: вставить ссылку на статью о тестере ШД, когда будет готова). Моё устройство для тестирования ШД в результате вышло довольно комплексным — двухстрочный дисплей 1602 с системой меню, управляемое полнофункциональной клавиатурой 4×4, 3 цифровых разряда для установки величины микрошага ШД, сигналы Step и Dir для шагового двигателя, и тп. Казалось бы, самое время мигрировать на другую версию Arduino. Но моя природная лень воспротивилась этой миграции. И ленивая голова стала искать решение.

Было принято решение искать решение на базе уже того, что есть. Перебирая платки и детальки из наборов, я заметил 16ти-пинового черного «жука». Сначала в одном наборе, потом в другом. Решил поинтересоваться, что же это за деталь, и зачем её добавляют в наборы. Зачем её кладут в кит-наборы, я не понял, но саму микросхему нашел на сайте NXP.

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

Условное обозначение микросхемы 74НС595

(из даташита)

Описание выводов


Контакт Наименование Описание и подключение
10 ~MR Master Reset — сброс, активный уровень низкий. В идеальном случае неплохо бы сделать схему сброса, которая сначала подает низкий уровень на этот вход, а затем переводит его в единичное состояние. Но можно не возиться, и подключить его на +5В. В этом случае на выходе до первой записи будут случайные значения
13 ~OE Output Enable — разрешение выхода, активный уровень низкий. При подаче 0 на выходы подается содержимое регистра, при подаче 1 — выходы отключаются, переводятся в Z-состояние, что позволяет использовать одну шину попеременно разным устройствам. Подключаем на землю, если не нужно управлять состоянием выходов
14 DS Serial Data In — последовательный вход. На этот вход следует подавать значение входного сигнала до подачи тактового сигнала сдвига SHCP
11 SHCP Shift Register Input clock — тактовый вход сдвигового регистра. Для вдвигания бита в регистр следует подать переход с 0 на 1. Когда возвращать в 0 — на усмотрение. Можно — сразу же, можно — непосредственно перед вдвиганием. В первом случае можно считать, что переключение происходит по фронту прямого сигнала, во втором — по спаду инверсного. См. также ниже замечания по быстродействию. Также по приходу этого сигнала изменяется значение последовательного выхода Q7/S
12 STCP Storage Register Clock Input — тактовый вход регистра защелки. По фронту данного импульса происходит перенос значения со сдвигового регистра на параллельные выходы Q0-Q7
9 Q7S Serial Data Output — последовательный выход. На него выводится значение старшего разряда сдвигового регистра. Данный выход может использоваться для масштабирования сдвигового регистра до 16ти-разрядной, 24х-разрядной и т.д. схемы
15, 1-7 Q0, Q1-7 Выходы регистра-защелки. Сигнал на них переносится с внутреннего сдвигового регистра по приходу сигнала STCP
8 GND Питание — общий провод
16 VCC Питание — +

Питание


HC версия микросхемы требует от 2В до 6В питания, версия HCT (TTL-совместимая) — от 4.5В до 5.5В. HCT — TTL — а оно вообще еще используется? Ардуино же вроде само по себе CMOS, так что HCT не нужно, но если нужно согласовывать уровни с внешними TTL потребителями, то можно запитать HC от 3.3В, тогда уровни сигналов будут совместимы с TTL. А вообще, с 5ти-вольтовым Ардуино должны работать и HC, и HCT. В интернетах так пишут.

Что более важно, так это блокировочные конденсаторы. Без них схема может работать не так, как задумано, и более того, непредсказуемо. Теоретически, в цепи питания каждого корпуса нужно ставить 0.1мкФ конденсатор. Это значение ёмкости я вычислил как среднее по интернету. Моя схема вполне заработала и без него. Чтобы уточнить, залез было в библию схемотехника, чтобы уточнить — Хилл и Хоровиц, «Искусство схемотехники» — это почти как «Искусство Программирования» Дональда Кнутта, но только для железячников (к слову, Хилл и Хоровиц гораздо ближе к народу, Кнутт через-чур умничает) — но там блокировочными конденсаторами похоже называют развязывающие по входам конденсаторы. Жаль, хорошая книга, но очень отстала уже от жизни. У меня второе или третье русское издание конца 90ых или начала 0ых годов, оригинал скорее всего ещё лет на 10 старше. На третьем, розовом томе, обнаружил наклейку — «14руб» — как же дешево тогда всё было, по современным меркам. А прошло-то всего 15 лет или чуть больше. Аж ностальгия замучала.

Быстродействие


В титле даташита 74HC595 пишут, что она работает на 100МГц. Беглый взгляд на графики и таблицы даташита говорит, что самые большие тайминги в диапазоне температур от -40C до +85C при питании 4.5В — 10-20нс (100-50МГц). С теми частотами, на которых работают Ардуино, ничего больше знать не требуется. Возможно, только то, что стандартные библиотечные digitalRead/digitalWrite — огромнейшие тормоза из-за различных проверок, и их можно (и нужно) переписать в виде более быстрой версии. В планах есть поковырять это и написать поподробнее, но пока у меня нет особой нужды.

Быстродействие Arduino Nano и библиотеки Arduino в плане скорости переключения выходов и обработки входов по моим наблюдениям где-то посередине от единиц килогерц до десятков килогерц. Так что, на мой взгляд, при написании кода для управления сдвиговым регистром 74HC595 нет нужды озадачиваться какими-либо задержками при установке управляющих сигналов.

Другое дело, что для 8ми разрядного последовательного расширителя следует делить максимальную доступную на Ардуино частоту переключения выходов — установили DS, установили SHCP в 1, сбросили SHCP (в 0) — 8 раз, и установка/сброс STCP. Итого, на вскидку, 3*8 + 2 = 26 операций digitalWrite. Итого выходит примерно в 25 раз медленнее, чем может сама Ардуинка.

При масштабировании до 16ти, 24х или 32х выходов замедление будет соответственно примерно 3*16 + 2 = 50, 3*24 + 2 = 74 и 3*32 + 2 = 98 раз.

Для управления чем-то действительно быстрым, очевидно, такой расширитель на сдвиговом регистре 74HC595 не подходит, но, в некоторых применениях, для задания редко меняющихся статичных сигналов вполне подходит. Так, например, я использовал такой расширитель для задания 3х-разрядного режима микрошага для установки режима микрошага для драйвера ШД DRV8825 в тестере для шаговых двигателей. К слову, мне это пока не особо пригодилось — шаговики из матричных принтеров ужасно работают в микрошаговом режиме, по крайней мере, под управлением драйвера DRV8825 — так, например, в режиме микрошага 1/2 половина шага какая-то вялая и не уверенная, только вторая половина бодрая и мощная. Поэтому при использовании микрошага при малейшем усилии на ось ШД он первые пол-шаги начинал пропускать. Остальные режимы микрошага я как-то после этого и не исследовал на имеющихся принтерных ШД.

Масштабирование


Расширитель выходов Ардуино на базе 74HC595 достаточно элементарно из 8ми-разрядной версии может быть переделан в схему любой разрядности. Для этого последовательный выход младшего регистра Q7S нужно соединить со входом DS более старшего, а линии SHCP и STCP соединить параллельно. Ну, и, в зависимости от принятого схемотехнического и программного решения, нужно выбрать, как подключать линии ~MR и ~OE.

Расширение ввода


Расширение линий ввода для Ардуино в принципе похоже на расширение вывода, с учетом того, что нужно не задавать значение DS на выходе, а считывать его на входе, и использовать микросхему типа 74HC597. Впрочем, это я пока на практике не проверял.

Мультиплексирование


Увеличить количество выходных линий, которыми управляет Ардуина, можно двумя способами: 1) увеличить разрядность одного последовательного выхода, что при увеличении разрядности в два, три или четыре раза соответственно уменьшает в два, три или четыре раза быстродействие расширителя; 2) параллельным подключением нескольких расширителей, при этом задействуя один дополнительный выход на каждый расширитель, что может сохранить быстродействие на приемлемом уровне, но требует использования как минимум одного выхода Ардуино для каждого расширителя.

Если не управлять прямо сигналами регистра 74HC595 — ~MR, ~OE с Ардуино, то достаточно только трех выходов Ардуино для управления сигналами DS, SHCP и STCP сдвигового регистра, чтобы при помощи микросхемы 74HC595 превратить их в 8 или 16 или больше выходных сигналов.

Для мультиплексирования нескольких расширителей на базе 74HC595 можно пойти двумя путями: 1) для каждого расширителя сигнала выделить отдельный latch сигнал — т.е. все регистры на шине параллельно сдвигают поступающие данные, и, соответственно, сдвигают значения на выходах внутреннего сдвигового регистра, но только один передает значение из внутреннего сдвигового регистра на выходы микросхемы; 2) сигналы сдвига передаются только на один из расширителей, а перенос значений сигналов на выход происходит одновременно для всех модулей расширения.

Я больше склонен использовать вариант, когда во внутренних сдвиговых регистрах может находится всё, что угодно (вариант 1), а на выходе зафиксировано какое-то из предыдущих значений, и вот почему: при переносе значений из внутреннего сдвигового регистра на выход могут происходить неконтролируемые переходы из 0 в 1 и обратно, какой-то дребезг сигнала, даже если исходное значение во внутреннем регистре и на выходе одно и то же. И, на мой взгляд, операцию переноса состояния внутреннего регистра сдвига на выходы 74HC595 следует использовать как можно реже.

Программная поддержка


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

Arduino Uno: характеристики, распиновка, питание платы

Arduino UNO плата построена на микроконтроллере Atmega AVR для обучения, разработки, создания рабочих макетов устройств.

Размеры Уно

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

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

Плата Ардуино Уно

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

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

В основе платы лежит процессор ATmega 328. Кроме него на плате находится модуль USB для связи с компьютером и прошивки. Этот модуль называется «USB-TTL преобразователь». На фирменных платах Arduino Uno для этой целей используется дополнительный микроконтроллер ATmega16U2.

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

Особенность этого чипа заключается в аппаратной поддержке USB, что позволяет организовывать связь без дополнительных преобразователей. В то время как ATmega328 не поддерживает такой функции, поэтому 16u2 выступает в роли преобразователя данных из USB в последовательный порт для МК AVR. В него залита программа для выполнения этой задачи.

Однако так происходит не всегда: в более мелких платах, таких как Arduino Nano, используют преобразователи уровней на базе различных микросхем, например FT232, CP21XX, Ch440g и подобных. Это решение является более дешевым и не требует прошивки дополнительного связывающего контроллера, как описано выше.

Внимание! Не всё так однозначно с DCcduino UNO r3 на ch440g. В ней как раз и использован более дешевый, чем в оригинале, вариант преобразователя USB-TTL.

На плате есть выход 3.3 В, он нужен для подключения периферии и некоторых датчиков, его пропускная способность по току равна 50 мА.

ATmega328 работает на частоте 16 МГц. Она фиксирована кварцевым резонатором, который вы можете, по желанию, заменить, тем самым ускорив работу Uno r3.

Важно! После замены кварцевого резонатора функции, связанные со временем, такие как Delay, не будут соответствовать введенным значениям. Это функция задержки времени, по умолчанию её аргументом является требуемое время задержки в мс. Функция прописана в библиотеках Ардуино, с учетом стандартной тактовой частоты в 16 МГц. Поэтому после замены кварца заданное время не будет соответствовать написанному. Для этого нужно либо подбирать опытным путем и устанавливать зависимости, либо править файлы библиотек.

Память Ардуино Уно

Микроконтроллер Arduino Uno содержит 32 кб флэш-памяти, из которой пользователю доступно 31.5 кб, потому как 0.5 занимает загрузчик.

  • ОЗУ – 2 кб памяти.
  • EEPROM — 1 кб памяти.

Как осуществляется питание платы?

Чтобы включить плату, нужно на неё подать питание либо от USB порта, можно прямо от ПК, либо от внешнего источника питания – от 7 до 15 Вольт. На плате установлен линейный стабилизатор, типа L7805, или же LDO. Он нужен для того, чтобы на микроконтроллер подавалось стабилизированное напряжение 5 В.

При этом приоритетно выбирается внешний источник питания, а не ЮСБ-порт. Внешнее питание подключается к выводу с пометкой «Vin» в разделе Power на плате.

Расположение выводов, распиновка

Разработчики платы Arduino очень удобно и логично расположили выводы платы. Дело в том, что при разработке на «чистых» МК АВР приходилось обращаться к выводу порта, для этого нужно было запомнить название каждой ножки на чипе. Здесь это гораздо проще. На самой плате указано название каждого из пинов. Удобства добавляет и то, что пины разбиты на 3 группы:

  1. Digital – блок цифровых пинов.
  2. Analog – блок аналоговых пинов.
  3. Power – блок пинов, которые связаны с питанием и работой микросхемы.
Распиновка платы

При этом в разделе Digital пины, которые могут выдавать ШИМ-сигнал (PWM), помечены тильдой «~». Для служебных целей и проверки работоспособности контроллера на плате установлен светодиод, который подключен к 13-му выводу, а из среды разработки Arduino IDE к нему можно обращаться через встроенную директиву LED_BUILTIN. Такие схемы расположения пинов называются «Arduino UNO pinout», при этом, вместо UNO, может быть указано название другой платы, которая вас интересует.

Описание пинов платы

Микроконтроллер имеет 14 цифровых пинов, они могут быть использованы, как вход или выход. Из них 6 могут выдавать ШИМ-сигнал. Они нужны для регулировки мощности в нагрузке и других функций.

Пин ардуино Адресация в скетче Специальное назначение ШИМ
Цифровой пин 0 0 RX
Цифровой пин 1 1 TX
Цифровой пин 2 2 Вход для прерываний
Цифровой пин 3 3 Вход для прерываний ШИМ
Цифровой пин 4 4
Цифровой пин 5 5 ШИМ
Цифровой пин 6 6 ШИМ
Цифровой пин 7 7
Цифровой пин 8 8
Цифровой пин 9 9 ШИМ
Цифровой пин 10 10 SPI (SS) ШИМ
Цифровой пин 11 11 SPI (MOSI) ШИМ
Цифровой пин 12 12 SPI (MISO)
Цифровой пин 13 13 SPI (SCK)
К выходу дополнительно подсоединен встроенный светодиод

Вызов ШИМ-сигнала осуществляется через команду AnalogWrite (номер ножки, значение от 0 до 255). Для работы с аналоговыми датчиками присутствует 6 аналоговых входов/выходов.

Пин Адресация в скетче Специальное назначение
Аналоговый пин A0 A0 или 14
Аналоговый пин A1 A1 или 15
Аналоговый пин A2 A2 или 16
Аналоговый пин A3 A3 или 17
Аналоговый пин A4 A4 или 18 I2C (SCA)
Аналоговый пин A5 A5 или 19 I2C (SCL)

Их тоже можно использовать, как цифровые.

Аналоговый сигнал обрабатывается 10 битным аналогово-цифровым преобразователем (АЦП), а при чтении микроконтроллер выдаёт численное значение от 0 до 1024. Это равно максимальному значению, которое можно записать в 10 битах. Каждый из выводов способен выдать постоянный ток до 40 мА.

Принципиальная схема платы выглядит так (нажмите для увеличения):

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

Как мы написали выше, ATmega328 работает на частоте 16 МГц. Распиновка микроконтроллера ниже (нажмите на изображение для увеличения):

Работа в комплексе с другими системами

Самое первое, с чем вы можете познакомиться, даже без приобретения дополнительных устройств для разработки – это связь по последовательному порту. Он активируется по команде Serial.begin (скорость, например 9600). Подробно о каждой команде вы можете прочитать в обучающем разделе на официальном сайте проекта Arduino.ru. Вы можете обмениваться с компьютером информацией. Плата, в зависимости от программного кода, может вам присылать данные, а вы их, через монитор портов в Arduino IDE, можете читать.

Кроме последовательного порта, в ардуино UNO реализована поддержка таких интерфейсов:

Через них можно осуществлять «общение» между несколькими платами, а также подключать разную периферию: датчики и дисплеи.

Платы расширения

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

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

Одним из самых популярных является Arduino Ethernet Shield. Он нужен для связи с Ардуино по обычному сетевому кабелю, витой паре. На нём расположен разъём rj45.

С подобным шилдом можно управлять вашим микроконтроллером по сети через веб-интерфейс, а также считывать параметры с датчиков, не отрываясь от компьютера. Существуют проекты с использованием такого комплекта в домашнем облачном хранилище, с ограничением по скорости, всё-таки Атмега328 слабовата для таких задач, и для этого лучше подойдут одноплатные компьютеры типа Raspberry pi.

Как преодолеть аппаратные ограничения

Большинство распространённых плат имеют аналогичные характеристики, среди них:

  • Uno;
  • Nano;
  • Pro mini;
  • и подобные.

Но с развитием ваших навыков разработки в этой среде появляется проблема нехватки мощности и быстродействия этой платформы. Первым шагом для преодоления ограничений является использование языка C AVR.

С его помощью вы ускорите на порядок скорость обращения к портам, частоту ШИМ и размер кода. Если вам и этого недостаточно, то вы можете воспользоваться мощными моделями с аналогичным подходом к разработке. Для этого подойдёт плата Arduino Mega2560. Еще более мощная – модель Due. В противном случае вам стоит ознакомиться с разновидностями одноплатных компьютеров и STM микроконтроллеров.

Ардуино Uno R3 – отличная плата для большинства проектов, которая служит для изучения устройств цифровой электроники.

Arduino Uno Rev3/R3 — описание платы, драйвера

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

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

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

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

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

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


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

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

Arduino Uno Ch440G Rev3

Данная плата обладает всеми свойствами классической платы ARDUINO UNO Rev3. Основные отличия от оригинала связаны с тем, что для уменьшения стоимости платы применяется микроконтроллер ATmega328 в SMD корпусе, а USB мост выполнен на бюджетной микросхеме Ch440G. Все элементы внешних подключений, в том числе имена портов, на этой плате полностью соответствуют принципиальной схеме оригинальной платы, однако следует помнить, что нумерация выводов SMD и DIP корпусов микроконтроллера ATmega328 различная.

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

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

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

  • USB Plug – разъем для подключения устройств USB;
  • Analog Reference Pin – для определения опорного напряжения АЦП;
  • Digital Ground – земля;
  • Digital I/O Pins (2-13) – цифровые выводы;
  • Serial OUT (TX) – пин передачи данных по UART;
  • Serial IN (RX) – пин приема данных по UART;
  • Reset Button – кнопка перезагрузки микроконтроллера;
  • In-Circuit Serial Programmer (ISCP) – через эти контакты можно перепрограммировать плату;
  • ATmega328P Microcontroller – собственно сам чип Ардуинки, он же микроконтроллер, процессор, мозг и т.д.;
  • Analog In Pins (0-5) – аналоговые входы;
  • Voltage In – вход используется для подачи питания от внешнего источника;
  • Ground Pins – земля;
  • 5 Volt Power Pin – питание 5 В;
  • 3 Volt Power Pin – питание 3.3 В;
  • Reset Pin – вход для перезагрузки;
  • External Power Supply – разъем для подключения внешнего источника питания.

Описание пинов Arduino Uno Rev3

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

Некоторые выводы имеют особые функции:

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

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

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

Пин Адресация Специальное назначение ШИМ
0 0 RX
1 1 TX
2 2 Вход для прерываний
3 3 Вход для прерываний ШИМ
4 4
5 5 ШИМ
6 6 ШИМ
7 7
8 8
9 9 ШИМ
10 10 SPI (SS) ШИМ
11 11 SPI (MOSI) ШИМ
12 12 SPI (MISO)
13 13 SPI (SCK)
К выходу также подсоединен встроенный светодиод (есть в большинстве плат Arduino)

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

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

Пин Адресация Специальное назначение
A0 A0 или 14
A1 A1 или 15
A2 A2 или 16
A3 A3 или 17
A4 A4 или 18 I2C (SCA)
A5 A5 или 19 I2C (SCL)

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

  • AREF – выдает опорное напряжения для встроенного АЦП. Может управляться функцией analogReference().
  • RESET – Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

Питание Arduino Uno Rev3

Платы Arduino Uno R3 может получать питание через подключение USB или от внешнего источника питания. Источник питания выбирается автоматически.

Питать плату можно следующими способами:

  • от внешнего адаптера – рекомендуемое напряжение от 7 до 12 В. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, что приведёт к нестабильной работе платы;
  • от USB-порта компьютера;
  • подача 5 В напрямую на пин 5V. В этом случае обходится стороной входной стабилизатор и даже малейшее превышение напряжения может привести к поломке устройства.

Выводы питания:

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

Установка драйверов

Если вы использовали установщик, Windows — от XP до 10 — автоматически установит драйверы, как только вы подключите свою плату.

Если вы загрузили и распаковали Zip архив или по какой-то причине плата неправильно распознана, выполните приведенную ниже процедуру.

  • Нажмите на меню «Пуск» и откройте панель управления.
  • Перейдите в раздел «Система и безопасность» (System and Security). Затем нажмите «Система» (System). Затем откройте диспетчер устройств (Device manager).
  • Посмотрите под Порты (COM и LPT) (Ports (COM & LPT)). Вы должны увидеть открытый порт с именем «Arduino UNO (COMxx)». Если раздел COM и LPT отсутствует, просмотрите раздел «Другие устройства», «Неизвестное устройство».
  • Щелкните правой кнопкой мыши по порту Arduino UNO (COMxx) и выберите опцию «Обновить драйверы…».
  • Затем выберите опцию «Выполнить поиск драйверов на этом компьютере».
  • Наконец, найдите файл драйвера с именем «arduino.inf», который находится в папке «Drivers» программы Arduino (а не подкаталог «FTDI USB Drivers»). Если вы используете старую версию IDE (1.0.3 и старше), выберите файл драйвера Uno с именем «Arduino UNO.inf».
  • После этого Windows завершит установку драйвера.

Выбор платы и порта

Откройте Arduino IDE. Из меню Tools>Board выбирается Arduino/Genuino Uno.

Выберите последовательное устройство платы в меню Tools>Port. Скорее всего, это COM3 или выше (COM1 и COM2 обычно зарезервированы). Чтобы узнать, вы можете отключить свою плату и повторно открыть меню; запись, которая исчезает, должна быть Arduino или Genuino. Подсоедините плату и выберите этот последовательный порт.

Если у вас модель Arduino Uno Ch440G, то лучше использовать программатор Arduino as ISP.

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

Материалы

Принципиальная схема: Arduino_Uno_Rev3-schematic.pdf
Arduino UNO Ch440 Rev3.pdf
Datasheet — UNO_R3(Ch440G).pdf
Arduino Uno | Аппаратная платформа Arduino
Arduino Uno R3

Купить Arduino UNO R3 на AliExpress

Настройка плат Arduino при первом подключении к ПК

В этой инструкции, для примера, рассмотрим начало работы в операционной системе Windows. Для операционных систем Microsoft (Windows 2000/Vista) различия незначительны, они в основном относятся к названиям вкладок в Диспетчере устройств. В прочих операционных средах, таких как Linux, FreeBSD, Mac OS X и т.д, порядок настройки значительно отличается. При необходимости организовать работу с этим программным обеспечением, рекомендуем искать ответы на вопросы на основном сайте разработчика //www.arduino.cc .

 

В качестве подключаемой платформы возьмём Arduino Uno. Разница с другими платами у неё минимальна.

 

Кабель для связи с ПК

 

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

 

Arduino Uno, Arduino Mega 2560 соединяются кабелем со штекерами USB тип А. Такой кабель часто применяется для подключения принтера или сканера.

Arduino Leonardo, Arduino Due для подключения имеют гнездо micro USB тип В.

Arduino Nano, Freeduino Nano подключаются через гнездо mini USB тип B.

Для подключения Freeduino MaxSerial потребуется кабель последовательного порта 9M-9F.

Установка Arduino IDE

 

Arduino IDE — интегрированная среда разработки софта для Arduino устройств, устанавливаемая на компьютер.

В зависимости от модели платы важно правильно выбрать подходящую версию Arduino IDE:

  • Arduino IDE 1.6.4 — для многих плат, кроме Arduino Leonardo ETH и Arduino M0 (программное обеспечение от Arduino LLC).
  • Arduino IDE 1.7.7 — для всех типов плат (программное обеспечение от Arduino SRL).

 

Частичная несовместимость ПО стала следствием разногласий между отцами-основателями Arduino итальянцами Массимо Банзи и Джанлука Мартино, которые не смогли договориться о дальнейшем курсе развития компании. Завод, на котором разрабатывают и производят оригинальные платформы Arduino, под управлением Джанлука Мартино откололся от головной компании Arduino LLC и стал самостоятельной компанией Arduino SRL (ранее Smart Projects Srl).

 

Запуск Arduino IDE

 

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

Возникла неполадка: Arduino IDE не запускается.

 

Способ устранения.

Скорее всего, на компьютере установлена неподходящая виртуальная среда JRE (Java Runtime Environment), необходимая для запуска графических приложений.

Возвратитесь к переустанавке Arduino IDE: на этот раз инсталлятор развернет работу по настройке JRE.

 

Подключение плат Arduino к компьютеру

 

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

 

Соединив консоль Arduino с ПК, на ней загорится один светодиод «ON», и начнёт мигать другой «L». Это означает, что через кабель подано питание и микроконтроллер начал выполнять предустановленную на заводе программу Blink (мигание).

 

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

 

Номер COM-порта можно узнать в «Диспетчере устройств», вкладка «Порты (COM и LPT)».

На системах Windows скорее всего нашей Arduino Uno с последовательным интерфейсом присвоится один из портов COM1 или COM2. Для Ардуино с USB-контроллером портом ввода будет COM4, COM5, COM6 или выше.

На системах Linux последовательным портом будет USB0 либо USB1.

Высветилось новое устройство Arduino в «Диспетчере устройств» — значит, операционная система распознала нашу плату, нашла для неё подходящий USB-драйвер и присвоила номер её интерфейсу. При совместном подключении ещё одной платы Arduino, ей присвоиться уже другой номер порта.

 

Возникла неполадка: при подключении платы Arduino к компьютеру, в Диспетчере устройств она не появляется.

 

Способы устранения:

  1. Не всунут до конца или поврежден USB-кабель или порт.
  2. Нет драйвера для этой платы Arduino. Если у вас китайская Arduino или от другого неизвестного производителя, попробуйте переустановить USB-драйвер вручную.
  3. Блокировка со стороны антивирусника.
  4. Неисправна плата Arduino.

 

Настройка Arduino IDE

 

В открытой Arduino IDE, заходим: Инструменты > Порт > выбираем номер порта COM — сообщаем программе номер порта, к которому подключена микропроцессорная платформа Arduino.

Чтобы у прошивающей программы Arduino IDE не осталось никаких сомнений, с чем ей предстоит работать, указываем тип нашей подключенной платы. Для этого переходим по меню: Инструменты > Плата > выбираем тип своей платы Arduino.

Возникла неполадка: во вкладке Порт нет ни одного COM-порта.

Способ устранения.

Очевидно, нарушено соединение устройства Arduino с компьютером. Верните устойчивое соединение с ПК.

Или нет драйвера. Скачать можно в конце статьи.

Как проверить подключение устройства Arduino

Все числовые данные, поступающее через COM-порт, выводятся в Монитор порта во всё той же удобной графической среде Arduino IDE. Следовательно, нажав соответствующую иконку «Монитор порта» в верхнем правом углу консоли или найдя соответствующий пункт в меню Сервис, по изменяющимся числам в открывшимся окошке можно убедиться, что через USB-кабель передаются данные, а значит, и плата Arduino надежно подключена.

Обратите внимание, что в нижней части окошка Монитора порта выводится информация о скорости работы с COM-портом «19200 baud» (19200 бит/сек). Такая скорость задана по умолчанию в предустановленном скетче на плате Arduino. В этом скетче есть строка Serial.begin(19200), в которой можно задать любую требуемую скорость передачи, но это возможно только при работе через USB-кабель. Ежели передача данных идет через радиоканал Bluetooth, то скорость обмена с COM-портом должна быть задана заранее, точно такой же, какую мы выбираем при отладке Bluetooth-модуля.

 

Возникла неполадка: невероятно тормозит Arduino IDE при навигации по меню.

 

Способ устранения.

В Диспетчере устройств, во вкладке Bluetooth Serial отключите Bluetooth-соединение с мобильным телефоном. Все внешние подключения через Bluetooth значительно пожирают объем виртуальной памяти.

 

Загрузка первого скетча

 

Соединение установлено, среда разработки настроена — теперь в ваших руках отлаженный инструмент для прошивки любых микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM.

 

В среде разработки Arduino IDE есть много готовых образцов для различных задач, но для проверки отзывчивости платы на перепрошивку достаточно внести небольшие изменения в предустановленную программу Blink (мигание светодиода «L» на плате).

Достаточно в открытом эскизе Blink внести свои изменения в строчке delay(1000), нажать «Вгрузить» и засечь изменения в работе платы Arduino.

Установив delay(500) — светодиод «L» будет мигать в два раза чаще, с задержкой в пол секунды.

Задав delay(100) — светодиод «L» будет загораться и гаснуть в 10 раз быстрее, чем по заводской настройке, то есть каждые 100 миллисекунд.

 

Возникла неполадка: при загрузке скетча всплыла ошибка вида «not in sync».

 

Способ устранения.

Значит, подключенная платформа Arduino не была распознана операционной системой. Вернитесь к пунктам установки правильного номера COM-порта и модели платы в меню Инструменты Arduino IDE.

Да и напоследок, если вы купили плату Arduino на каком-нибудь онлайн китайском рынке, то очень часто возникают проблемы при подключении платы – просто она не определяется. Чтобы решить эту проблему умельцами был создан драйвер . СКАЧАТЬ

Автор: Виталий Петрович.


 

Arduino UNO R3: схема, распиновка портов

Arduino UNO R3 ► флагманская плата для разработки проектов на базе микроконтроллера ATmega328. Arduino UNO самая популярная платформа для начинающих изобретателей.

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

Arduino UNO: распиновка платы

Что такое Arduino UNO Ch440 мы уже рассказывали, поэтому перейдем сразу к характеристикам и описанию платы Ардуино УНО. Распиновка и принципиальная схема платформы представлена на фото далее. Как мы уже говорили, вся линейка плат имеет полностью открытую архитектуру системы, что позволяет любому стороннему производителю копировать и модернизировать платы Arduino Genuino UNO.

Arduino UNO распиновка платы на русском, ICSP

UNO является лучшим вариантом для знакомства с микроконтроллерами. Плата имеет удобный размер и все необходимое для начала работы: 14 цифровых входов/выходов (6 портов могут работать в режиме ШИМ), 6 аналоговых входов для датчиков, разъем USB для программирования и разъем питания Arduino UNO от блока питания или кроны. Но главное — это огромное множество уроков и инструкций в Интернете.

Характеристики платы Arduino UNO

  • Микроконтроллер: ATmega328
  • Тактовая частота: 16 МГц
  • Напряжение логических уровней: 5 В
  • Входное напряжение питания: 7–12 В
  • Портов ввода-вывода общего назначения: 20
  • Максимальный ток с порта ввода-вывода: 40 мА
  • Максимальный выходной ток порта 3.3 В: 50 мА
  • Максимальный выходной ток порта 5 В: 800 мА
  • Портов с поддержкой ШИМ: 6
  • Портов, подключённых к АЦП: 6
  • Разрядность АЦП: 10 бит
  • Flash-память: 32 КБ
  • EEPROM-память: 1 КБ
  • Оперативная память: 2 КБ
  • Габариты: 69×53 мм

Arduino UNO: схема электрическая

Arduino UNO R3 схема принципиальная электрическая

Arduino UNO: порты ввода вывода, питание

Рабочее напряжение — 5 В при подключении через USB с любых устройств (компьютер, ноутбук, зарядка от смартфона и т.д.). При одновременном подключении внешнего адаптера (аккумулятора, кроны, блока питания), питание автоматически переключается, но плату можно по-прежнему программировать через компьютер. Рекомендуемое питание Arduino Uno от батареек или аккумулятора от 7 до 12 В.

Arduino Uno питание от блока питания 12 вольт

Arduino UNO: питание от внешнего источника

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

Можно питание на микроконтроллер подать через порт VIN с помощью проводов. «Плюс» от внешнего источника подается на порт VIN, а «Минус» на GND (заземление). Подача внешнего напряжения 5 Вольт на пин 5V не допустимо, так как питание Genuino Arduino Uno обходит стороной стабилизатор, что может привести к поломке. Все цифровые порты на плате выдают стабилизированное напряжение в 5 Вольт.

Arduino UNO: прошивка, память

Arduino UNO программирование для начинающих

Программирование платы происходит в бесплатной среде Arduino IDE на русском, которую можно скачать на официальном сайте. Для подключения устройств и модулей используются коннекторы («папа-папа» и «папа-мама»), которые подключаются к портам Ардуино. Чтобы начать работать с платформой, перейдите в раздел Arduino uno r3 «Уроки для начинающих» , где представлены подробные инструкции с примерами.

Плата поддерживает три типа памяти:

Flash – память объемом 32 кБ, используется для хранения программы. Когда контроллер прошивается скетчем через USB, он записывается именно во Flash – память. Чтобы очистить память Arduino UNO следует загрузить пустой скетч.

SRAM память — это оперативная память Ардуино объемом 2 кБ. Здесь хранятся переменные и объекты, создаваемые в скетче. SRAM память энерго-зависимая, при отключении источника питания от платы, все данные удалятся.

EEPROM — это энергонезависимая память объемом 1кБ. Сюда можно записывать данные, которые при выключении питания не исчезнут. Минус EEPROM в ограничении циклов перезаписи — 100 000 раз по утверждениям производителя.

Описание Ардуино УНО на русском

Рекомендуем вам ознакомиться с другими платами из линейки Arduino-Genuino, например, аналог самой популярной платы UNO — RobotDyn UNO R3 от китайского производителя. Плата по своим характеристикам ничем не уступает официальному производителю, но при этом имеет более демократичную цену и ряд преимуществ. Таких как, более удобный USB-разъем и большее количество аналоговых входов.

Что такое Ардуино и что можно сделать с помощью платы

Разбираемся что такое Ардуино, для чего он нужен, что можно сделать, обзор преимуществ и уроков для начинающих.

Платы Ардуино

Ардуино является платой с процессором, которая позволяет собрать любое устройство/гаджет. Благодаря Arduino своими руками можно собрать даже свой собственный «умный дом».

Arduino — это эффективная аппаратно-программная платформа для проектирования и создания новых устройств, разработанная компанией Arduino Software и представляет собой плату с контактами для подключения дополнительных компонентов. Технические характеристики устройства зависят от модели используемого микроконтроллера.

Это касается совместимости с дополнительными компонентами. Последнее обновление программной части 1.8.0 было выпущено 20 декабря 2016 года.

Arduino Uno R3

Бесплатная программная интегрированная среда разработки создана на базе языков программирования C/C++ и обладает одноимённым с самим устройством название. Наличие Ардуино-совместимых плат расширяет пользовательские возможности разработки с применением аппаратных и программных компонентов.

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

Что можно сделать из Ардуино

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

  • датчик дождя,
  • датчик расстояния,
  • датчик температуры,
  • детектор пыли,
  • GPS приемник,
  • и др.

Вы можете запрограммировать систему быстро среагировать на определённое изменение, можете управлять:

  • светом,
  • движущимися элементами,
  • моторчиками
  • и разнообразными приводами.

Система подходит для домашнего и промышленного использования.

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

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

Преимущества линейки плат

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

Несмотря на высокую конкуренцию, Ардуино признана самой популярной аппаратно-программной платформой. Это достигается благодаря простоте с многофункциональностью. Рассмотрим преимущество системы над сторонними аналогами:

  1. Плата обладает встроенным программатором, что позволяет использовать систему без дополнительного подключения дешифратора и компилятора;
  2. Программная часть построена на базе C/C++, что делает её простой в использовании и изучении;
  3. Наличие библиотеки готовых проектов и чертежей CAD, доступных для свободного использования;
  4. Для сбора устройства не требуется пайка, компоненты соединяются при помощи специальной макетной доски, перемычек и проводов;
  5. Возможность автономной работы расширяет сферу применения устройства;
  6. Наличие версии для работы с популярной мобильной операционной системой Android;
  7. Большое количество дополнительных модулей как от разработчика, так и от сторонних производителей.

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

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

Доступный язык программирования обладает возможностью установки дополнительных компонентов и библиотек. Модули добавляют возможность работы с Java.

Что такое Arduino IDE

Arduino IDE — бесплатная среда разработки для Ардуино. Для работы платы и вашего будущего проекта необходимо написать и загрузить на Arduino скетч. IDE помогает с легкостью всё это реализовать.

Скетч (sketch) или эскиз — это программа, написанная специально для Arduino.

Для выполнения данного пункта вам понадобятся:

  • Любая плата Ардуино;
  • USB-кабель;
  • компьютер.

Скачать Arduino IDE можно с официального сайта производителя плат Arduino. Вместе с программой автоматически установятся драйвера для определения платы при подключении к USB-порту. Среда разработки оснащена стандартным менеджером добавления библиотек в виде исходного кода на языке C++. Данная возможность расширяет применение компонентов, добавляя новый функционал.

На плате Ардуино должен загореться зелёный светодиод при подключении к USB. Запустите приложение и приступайте к созданию собственного скетча.

Проверка работоспособности и совместимости Arduino с ПО можно проверить при помощи встроенного скетча «Моргание» (англ. — blink). Запуск данной программы должен вызвать мигание светодиода на плате.

Выберите в меню:

Tool -> Board -> Плата

Выберите используемую плату. Далее загружаем скетч в Arduino при помощи кнопки Upload. Успешное завершение данной операции подтверждается миганием светодиода оранжевого цвета на плате.

Для более подробного изучения среды разработки предлагаем вам наш большой материал про Arduino IDE.

Модели плат

Существует несколько разновидностей плат Ардуино, которые различаются по частоте процессора, объеме памяти и поддерживаемым архитектурам. Можно выделить следующие модели:

  1. Arduino Uno. Хорошее решение для начинающих пользователей и простых проектов. Поддерживает работу с Windows, Linux и MacOS. Встроенный микропроцессор работает на частоте 16 МГц, обладает 32 Кб встроенной памяти. Включается в комплекты для начинающих;
  2. Arduino Yun. Комплект с встроенным портом Ethernet и модулем WiFi. Оптимизирован для работы с семейством Linux. Подойдёт для работы как с любительскими, так и промышленными проектами;
  3. Arduino ADK. Устройство оптимизировано для работы с платформой Android. Хорошая совместимость и уникальный программный комплект позволяют создать проект, управляемый с мобильного телефона;
  4. Arduino Due. Улучшенная версия, работающая на мощном 32 битном ARM процессоре с тактовой частотой 84 МГц. В плату установлено 96 Кб SRAM и 512 Кб флеш-памяти.
  5. Arduino Nano. Одна из самых миниатырных, но очень полезных и популярных плат особенностью которой является разъем USB.

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

Полностью раскрыть потенциал Arduino позволяют дополнительные модули, подключающиеся к выводам платы, которые называют пинами (англ. — PIN). Наиболее интересные и популярные модули расширения:

  1. 3D-джойстик. Своеобразный программируемый 3D-стик, способный стать способом управления спроектированного механизма или робота;
  2. Bluetooth-модуль. Даёт возможность управления механизмом или обменом данными через Bluetooth;
  3. EasyVR Shield 3.0. Разработка, служащая для распознавания голосовых команд;
  4. Espruino Pico. Контролер, позволяющий выполнять Java-скрипты, расширяя варианты применения платы;
  5. GPRS Shield. Расширение, позволяющее принимать и отправлять голос, SMS и GPRS-данные;
  6. Motor Shield. Подключаемый модуль, позволяющий программно управлять двумя моторчиками;
  7. Power Bank. Аккумулятор для переносных компактных модулей на 2000 МАч.

Это далеко не весь список, а лишь популярные и распространённые дополнения. Существуют разнообразные подключаемые картридеры, акселерометры, передатчики и модули для разнообразных сфер жизнедеятельности. Arduino начинает эффективно применяться даже в медицине.

Первые проекты

Рекомендуем вам начать с самых простых Ардуино проектов для начинающих, среди которых на нашем сайте мы выделили несколько:

  1. Моргаем встроенным светодиодом Ардуино
  2. Управление устройствами со смартфона для чайников
  3. Управляйте своим Arduino с помощью пульта управления
  4. Текстовая анимация с помощью Arduino
  5. Делаем датчик дождя с оповещением по e-mail с помощью Arduino

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

Сайт arduinoplus.ru создан для того, чтобы помочь начинающим и профессиональным любителям радиоэлектроники создавать проекты различной сложности.

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

Примеры манипуляции с портами Arduino — Arduino Learning

Регистры портов

позволяют выполнять более низкоуровневые и более быстрые манипуляции с выводами ввода-вывода микроконтроллера на плате Arduino. Чипы, используемые на плате Arduino UNO, имеют три порта:

B (цифровые контакты с 8 по 13)
C (аналоговые входные контакты)
D (цифровые контакты с 0 по 7)

Каждый порт управляется тремя регистрами, которые также являются переменными, определенными в языке Arduino. Регистр DDR определяет, является ли вывод INPUT или OUTPUT.Регистр PORT контролирует, является ли вывод HIGH или LOW, а регистр PIN считывает состояние контактов INPUT, установленных для ввода с помощью pinMode (). Карты микросхем ATmega8 и ATmega168 показывают порты. Более новый чип Atmega328p в точности повторяет распиновку Atmega168.

Регистры

DDR и PORT могут быть как записаны, так и прочитаны. Регистры PIN соответствуют состоянию входов и могут быть только прочитаны.

PORTD отображается на цифровые контакты Arduino с 0 по 7

DDRD — Регистр направления данных порта D — чтение / запись
PORTD — Регистр данных порта D — чтение / запись
PIND — Регистр входных контактов порта D — только чтение
PORTB отображается на цифровые контакты Arduino с 8 по 13 Два высоких биты (6 и 7) отображаются на контакты кристалла и не используются

DDRB — Регистр направления данных порта B — чтение / запись
PORTB — Регистр данных порта B — чтение / запись
PINB — Регистр входных контактов порта B — только чтение
PORTC отображается на аналоговые выводы Arduino с 0 по 5.Контакты 6 и 7 доступны только на Arduino Mini

.

DDRC — Регистр направления данных порта C — чтение / запись
PORTC — Регистр данных порта C — чтение / запись
PINC — Регистр входных контактов порта C — только чтение
Каждый бит этих регистров соответствует одному выводу; например младший бит DDRB, PORTB и PINB относится к выводу PB0 (цифровой вывод 8). Для полного сопоставления номеров контактов Arduino с портами и битами см. Схему для вашего чипа: ATmega8, ATmega168. (Обратите внимание, что некоторые биты порта могут использоваться для других целей, кроме ввода-вывода; будьте осторожны, чтобы не изменить значения соответствующих им битов регистра.)

Код

В этом примере все порты PORTB будут настроены на выходы, что немного избыточно, так как тогда все выводы порта будут установлены на высокий, а затем на низкий уровень, а не на отдельный встроенный светодиод

.
 #include 
#include 
установка void ()
{
DDRB = 0xFF;
}
пустой цикл ()
{
PORTB = 0xFF;
_delay_ms (1000);
PORTB = 0x00;
_delay_ms (1000);
} 

Это установит PB5 (контакт 13 — светодиод на плате) только путем установки значения PORT на 0x32, это будет следующее в двоичном формате — 00100000.Бит 5 высокий.
 #include 
#include 
установка void ()
{
DDRB = 0xFF;
}
пустой цикл ()
{
PORTB = 0x32;
_delay_ms (1000);
PORTB = 0x00;
_delay_ms (1000);
} 

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

 #include 
#include 
установка void ()
{
DDRB = B11111111;
}
пустой цикл ()
{
ПОРТБ = B00100000;
_delay_ms (1000);
PORTB = B00000000;
_delay_ms (1000);
} 

Этот метод также включает и выключает встроенный светодиод.

 #include 
#include 

установка void ()
{
DDRB = B11111111;
}
пустой цикл ()
{
PORTB = PORTB | 0x20; // Записывает PORTB5 low
_delay_ms (500);
ПОРТБ = ПОРТБ & 0xDF; // Записывает PORTB5 как высокий
_delay_ms (500);
} 

Размер шестигранника:

Давайте посмотрим на пример мигания, эта информация взята из Arduino IDE

.

Sketch использует 1030 байт (3%) места для хранения программ. Максимум 32 256 байт.

Теперь используем нижний пример выше

Sketch использует 494 байта (1%) места для хранения программ.Максимум 32 256 байт.

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

Управление портами происходит быстрее, чем использование команды Arduino digitalWrite (), вероятно, не критично, если вы просто мигаете светодиодом, но бывают случаи, когда скорость может быть проблемой

.Последовательный порт

— ссылка на Arduino

Описание

Используется для связи между платой Arduino и компьютером или другими устройствами. Все платы Arduino имеют как минимум один последовательный порт (также известный как UART или USART), а некоторые — несколько.

Доска Имя USB CDC Последовательные контакты Контакты Serial1 Последовательный 2 контакта Serial 3 контакта

Uno, Nano, Mini

0 (RX), 1 (TX)

Мега

0 (RX), 1 (TX)

19 (прием), 18 (передача)

17 (прием), 16 (передача)

15 (RX), 14 (TX)

Леонардо, Микро, Юнь

Серийный

0 (RX), 1 (TX)

Uno WiFi Rev.2

Подключено к USB

0 (RX), 1 (TX)

Подключено к NINA

Платы MKR

Серийный

13 (RX), 14 (TX)

Ноль

Последовательный порт USB (только собственный порт USB)

Подключено к порту программирования

0 (RX), 1 (TX)

Срок погашения

Последовательный порт USB (только собственный порт USB)

0 (RX), 1 (TX)

19 (прием), 18 (передача)

17 (прием), 16 (передача)

15 (RX), 14 (TX)

101

Серийный

0 (RX), 1 (TX)

На Uno, Nano, Mini и Mega контакты 0 и 1 используются для связи с компьютером.Подключение чего-либо к этим контактам может помешать этой связи, в том числе вызвать сбои при загрузке на плату.

Вы можете использовать встроенный последовательный монитор среды Arduino для связи с платой Arduino. Нажмите кнопку монитора последовательного порта на панели инструментов и выберите ту же скорость передачи, что и при вызове begin () .

Последовательная связь на выводах TX / RX использует логические уровни TTL (5 В или 3,3 В в зависимости от платы). Не подключайте эти контакты напрямую к последовательному порту RS232; они работают при +/- 12 В и могут повредить вашу плату Arduino.

Чтобы использовать эти дополнительные последовательные порты для связи с вашим персональным компьютером, вам понадобится дополнительный адаптер USB-to-serial, так как они не подключены к адаптеру Mega USB-to-serial. Чтобы использовать их для связи с внешним устройством с последовательным интерфейсом TTL, подключите контакт TX к контакту RX вашего устройства, RX — к контакту TX вашего устройства, а землю Mega — к земле вашего устройства.

.

attachInterrupt () — Ссылка на Arduino

Описание

Цифровые выводы с прерываниями

Первый параметр в attachInterrupt () — это номер прерывания. Обычно вы должны использовать digitalPinToInterrupt (pin) для преобразования фактического цифрового вывода в конкретный номер прерывания. Например, если вы подключаетесь к контакту 3, используйте digitalPinToInterrupt (3) в качестве первого параметра для attachInterrupt () .

Доска Цифровые выводы, используемые для прерываний

Uno, Nano, Mini, прочие 328 на основе

2, 3

Uno WiFi Rev.2, нано каждые

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

Mega, Mega2560, MegaADK

2, 3, 18, 19, 20, 21

Micro, Leonardo, другие на базе 32u4

0, 1, 2, 3, 7

Ноль

все цифровые контакты, кроме 4

Платы семейства MKR

0, 1, 4, 5, 6, 7, 8, 9, A1, A2

Нано 33 IoT

2, 3, 9, 10, 11, 13, 15, A5, A7

Nano 33 BLE, Nano 33 BLE Sense

все штыри

Срок погашения

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

101

все цифровые контакты (только контакты 2, 5, 7, 8, 10, 11, 12, 13 работают с CHANGE )

Примечания и предупреждения

Note
Внутри присоединенной функции delay () не будет работать, и значение, возвращаемое функцией millis () , не будет увеличиваться.Последовательные данные, полученные при использовании функции, могут быть потеряны. Вы должны объявить как volatile любые переменные, которые вы изменяете в присоединенной функции. См. Раздел об ISR ниже для получения дополнительной информации.

Использование прерываний

Прерывания

полезны для автоматического выполнения задач в программах микроконтроллера и могут помочь решить проблемы синхронизации. Хорошие задачи для использования прерывания могут включать чтение поворотного энкодера или мониторинг пользовательского ввода.

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

О процедурах обслуживания прерывания

ISR

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

Как правило, ISR должна быть как можно более короткой и быстрой. Если в вашем скетче используется несколько ISR, одновременно может работать только одна, остальные прерывания будут выполняться после завершения текущего в порядке, зависящем от их приоритета. millis () полагается на прерывания для подсчета, поэтому он никогда не будет увеличиваться внутри ISR. Так как delay () требует для работы прерываний, он не будет работать, если будет вызван внутри ISR. micros () работает изначально, но через 1-2 мс начнет работать нестабильно. delayMicroseconds () не использует счетчиков, поэтому будет работать как обычно.

Обычно глобальные переменные используются для передачи данных между ISR и основной программой. Чтобы убедиться, что переменные, совместно используемые ISR и основной программой, обновлены правильно, объявите их как volatile .

Синтаксис

attachInterrupt (digitalPinToInterrupt (контакт), ISR, режим) (рекомендуется)
attachInterrupt (прерывание, ISR, режим) (не рекомендуется)
attachInterrupt (контакт, ISR, режим) (не рекомендуется.Кроме того, этот синтаксис работает только на платах Arduino SAMD, Uno WiFi Rev2, Due и 101.)

Параметры

прерывание : номер прерывания. Допустимые типы данных: int .
pin : номер контакта Arduino.
ISR : ISR для вызова при возникновении прерывания; эта функция не должна принимать никаких параметров и ничего не возвращать. Эту функцию иногда называют процедурой обслуживания прерывания.
режим : определяет, когда должно срабатывать прерывание.Четыре константы предварительно определены как допустимые значения:

  • LOW для запуска прерывания всякий раз, когда на выводе низкий уровень,

  • CHANGE для запуска прерывания всякий раз, когда вывод изменяет значение

  • RISING для срабатывания при переходе пина от низкого к высокому,

  • ПАДЕНИЕ , когда вывод переходит от высокого к низкому.

Платы Due, Zero и MKR1000 также позволяют:

Возвращает

.

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

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