Подключение ардуино к пк. ESP8266 и Arduino, подключение, распиновка. Язык программирования Ардуино

При установке Arduio IDE должны автоматически поставиться драйверы, необходимые для работы с оригинальными платами Arduino. Но фишка в том, что на китайских платах стоит более дешёвый контроллер интерфейса USB, для работы с ним нужен специальный драйвер. Китайский контроллер ничем не хуже, он просто дешевле =)

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


Далее подключить Arduino к компьютеру, подождать, пока Windows её распознает и запомнит (первое подключение).
P.S. Вылезет окошечко, сообщающее, что устройство опознано и подключено к COM порту с определённым номером отличным от номера 1

По умолчанию в linux можно прошивать китайские ардуинки без дополнительного оборудования. Но вначале ничего не получается и Arduino IDE выдает ошибку.
Дело вот в чем. Linux (в моем случае linux mint) определяет ардуинку как устройство ttyUSB*. Обычно это ttyUSB0. Это можно узнать командой dmesg в терминале.
То есть, в системе появляется интерфейс /dev/ttyUSB0 . Но чтобы с ним работать, нужны права доступа. Читать и писать на устройство /dev/ttyUSB0 имеет пользователь root и пользователи группы dialout. Работы с правами суперпользователя лучше избегать, поэтому следует занести своего пользователя в группу dialout. Это можно сделать следующей командой(обратите внимание, команда whoami в обратных кавычках)
sudo usermod -a -G dialout `whoami`
После этого нужно перелогиниться. Дальше запускаем Arduino IDE и в меню «Инструменты-Порт» ставим галочку напротив /dev/ttyUSB0 .

За инфу спасибо Владу Шеменкову

Всё больше набирает популярности, и уже Arduino подхватывает инициативу - добавляя эти Wi-Fi модули в список поддерживаемых плат.
Но как же его подключить к ардуино? И возможно как-то обойтись вообще без ардуино? Сегодня именно об этом и пойдёт речь в этой статье.

Забегая наперёд, скажу, что будет вторая статья, уже более практическая, по теме прошивки и программирования модуля ESP8266 в среде разработки Arduino IDE . Но, обо всём по порядку.

Этот видеоролик, полностью дублирует материал, представленный в статье.



На данный момент, существует много разновидностей этого модуля, вот некоторые из них:

А вот распиновка ESP01, ESP03, ESP12:


* Данную картинку можно посмотреть в хорошем качестве на офф. сайте pighixxx.com .

Лично мне, больше всего нравится версия ESP07. Как минимум за то, что тут есть металлический экран (он защищает микросхемы от внешних наводок, тем самым обеспечивает более стабильную работу), своя керамическая антенна, разъём для внешней антенны. Получается, подключив к нему внешнюю антенну, например типа биквадрат , то можно добиться неплохой дальности. К тому же, тут есть немало портов ввода вывода, так называемых GPIO(General Purpose Input Output - порты ввода-вывода общего назначения), по аналогии с ардуино - пинов.

Давайте вернёмся к нашим баранам Wi-Fi модулям и Arduino. В этой статье, я буду рассматривать подключение ESP8266(модели ESP01) к Arduino Nano V3.

Но, данная информация будет актуальна для большинства модулей ESP8266 и так же разных Arduino плат, например самой популярной Arduino UNO.

Пару слов по ножкам ESP01:

Vcc и GND (на картинке выше это 8 и 1) - питание, на ножку Vcc можно подавать, судя по документации , от 3 до 3.6 В , а GND - земля (минус питания). Я видел, как один человек подключал этот модуль к двум AA аккумуляторам (напряжение питания в этом случае было примерно 2.7 В) и модуль был работоспособным. Но всё же разработчики указали диапазон напряжений, в котором модуль должен гарантированно работать, если вы используете другой - ваши проблемы.

Внимание! Этот модуль основан на 3.3 В логике, а Arduino в основном - 5 В логика. 5 В запросто могут вывести из строя ESP8266, потому на него нужно отдельно от ардуино подавать питание .

- На моей ардуинке есть ножка, где написано 3.3 В, почему бы не использовать её?

Наверное подумаете вы. Дело в том, что ESP8266 довольно таки прожорливый модуль, и в пиках может потреблять токи до 200 мА, и почти никакая ардуинка по умолчанию не способна выдать такой ток, разве что исключением является Arduino Due , у которой ток по линии 3.3 В может достигать 800 мА, чего с запасом хватит, в других же случаях советую использовать дополнительный стабилизатор на 3.3 В, например AMS1117 3.3 В . Таких валом как в Китае, так и у нас.

Ножка RST 6 - предназначена «железной» для перезагрузки модуля, кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Хоть и на видео я этим пренебрёг, но всё же вам советую «прижимать» данную ногу резистором на 10 кОм к плюсу питания , дабы добиться лучшей стабильности в работе модуля, а то у меня перезагружался от малейших наводок.

Ножка CP_PD 4(или по-другому EN ) - служит, опять же, для «железного» перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова - не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питалова. На видео я тупо закоротил эту ногу на Vcc, потому как под рукой не оказалось такого резистора.

Ноги RXD0 7 TXD0 2 - аппаратный UART, который используется для перепрошивки, но ведь никто не запрещает использовать эти порты как GPIO(GPIO3 и GPIO1 соотвественно). GPIO3 на картинке почему-то не размечен, но в даташите он есть:

К стати, к ножке TXD0 2 подключен светодиод «Connect», и горит он при низком логическом уровне на GPIO1, ну или когда модуль отправляет что-то по UART.

GPIO0 5 - может быть не только портом ввода/вывода, но и переводить модуль в режим программирования. Делается это подключив этот порт к низкому логическому уровню(«прижав» к GND) и подав питание на модуль. На видео я делаю это обычной кнопкой. После перепрошивки - не забудьте вытащить перемычку/отжать кнопку(кнопку во время перепрошивки держать не обязательно, модуль при включении переходит в режим программирования, и остаётся в нём до перезагрузки).

GPIO2 3 - порт ввода/вывода.

И ещё один немаловажный момент, каждый GPIO Wi-Fi модуля может безопасно выдавать ток до 6 мА , чтобы его не спалить, обязательно ставьте резисторы последовательно портам ввода/вывода на… Вспоминаем закон Ома R = U/I = 3.3В / 0.006 А = 550 Ом, то есть, на 560 Ом . Или же пренебрегайте этим, и потом удивляйтесь почему оно не работает.

В ESP01 все GPIO поддерживают ШИМ, так что к нашим четырём GPIO, то есть GPIO0-3 можно подключить драйвер двигателя, аля L293 / L298 и рулить двумя двигателями, например катера, или же сделать RGB Wi-Fi приблуду. Да, да, данный модуль имеет на борту много чего, и для простеньких проектов скрипач Arduino не нужен, только для перепрошивки. А если использовать ESP07 то там вообще портов почти как у Uno, что даёт возможность уже уверенно обходиться без ардуино. Правда есть один неприятный момент, аналоговых портов у ESP01 вообще нет, а у ESP07 только один, ADC зовётся. Это конечно усугубляет работу с аналоговыми датчиками. В таком случае ардуино аналоговый мультиплексор в помощь.

Всё вроде как по распиновке пояснил, и вот схема подключения ESP8266 к Arduino Nano:

Видите на Arduino Nano перемычка на ножках RST и GND? Это нужно для того, чтобы ардуинка не мешала прошивке модуля, в случае подключения ESP8266 при помощи Arduino - обязательное условие.

Так же если подключаете к Arduino - RX модуля должен идти к RX ардуинки, TX - TX. Это потому, что микросхема преобразователь уже подключена к ножкам ардуино в перекрестном порядке.

Так же немаловажен резистивный делитель, состоящий из резисторов на 1 кОм и 2 кОм (можно сделать из двух резисторов на 1 кОм последовательно соединив их) по линии RX модуля. Потому как ардуино это 5 В логика а модуль 3.3. Получается примитивный преобразователь уровней. Он обязательно должен быть, потому что ноги RXD TXD модуля не толерантные к 5 В.

Ну и можно вообще обойтись без ардуино, подключив ESP8266 через обычный USB-UART преобразователь. В случае подключения к ардуино, мы, по сути, используем штатный конвертер интерфейсов usb и uart, минуя мозги. Так зачем тратиться лишний раз, если можно обойтись и без ардуино вообще? Только в этом случае, мы подключаем RXD модуля к TXD конвертора, TXD - RXD.

Если вам лениво заморачиваться с подключением, возится с резисторами и стабилизаторами - есть готовые решения NodeMcu:

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

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

В этой статье объясним, как подключить Arduino Uno r3 драйвер и загрузить свой первый эскиз. запрограммирован с использованием программного обеспечения – интегрированной среды разработки, общей для всех плат. Она работает как в режиме онлайн, так и автономно.

Особенности драйвера для Arduino Uno

Arduino требуется драйвер для полноценной работы на компьютере. Установка программного обеспечения драйвера на Windows 7 – это самый простой способ установки программного обеспечения. Лучше всего производить загрузку из заархивированного файла. Это позволяет легко удалить программное обеспечение, удалив папку.

Когда операционная система Windows 10 автоматически устанавливает драйвер, Ардуино просто выглядит, как COM-порт в диспетчере устройств. Он не распознается, как микропроцессор, хотя и будет работать должным образом, и код из Arduino IDE может быть загружен в него. После установки драйвера Ардуино Нано, который поставляется с программным обеспечением Arduino, микроконтроллер будет показан, как Ардуино на COM-порту в диспетчере устройств.

Разновидности драйверов

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

Тип 1

Драйвер для расширенной версии Ардуино Уно - Arduino mega 2560 драйвер. У Arduino Uno и Mega 2560 может возникнуть проблема с подключением к Mac через USB-концентратор. Если в меню «Инструменты → Последовательный порт » ничего не отображается, попробуйте подключить плату непосредственно к компьютеру и перезапустить .

Отключайте цифровые контакты 0 и 1 во время загрузки, поскольку они совместно используются последовательной связью с компьютером (они могут подключаться и использоваться после загрузки кода). Arduino mega 2560 драйвер для Windows 7 доступен по следующей ссылке: https://www.arduino.cc/en/Main/Software . После перехода пользователь вводит в поисковое окошко официального сайта микроконтроллера название платы для скачивания драйверов.

Тип 2

Avrisp mkii driver – требуется для создания программатора. Когда вы устанавливаете , устанавливается USB-драйвер, так что вы можете использовать программатор Atmel AVRISP mk II в качестве альтернативы использования серийного загрузчика Arduino. Кроме того, если вам нужно фактически запрограммировать AVR MCU с самим кодом загрузчика (требуется, если у вас есть пустой микропроцессор Mega328, у которого не было предустановленной прошивки загрузчика), вы можете сделать это из IDE Arduino, используя Tools / Burn Bootloader.

После указания AVRISP mk II в качестве программного обеспечения с использованием функции Tools / Programmer. Однако, когда вы устанавливаете Studio 6.1 / 6.2, установка Atmel будет загружать собственный USB-драйвер, который работает с ID Studio.x. У вас есть возможность не устанавливать драйвер Jungo во время процесса установки Studio, но вы не можете использовать Atmel AVRISP mk II или Atmel JTAGICE3 без этого драйвера.

Когда вы устанавливаете подключаемый модуль Visual Micro для Studio 6.x , скорее всего, вы будете использовать последовательный загрузчик Arduino, поскольку возможности программирования и отладки Visual Micro основаны на последовательной связи USB между ПК и микроконтроллером. Однако если вы решите, что хотите использовать Atmel AVRISP mk II из среды Visual Micro / Studio 6.x, вы обнаружите, что она не работает. Появится сообщение об ошибке, что AVRdude (программное обеспечение для программирования, используемое IDE Ардуино), не может «видеть» программатора AVRISP mk II. Это происходит потому, что Studio6.x использует USB-драйвер Jungo, а не Visual.

Тип 3

Для конструирования шагового двигателя понадобится Arduino l298n driver. Это двойной драйвер двигателя H-Bridge , который позволяет одновременно управлять скоростью и направлением двух двигателей постоянного тока. Модуль может приводить в действие двигатели постоянного тока с напряжением от 5 до 35 В с пиковым током до 2А. Давайте подробнее рассмотрим распиновку модуля L298N и объясним, как это работает.

Модуль имеет две винтовые клеммные части для двигателей A и B и еще одну винтовую клеммную колодку для заземляющего контакта, VCC для двигателя и вывод 5 В, который может быть либо входом, либо выходом. Это зависит от напряжения, используемого на двигателях VCC. Модуль имеет встроенный 5V-регулятор, который либо включен, либо отключен с помощью перемычки.

Если напряжение питания двигателя до 12 В, мы можем включить регулятор 5V, а вывод 5V можно использовать в качестве выхода, например, для питания платы Ардуино. Но если напряжение двигателя больше 12 В, мы должны отключить перемычку, поскольку эти напряжения могут повредить встроенный регулятор 5 В.

В этом случае вывод 5V будет использоваться в качестве входного сигнала, так как мы должны подключить его к источнику питания 5 В, чтобы IC работал правильно. Здесь можно отметить, что эта ИС уменьшает падение напряжения примерно на 2 В. Так, например, если мы используем источник питания 12 В, напряжение на клеммах двигателей будет составлять около 10 В, а это означает, что мы не сможем получить максимальную скорость от нашего 12-вольтового двигателя постоянного тока.

Где и как скачать драйвер

Все Arduino driver доступны на официальном сайте: https://www.arduino.cc/ . Пользователю достаточно вбить в поиск нужный для его проекта драйвер.

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

Загрузите программное обеспечение Ардуино и распакуйте все файлы в папку c:\ program . В итоге у вас будет каталог, похожий на arduino-0021.

Затем подключите плату к компьютеру с помощью USB-кабеля и подождите, пока Windows обнаружит новое устройство.

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

Выберите опцию – установить из списка или определенного местоположения (Дополнительно) и нажмите «Далее».

Теперь выберите местоположение, в котором хранятся драйверы Ардуино. Это будет в подпапке, называемой драйверами в каталоге Arduino.

Выберите «Продолжить» в любом случае.

Теперь Windows должна найти программное обеспечение для Ардуино. Нажмите «Готово», чтобы завершить установку.

Компьютер взаимодействует с платой через специальный чип последовательного порта, встроенный в плату. Программное обеспечение Ардуино IDE должно знать номер последовательного порта, который только что выделил Windows. Откройте панель управления Windows и выберите системное приложение. Перейдите на вкладку «Оборудование » и затем нажмите кнопку «Диспетчер устройств».

Нажмите опцию Ports (COM и LPT) и обратите внимание, какой COM-порт был выделен для Ардуино Board.

Затем запустите приложение Ардуино IDE, которое будет находиться в каталоге c:\program\arduino-0021 или аналогичном.

Нажмите «Сервис → Последовательный порт » и выберите номер порта сверху.

Затем нажмите Tools → Сервис и выберите тип платы, который у вас есть.

Теперь попробуйте открыть демонстрационную программу Blink из каталога примеров в среде Arduino IDE, Verify / Compile и загрузить ее на свою платформу.

В уроке рассказывается, как установить программное обеспечение для работы с системой Ардуино под Windows 7, как подключить плату к компьютеру и загрузить первую программу.

Для установки программного обеспечения и подключения контроллера Arduino UNO R3 к компьютеру необходимы:

  • плата контроллера;
  • USB кабель (обычно дается в комплекте);
  • персональный компьютер с ОС Windows, подключенный к интернету.

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

Установка интегрированной среды разработки Arduino IDE.

Прежде всего, необходимо загрузить последнюю версию программы. Загрузить ZIP архив можно с официального сайта поддержки систем Ардуино по этой ссылке . Необходимо выбрать строку с нужной операционной системой – Windows ZIP file ...

Создать папку, например Arduino, и распаковать в нее zip файл.

Подключение платы Ардуино.

С помощью USB кабеля подключите плату к компьютеру. Должен загореться светодиод (с маркировкой ON), показывающий, что на плату поступает питание.

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

Мне известны платы Arduino UNO R3 использующие в качестве моста USB-UART

  • микросхему ATmega16U2 (оригинальный вариант)
  • микросхему CH340G (китайский клон).

Процессы установки драйверов для этих вариантов отличаются.

Установка драйвера для ARDUINO UNO с преобразователем интерфейсов ATmega16U2.

После подключения платы к компьютеру Windows сама начнет процесс установки драйвера. Через некоторое время появится сообщение о неудачной попытке.

Пуск –> Панель управления –> Система –> Диспетчер устройств .

В разделе Порты (COM и LPT) должно быть устройство Arduino UNO с предупреждающим желтым значком.

Щелкаем правой кнопкой мыши по значку.

Выбираем Обновить драйвер .

Вручную указать место размещения драйвера. Файл ArduinoUNO. inf находится в каталоге Drivers папки, куда распакован архив.

В разделе Порты (COM и LPT) появляется новый, виртуальный COM. Его номер надо запомнить.

Установка драйвера для ARDUINO UNO с преобразователем интерфейсов CH340G (китайский клон).

После подключения платы к компьютеру, Windows сама начнет процесс установки драйвера.

Через некоторое время появится сообщение о неудачной попытке.

Драйвер надо устанавливать вручную. Для этого переходим Пуск –> Панель управления –> Система –> Диспетчер устройств .

Появилось новое устройство USB2.0-Serial с желтым предупреждающим значком.

Запускаем установочный файл .

Выбираем INSTALL .

Ждем сообщение об успешной установке.

В диспетчере устройств появляется новое устройство USB-SERIAL CH340.

Необходимо запомнить номер COM порта.

Запуск интегрированной среды разработки Arduino IDE.

Запускаем файл arduino.exe.

Выбираем тип платы Ардуино: Инструменты -> Плата -> Arduino UNO .

Необходимо указать номер COM порта: Инструменты -> Порт .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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