Но настали черные дни, когда мне перестало хватать выходных сигналов 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 | Питание — + |
Что более важно, так это блокировочные конденсаторы. Без них схема может работать не так, как задумано, и более того, непредсказуемо. Теоретически, в цепи питания каждого корпуса нужно ставить 0.1мкФ конденсатор. Это значение ёмкости я вычислил как среднее по интернету. Моя схема вполне заработала и без него. Чтобы уточнить, залез было в библию схемотехника, чтобы уточнить — Хилл и Хоровиц, «Искусство схемотехники» — это почти как «Искусство Программирования» Дональда Кнутта, но только для железячников (к слову, Хилл и Хоровиц гораздо ближе к народу, Кнутт через-чур умничает) — но там блокировочными конденсаторами похоже называют развязывающие по входам конденсаторы. Жаль, хорошая книга, но очень отстала уже от жизни. У меня второе или третье русское издание конца 90ых или начала 0ых годов, оригинал скорее всего ещё лет на 10 старше. На третьем, розовом томе, обнаружил наклейку — «14руб» — как же дешево тогда всё было, по современным меркам. А прошло-то всего 15 лет или чуть больше. Аж ностальгия замучала.
Быстродействие 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 — ~MR, ~OE с Ардуино, то достаточно только трех выходов Ардуино для управления сигналами DS, SHCP и STCP сдвигового регистра, чтобы при помощи микросхемы 74HC595 превратить их в 8 или 16 или больше выходных сигналов.
Для мультиплексирования нескольких расширителей на базе 74HC595 можно пойти двумя путями: 1) для каждого расширителя сигнала выделить отдельный latch сигнал — т.е. все регистры на шине параллельно сдвигают поступающие данные, и, соответственно, сдвигают значения на выходах внутреннего сдвигового регистра, но только один передает значение из внутреннего сдвигового регистра на выходы микросхемы; 2) сигналы сдвига передаются только на один из расширителей, а перенос значений сигналов на выход происходит одновременно для всех модулей расширения.
Я больше склонен использовать вариант, когда во внутренних сдвиговых регистрах может находится всё, что угодно (вариант 1), а на выходе зафиксировано какое-то из предыдущих значений, и вот почему: при переносе значений из внутреннего сдвигового регистра на выход могут происходить неконтролируемые переходы из 0 в 1 и обратно, какой-то дребезг сигнала, даже если исходное значение во внутреннем регистре и на выходе одно и то же. И, на мой взгляд, операцию переноса состояния внутреннего регистра сдвига на выходы 74HC595 следует использовать как можно реже.
Одним из ключевых преимуществ платформы Arduino является популярность. Популярную платформу активно поддерживают производители электронных устройств, выпускающие специальные версии различных плат, расширяющих базовую функциональность контроллера. Такие платы, совершенно логично называемые платами расширения (другое название: arduino shield, шилд), служат для выполнения самых разнообразных задач и могут существенно упростить жизнь ардуинщика. В этой статье мы узнаем, что такое плата расширения Arduino и как ее можно использовать для работы с разнообразными устройствами Arduino: двигателями (шилды драйверов двигателей), LCD-экранами (шилды LCD), SD-картами (data logger), датчиками (sensor shield) и множеством других.
Давайте сперва разберемся в терминах. Плата расширения Ардуино – это законченное устройство, предназначенное для выполнения определенных функций и подключаемое к основному контроллеру с помощью стандартных разъемов. Другое популярное название платы расширения – англоязычное Arduino shield или просто шилд. На плате расширения установлены все необходимые электронные компоненты, а взаимодействие с микроконтроллером и другими элементами основной платы происходят через стандартные пины ардуино. Чаще всего питание на шилд тоже подается с основной платы arduino, хотя во многих случаях есть возможность запитки с других источников. В любом шилде остаются несколько свободных пинов, которые вы можете использовать по своему усмотрению, подключив к ним любые другие компоненты.
Англоязычное слово Shield переводится как щит, экран, ширма. В нашем контексте его следует понимать как нечто, покрывающее плату контроллера, создающего дополнительный слой устройства, ширму, за которой скрываются различные элементы.
Все очень просто: 1) для того, чтобы мы экономили время, и 2) кто-то смог заработать на этом. Зачем тратить время, проектируя, размещая, припаивая и отлаживая то, что можно взять уже в собранном варианте, сразу начав использовать? Хорошо продуманные и собранные на качественном оборудовании платы расширения, как правило, более надежны и занимают меньше места в конечном устройстве. Это не значит, что нужно полностью отказываться от самостоятельной сборки и не нужно разбираться в принципе действия тех или иных элементов. Ведь настоящий инженер всегда старается понять, как работает то, что он использует. Но мы сможем делать более сложные устройства, если не будем каждый раз изобретать велосипед, а сосредоточим свое внимание на том, что до нас еще мало кто решал.
Естественно, за возможности приходится платить. Практически всегда стоимость конечного шилда будет выше цены отдельных комплектующих, всегда можно сделать аналогичный вариант подешевле. Но тут уже решать вам, насколько критично для вас потраченные время или деньги. С учетом посильной помощи китайской промышленности, стоимость плат постоянно снижается, поэтому чаще всего выбор делается в пользу использования готовых устройств.
Наиболее популярным примерами шилдов являются платы расширения для работы с датчиками, двигателями, LCD-экранами, SD-картами, сетевые и GPS-шилды, шилды со встроенными реле для подключения к нагрузке.
Для подключения шилда нужно просто аккуратно «надеть» его на основную плату. Обычно контакты шилда типа гребенки (папа) легко вставляются в разъемы платы ардуино. В некоторых случаях требуется аккуратно подправить штырки, если сама плата спаяна неаккуратно. Тут главное действовать аккуратно и не прилагаться излишней силы.
Как правило, шилд предназначен для вполне конкретной версии контроллера, хотя, например, многие шилды для Arduino Uno вполне нормально работают с платами Arduino Mega. Распиновка контактов на меге выполнена так, что первые 14 цифровых контактов и контакты с противоположной стороны платы совпадают с расположением контактов на UNO, поэтому в нее легко становится шилд от ардуино.
Программирование схемы с платой расширения не отличается от обычного программирования ардуино, ведь с точки зрения контроллера мы просто подключили наши устрйоства к его обычным пинам. В скетче нужно указывать те пины, которые соединены в шилде с соответствующими контактами на плате. Как правило, производитель указывает соответствие пинов на самом шилде или в отдельной инструкции по подключению. Если вы скачаете скетчи, рекомендованные самим производителем платы, то даже это делать не понадобится.
Чтение или запись сигналов шилдов производится тоже обычным методом: с помощью функций analogRead (), digitalRead (), digitalWrite () и других, привычных любому ардуинщику команд. В некоторых случаях возможны коллизии, когда вы привыкли к оной схеме соединения, а производитель выбрал другую (например, вы подтягивали кнопку к земле, а на шилде – к питанию). Тут нужно быть просто внимательным.
Как правило, эта плата расширения идет в наборах ардуино и поэтому именно с ней ардуинщики встречаются чаще всего. Шилд достаточно прост – его основная задача предоставить более удобные варианты подключения к плате Arduino. Это осуществляется за счет дополнительных разъемов питания и земли, выведенных на плату к каждому из аналоговых и цифровых пинов. Также на плате можно найти разъемы для подключения внешнего источника питания (для переключения нужно установить перемычки), светодиод и кнопка перезапуска. Варианты шилда и примеры использования можно найти на иллюстрациях.
Существует несколько версий сенсорной платы расширения. Все они отличаются количеством и видом разъемов. Наиболее популярными сегодня являются версии Sensor Shield v4 и v5.
Данный шилд ардуино очень важен в робототехнических проектах, т.к. позволяет подключать к плате Arduino сразу обычный и серво двигатели. Основная задача шилда – обеспечить управление устройствами потребляющими достаточно высокий для обычной платы ардуино ток. Дополнительным возможностями платы является функция управления мощностью мотора (с помощью ШИМ) и изменения направления вращения. Существует множество разновидностей плат motor shield. Общим для всех них является наличие в схеме мощного транзистора, через который подключается внешняя нагрузка, теплоотводящих элементов (как правило, радиатора), схемы для подключения внешнего питания, разъемов для подключения двигателей и пины для подключения к ардуино.
Организация работы с сетью – одна из самых важных задач в современных проектах. Для подключения к локальной сети через Ethernet существует соответствующая плата расширения.
Эти платы достаточно просты – на них расположены контактные площадки для монтажа элементов, выведена кнопка сброса и есть возможность подключения внешнего питания. Предназначение данных шилдов – повысить компактность устройства, когда все необходимые компоненты располагаются сразу над основной платой.
Данный тип шилдов используется для работы с LCD-экранами в ардуино. Как известно, подключение даже самого простого 2-строчного текстового экрана далеко не тривиальная задача: требуется правильно подключить сразу 6 контактов экрана, не считая питания. Гораздо проще вставить готовый модуль в плату ардуино и просто загрузить соответствующий скетч. В популярном LCD Keypad Shield на плату сразу заведены от 4 до 8 кнопок, что позволяет срзау организовать и внешний интерфейс для пользователя устройства. TFT Shield также помогает
Еще одна задача, которую достаточно трудно реализовывать самостоятельно в своих изделиях – это сохранение данных, полученных с датчиков, с привязкой по времени. Готовый шилд позволяет не только сохранить данные и получать время со встроенных часов, но и подключить датчики в удобном виде путем пайки или на монтажной плате.
В этой статье мы с вами рассмотрели только небольшую часть огромного ассортимента всевозможных устройств, расширяющих функциональность ардуино. Платы расширения позволяют сосредоточиться на самом главном – логике вашей программы. Создатели шилдов предусмотрели правильный и надежный монтаж, необходимый режим питания. Все, что вам остается, это найти нужную плату, используя заветное английское слово shield, подключить ее к ардуино и загрузить скетч. Обычно любое программирование шилда заключается в выполнении простых действий по переименованию внутренних переменных уже готовой программы. В итоге мы получаем удобство в использовании и подключении, а также быстроту сборки готовых устройств или прототипов.
Минусом использования плат расширения можно назвать их стоимость и возможный потери эффективности из-за универсальности шилдов, лежащей в их природе. Для вашей узкой задачи или конечного устройства все функции шилда могут быть не нужны. В таком случае стоит использовать шилд только на этапе макетирования и тестирования, а при создании финального варианта своего устройства задуматься о замене конструкцией с собственной схемой и типом компоновки. Решать вам, все возможности для правильного выбора у вас есть.
Arduino Uno — флагманская платформа для разработки на базе микроконтроллера ATmega328P. На Arduino Uno предусмотрено всё необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъём USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса.
Для работы с платой Arduino Uno в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE.
Сердцем платформы Arduino Uno является 8-битный микроконтроллер семейства AVR — ATmega328P.
Микроконтроллер 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 В устройствами.
Цифровые входы/выходы: пины 0
–13
Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
ШИМ: пины 3
,5
,6
,9
,10
и 11
Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
АЦП: пины A0
–A5
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 предназначен для прошивки платформы Arduino Uno с помощью компьютера.
Разъём для подключения внешнего питания от 7 В до 12 В.
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega328P.
С использованием библиотеки SPI
данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах 10(SS)
, 11(MOSI)
, 12(MISO)
и 13(SCK)
.
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 IDE. IDE расшифровывается как интегрированная среда разработки, и в нашем случае представляет собой блокнот, в котором мы пишем код, препроцессор и компилятор, которые проверяют и компилируют код, и инструменты для загрузки, которые загружают код выбранным способом. IDE написана на java, поэтому не удивляйтесь её долгому запуску, большому объему занимаемой оперативки и медленной работе. Несмотря на огромный опыт работы с ардуино я до сих пор продолжаю писать код в Arduino IDE, потому что я к ней привык. Помимо перечисленных проблем стандартная IDE выделяется на фоне “взрослых” сред разработки отсутствием дерева/файловой структуры проекта (что не нужно для простых проектов), отсутствием рефакторинга, отсутствием автоматического дополнения кода (хотя его обещают вот-вот добавить и уже есть beta) и очень медленной компиляцией кода. Этих недостатков лишены аналоги Arduino IDE, о них поговорим в конце урока. Помимо отсутствия озвученных недостатков там есть некоторые полезные фишки, например все define-ы файла с кодом отображаются в отдельном блоке и с ними очень удобно работать.
Сначала рассмотрим общий вид программы, т.е. как она выглядит после запуска. В самом центре – блокнот, то самое место, где пишется код. По умолчанию уже написаны два стандартных блока, setup и loop. К ним вернёмся в разделе уроков программирования. Всё остальное можно увидеть на скриншоте ниже.
Пробежимся по пунктам меню, которые я считаю первостепенно важными, с остальными можно познакомиться самостоятельно по ходу работы с программой. Версия моей IDE – 1.8.8, в новых что-то может отличаться
Далее сразу рассмотрим окно настроек:
Куча интересных настроек на свой вкус. Из них отмечу
Во вкладке Правка ничего такого особенного нет, всё как в других программах
Система вкладок в Arduino IDE работает крайне необычным образом и очень отличается от понятия вкладок в других программах:
Всем нетерпимо относящимся к кривой официальной IDE могу посоветовать следующие аналоги, работа в которых чем-то лучше, а чем-то хуже официальной IDE:
Эта библиотека позволяет вам связываться с устройствами I2C / TWI. На платах Arduino с разводкой R3 (распиновка 1.0) SDA (линия данных) и SCL (линия синхронизации) находятся на разъемах контактов, близких к контакту AREF. Arduino Due имеет два интерфейса I2C / TWI: SDA1 и SCL1 расположены рядом с выводом AREF, а дополнительный — на выводах 20 и 21. Для справки в таблице ниже показано расположение контактов TWI на различных платах Arduino.
Начиная с Arduino 1.0, библиотека наследуется от функций Stream, что делает ее совместимой с другими библиотеками чтения / записи. Из-за этого send () и receive () были заменены на read () и write (). ПримечаниеСуществуют как 7-, так и 8-битные версии адресов I2C. 7 бит идентифицируют устройство, а восьмой бит определяет, записывается оно или читается с него. Библиотека Wire использует 7-битные адреса. Если у вас есть таблица данных или образец кода, в котором используется 8-битный адрес, вам нужно отбросить младший бит (т.е.е. сдвиньте значение на один бит вправо), получая адрес от 0 до 127. Однако адреса от 0 до 7 не используются, потому что зарезервированы, поэтому первый адрес, который можно использовать, равен 8. Обратите внимание, что при подключении контактов SDA / SCL необходим подтягивающий резистор. Пожалуйста, обратитесь к примерам для получения дополнительной информации. Плата MEGA 2560 имеет подтягивающие резисторы на контактах 20-21 на плате. Чтобы использовать эту библиотеку Примеры
См. ТакжеПоследняя редакция 2019/12/24, автор: SM | Функции |
Чтобы загрузить программу на плату Arduino, нужно задействовать множество элементов, и если какая-либо из них не подходит, загрузка может завершиться ошибкой. К ним относятся: драйверы для платы, выбор платы и последовательного порта в программном обеспечении Arduino, доступ к последовательному порту, физическое подключение к плате, прошивка на 8U2 (на Uno и Mega 2560), загрузчик на основной микроконтроллер на плате, настройки предохранителя микроконтроллера и многое другое.Вот несколько конкретных предложений по устранению неполадок каждой из частей.
Программное обеспечение Arduino
Драйверы
позволяют программному обеспечению на вашем компьютере (то есть программному обеспечению Arduino) взаимодействовать с оборудованием, которое вы подключаете к компьютеру (платой Arduino). В случае с Arduino драйверы работают, предоставляя виртуальный последовательный порт (или виртуальный COM-порт). Arduino Uno и Mega 2560 используют стандартные драйверы (USB CDC), предоставляемые операционной системой, для связи с ATmega8U2 на плате.Другие платы Arduino используют драйверы FTDI для связи с микросхемой FTDI на плате (или в преобразователе последовательного порта USB).
Самый простой способ проверить, правильно ли установлены драйверы для вашей платы, — открыть меню «Инструменты »> «Последовательный порт » в программном обеспечении Arduino с платой Arduino, подключенной к вашему компьютеру. Дополнительные элементы меню должны отображаться относительно того, когда вы открываете меню без подключения Arduino к вашему компьютеру. Обратите внимание, что не имеет значения, какое имя назначается последовательному порту платы Arduino, если это имя вы выбираете из меню.
sudo usermod -a -G tty yourUserName
sudo usermod -a -G dialout yourUserName
Доступ к последовательному порту
Физическое соединение
Автосброс