Прошивка esp8266 через arduino ide

Содержание

Подключение Arduino Nano

Подключение платы Arduino Nano к компьютеру не представляет особого труда – оно аналогично обычной плате Uno. Единственная сложность может возникнуть при работе с платой на базе чипа ATMEGA 168 – в настройках нужно выбрать сперва плату Nano, а затем нужный вариант процессора.

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

Микросхема CH340 часто используется в платах Ардуино со встроенным USB-to-Serial преобразователем. Она позволяет уменьшить затраты на производство плат, не влияя на ее работоспособность. При  помощи этого программатора можно легко прошивать платы Ардуино. Для того, чтобы начать работать с этой микросхемой, нужно установить драйвер на компьютер.

Установка выполняется в несколько этапов:

 Настройка Arduino IDE

Стандартная среда разработки Arduino IDE используется для работы всех видов Ардуино с компьютером. Чтобы начать работу, нужно сначала скачать Arduino IDE с официального сайта и установить ее. Удобнее скачивать Windows Installer, особенно если среда разработки будет установлена на постоянном рабочем компьютере. Если скачан архив, то его нужно распаковать и запустить файл Arduino.exe.

Как только среда установлена, нужно ее запустить. Для этого нужно подключить к компьютеру саму плату Ардуино через USB. Затем перейти в меню Пуск >> Панель управления >> Диспетчер устройств, найти там Порты COM и LPT. В списке появится установленная плата и указан номер порта, к которому подключается плата.

После этого нужно запустить Arduino IDE, перейти в меню Инструменты >> Порт, и указать порт, к которому присоединена Ардуино.  В меня Инструменты>> Платы нужно выбрать модель подключенной платы, в данном случае Arduino Nano. Если у вас плата Nano версии 2.0, то вам нужно также выбрать вариант процессора в соответствующем меню.

Важно помнить, что если к компьютеру будет подключаться другая плата, настройки снова нужно будет поменять на соответствующее устройство

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

Общие

  • Чипы: ATmega4809, ATSAMD11D14A
  • Пинов ввода-вывода всего: 22
  • Напряжение логических уровней: 5 В
  • Пины с АЦП: 8
  • Разрядность АЦП: 10 бит
  • Пины с ШИМ: 5
  • Разрядность ШИМ: 8 бит
  • Аппаратных интерфейсов SPI: 1
  • Аппаратных интерфейсов I²C / TWI: 1
  • Аппаратных интерфейсов UART / Serial: 1
  • Максимальный ток с пина или на пин: 20 мА
  • Максимальный выходной ток пина 5V: 1,2 A
  • Максимальный выходной ток пина 3V3: 600 мA
  • Входное напряжение через пин Vin: 7–18 В
  • Габариты платы: 45×18 мм

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

  • Чип: Microchip ATmega4809
  • Ядро: 8-битный megaAVR
  • Тактовая частота: 20 МГц (В Arduino настроен на 16 МГц)
  • Flash-память: 48 КБ
  • SRAM-память: 6 КБ
  • EEPROM-память: 256 Б

Готовим программное обеспечение

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

Как мы писали в обзорной статье про эту среду — используя программную среду Arduino IDE, можно, основываясь лишь на минимальных знаниях C++, решать самые разные творческие задачи, связанные с программированием и моделированием. Arduino IDE — это программная среда разработки, предназначенная для программирования одноимённой платы.

3.1 Скачиваем и устанавливаем ПО

Выбираем нужную версию, жмем «Just Download» и скачиваем:

После того как скачали ПО — запускам установку, открыв скачанный .EXE файл:

Дальше мы проходим все обычные шаги установки, как при установке любого другого приложения — соглашаемся с «лицензионным соглашением», ставим галочки, выбираем папку для установки и жмем ОК:

3.2 Запускам ПО и включаем русский язык

После того как мы прошли процесс установки мы увидим на рабочем столе иконку нашей Arduino IDE:

Нажимаем на иконку и видим процесс загрузки программы:

В итоге мы увидим такое окно:

Включаем русский язык.

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

File → Preferences → Language

Да, теперь, на этом шаге, у нас уже есть все комплектующие и установлено нужное программное обеспечение.

Простейшая схема программирования (и проверки работы)

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

Список комплектующих
Обозначение Описание
R2 Резистор 470 Ом, 0,25 Вт
C4 Конденсатор, керамический, 0,1 мкФ, 50 В
LED1 Светодиод, T1 3/4, желтый
нет Конвертер USB–TTL с выводом DTR

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

  1. Удалите все шесть перемычек между Arduino Uno и схемой прошивки программатора.
  2. Подключите R2 и LED1 между землей и выводом 19 микроконтроллера AT328P-PU.
  3. Подключите выводы 1, 3, 4 и 5 от USB-TTL конвертера к AT328P-PU, как показано ниже. Вывод 2 не используется.
  4. Подключите вывод 6 через конденсатор C4 (0,1 мкФ) к выводу 1 AT328P-PU. (C4 обеспечивает, чтобы сигнал DTR от преобразователя USB-TTL выдавал кратковременный сигнал сброса, а не тот сигнал, который остается на низком логическом уровне в течение длительного периода времени.)

Простейшая схема программирования AT328P-PUМакет простейшей схемы программирования AT328P-PU

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

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

Сердцем платформы является 8-битный микроконтроллер семейства megaAVR — ATmega4809 с тактовой частотой до 20 МГц. Контроллер предоставляет 48 КБ Flash-памяти для хранения прошивки, 6 КБ оперативной памяти SRAM и 256 байт энергонезависимой памяти EEPROM для хранения данных.

На плате Arduino Nano Every частота контроллера установлена на 16 МГц.

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

Микроконтроллер ATSAMD11D14A, с прошивкой USB-UART преобразователя, обеспечивает связь контроллера с USB-портом компьютера. При подключении к ПК Arduino Nano Every определяется как виртуальный COM-порт.

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

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

Понижающий регулятор 5V

Импульсный понижающий регулятор напряжения MPM3610 обеспечивает питание микроконтроллера и другой логики платформы при подключении платформы через пин . Диапазон входного напряжения от 7 до 18 вольт. Выходное напряжение 5 В с максимальным выходным током 1,2 А.

Понижающий регулятор 3V3

Линейный понижающий регулятор напряжения AP2112K-3.3 обеспечивает питание микроконтроллера . На регулятор поступает напряжение с линии . Выходное напряжение 3,3 В с максимальным выходным током 600 мА.

Кнопка RESET

Пользовательская кнопка с двумя полезными функциями:

  • Один клик (Single Сlick): служит для сброса микроконтроллера.
  • Двойной клик (Double Click): переводит микроконтролер в BOOT-режим, который пригодиться при зависании платы или дургих сбоев в программе.

Описание элементов платы Arduino Nano V3

  • USB Jack – разъем USB Mini-B для подключения устройств USB;
  • Analog Reference Pin – для определения опорного напряжения АЦП;
  • Ground – земля;
  • Digital Pins (2-13) – цифровые выводы;
  • TXD – пин передачи данных по UART;
  • RXD – пин приема данных по UART;
  • Reset Button – кнопка перезагрузки микроконтроллера;
  • ISCP (In-Circuit Serial Programmer) – контакты для перепрограммирования платы;
  • Microcontroller ATmega328P – микроконтроллер — главный элемент на плате;
  • Analog Input Pins (A0-A7) – аналоговые входы;
  • Vin – вход используется для подачи питания от внешнего источника;
  • Ground Pins – земля;
  • 5 Volt Power Pin – питание 5 В;
  • 3 Volt Power Pin – питание 3.3 В;
  • RST – вход для перезагрузки;
  • SMD Crystal – кварцевый резонатор (жарг. «кварц») — прибор, в котором пьезоэлектрический эффект и явление механического резонанса используются для построения высокодобротного резонансного элемента электронной схемы;
  • TX LED (White) – светодиод — индикатор отправления данных по UART;
  • RX LED (Red) – светодиод — индикатор приёма данных по UART;
  • Power LED (Blue) – светодиод — индикатор питания;
  • Pin 13 LED (Wellow) – подключенный светодиод к 13-му пину.

Шаг 1. Изменения в оригинальной версии

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

Изменения будут следующими:

  • Мы не будем использовать какие-либо компоненты SMD. Все элементы будут в формате сквозных отверстий.
  • Мы не нашли ни одного чипа FTDI в формате сквозного отверстия, поэтому преобразование USB в TTL не будет выполняться. Для программирования нового Arduino будет использоваться отдельная отладочная плата FTDI.
  • Оригинальный Arduino использует компаратор Mosfet, чтобы определить, подключаем ли мы плату с помощью источника питания USB или постоянного тока. Но в нашей версии мы будем вручную переключать это с помощью перемычки.
  • Традиционно используется микросхема LP2985 от Texas Instruments, чтобы получить источник питания 3,3 В на борту. Но из-за недоступности платы в формате TH мы будем использовать простой линейный регулятор. Таким образом, LM1117 должен быть очевидным выбором, но чтобы сохранить стоимость изготовления еще ниже, мы будем использовать LM317 с R1 и R2 как 240E и 390E соответственно.
  • Последнее, что нужно на плате, — это достаточное количество линий питания и два разъема для каждого порта IO ввода-вывода. Поэтому мы будем размещать ряд разъемов папа и мама вокруг платы, что поможет подключить большее количество устройств непосредственно к Arduino.

Учитывая все изменения, мы можем записать окончательный список компонентов.

Шаг 4. Создаем печатную плату

Как только схема завершена, пришло время сделать печатную плату. Мы использовали веб-сайт JLCPCB (ссылка), чтобы сделать печатную плату. Эти ребята являются одними из лучших в производстве печатных плат в последние дни.

После завершения проектирования схемы преобразуйте ее в печатную плату и спроектируйте печатную плату на веб-сайте easyEDA (ссылка). Будьте терпеливы. Ошибка на этом шаге испортит вашу печатную плату. Проверьте несколько раз перед генерацией файла gerber. Вы также можете проверить 3d модель вашей платы здесь. Нажмите на создание файла gerber и оттуда вы можете напрямую заказать эту плату через JLCPCB. Загрузите файлы gerber, выберите правильную спецификацию, ничего не меняйте в этом разделе. Оставьте как есть. Это достаточно хорошие настройки для старта. Разместите заказ. Вы получите его через 1-2 недели.

Делаем ISP программатор из Arduno Uno

После двойной проверки схемы прошивки загрузчика, прежде чем подключать ее к Arduino Uno, вы должны настроить Arduino Uno для работы в качестве программатора ISP (In-circuit Serial Programmer, внутрисхемный последовательный программатор). Подключите Arduino Uno к компьютеру и запустите Arduino IDE. Затем выполните шаги, как показано на следующих скриншотах.

  1. Укажите, что подключена обычная плата Arduino Uno. Определение платы, подключенной к компьютеру
  2. Укажите назначение платы Arduino Uno как Arduino ISP. Назначение режима работы Arduino Uno в качестве ISP программатора
  3. Откройте скетч Arduino ISP. Скетч Arduino ISP Скетч Arduino ISP
  4. Загрузите скетч Arduino ISP в Arduino Uno. Загружаем скетч Arduino ISP в Arduino Uno
  5. Когда вы увидите сообщение » done uploading » (загрузка завершена), ваша плата Arduino Uno будет готова работать в качестве ISP программатора, и будет способна понимать и отвечать на инструкции от Arduino IDE. Arduino Uno готова работать в качестве ISP программатора

Arduino Pro Mini ATmega328 3.3V/8MHz 5V/16MHz

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

Питание
Arduino Pro и Arduino Pro Mini может получать питание: через кабель FTDI, от платы-конвертора, или от регулируемого источника питания 3.3 В или 5 В (зависит от модели платформы) через вывод Vcc, или от нерегулируемого источника через вывод RAW.Выводы питания:

 Память
Микроконтроллер ATmega168 имеет: 32 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 2 кБ ОЗУ и 1 кБ EEPROM
Микроконтроллер ATmega328 имеет: 16 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 1 кБ ОЗУ и 512 байт EEPROM

Входы и Выходы
Каждый из 14 цифровых выводов Pro, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 3,3 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

Существует дополнительный вывод на платформе:

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

Простые проекты Ардуино

Давайте начнем наш обзор с традиционно самых простых, но очень важных проектов, включающих в себя минимальное количество элементов: светодиоды, резисторы и, конечно же, плату ардуино. Все примеры рассчитаны на использование Arduino Uno, но с минимальными изменениями будут работать на любой плате: от Nano и Mega до Pro, Leonardo и даже LilyPad.

Проект с мигающим светодиодом – маячок

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

Нам понадобится:

  • Плата Ардуино Uno, Nano или Mega со встроенным светодиодом, подключенным к 13 пину.
  • И все.

Что должно получиться в итоге:

Светодиод мигает – включается и выключается через равные промежутки времени (по умолчанию – 1 сек). Скорость включения и выключения можно настраивать.

Схема проекта

Схема проекта довольно проста:  нам нужен только контроллер ардуино со встроенным светодиодом, подсоединенным к пину 13. Именно этим светодиодом мы и будем мигать. Подойдут любые популярные платы: Uno, Nano, Mega и другие.

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

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

Программирование в проекте Ардуино

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

Открываем программу Arduino IDE, убеждаемся, что выбран нужный порт.

Проверка порта Ардуино – выбираем порт с максимальным номером

Затем открываем уже готовый скетч Blink – он находится в списке встроенных примеров. Откройте меню Файл, найдите подпункт с примерами, затем Basics и выберите файл Blink.

Открываем пример Blink в Ардуино IDE

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

Кнопки компиляции и загрузки скетча
Информация в Arduino IDE – Загрузка завершена

Ждем немного (внизу можно отследить процесс загрузки) – и все. Плата опять подмигнет несколькими светодиодами, а затем один из светодиодов начнет свой размеренный цикл включений и выключений. Можно вас поздравить с первым загруженным проектом!

Проект маячка со светодиодом и макетной платой

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

Графическое изображение схемы подключения доступно на следующем рисунке:

Другие идеи проектов со светодиодами:

  • Мигалка (мигаем двумя свтодиодами разных цветов)
  • Светофор
  • Светомузыка
  • Сонный маячок
  • Маячок – сигнализация
  • Азбука Морзе

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

Описание и установка прошивки Ардуино для ЧПУ

Прошивка для платы Arduino написана на языке Processing в среде разработки Arduino 1.0.2 в операционной системе Windows.

Выбор скетча для Ардуино

В зависимости от комплектации станка с ЧПУ и задач, которые он должен выполнять выбираем скетч из списка выше.
Заходим на соответвующую страницу. В кратком описании к каждому скетчу указано, для каких драйверов ШД и прочих комплектующих (шпиндель, Лазер, TTL, схема включения и т.д.) эта прошивка предназначена.
Кроме того, указано для каких целей она может использоваться. Например, для лазерной резки орнаментов и лазерной художественной гравировки используются разные скетчи, хотя оппаратная часть может использоваться одна и та же.

Сборка и загрузка прошивки для Ардуино

Копируем исходный код прошивки для управления станком с ЧПУ в окно редактирования IDE Arduino.
Теперь нажимаем кнопку Загрузить
. Дожидаемся, пока программа Ардуино проверит, откомпилирует и установит прошивку на плату Ардуино.
Попробуем проверить, работает ли прошивка. Для этого необходимо подключить двигатели и запустить Монитор порта
в программе Ардуино. Монитор порта находится в пункте Сервис
основного меню.
На форме Монитора порта вводим команду: 1000,2000,3000;

И нажимаем кнопку Послать
. Смотрим, как двигатели вращаются с разной скоростью.
Когда двигатели перестанут вращаться, прошивка Ардуино передаст T
по USB компьютеру, это отобразится в Мониторе порта. Раньше приходило сообщение OK
.

Загрузить прошивку на этот микроконтроллер можно несколькими способами:

  • Через другую плату ардуино, у которой есть встроенный USB-UART
  • С помощью специального программатора
  • Используя USBasp-программатор

Последние два способа очень похожи. Они отличаются лишь типом программатора. Поэтому в этой статье мы рассмотрим только прошивку с помощью другой Arduino и с помощью специального программатора.

Перепрошивка загрузчика Arduino в ATMEGA328P через ATMEGA16U2

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

ICSP1 MISO2.Pin.1 -> ICSP MISO.Pin.1
ICSP1 SCK2.Pin.3 -> ICSP SCK.Pin.3
ICSP1 MOSI2.Pin.4 -> ICSP MOSI.Pin.4
JP2 PB4.Pin.1 -> ICSP RESET.Pin.5

Смотрите картинку ниже для понимания:

Подключите плату Arduino к USB-кабелю. Светодиоды RX и TX должны помигать два раза. Драйверы должны быть правильно распознаны (Jungo Connectivity -> AVRISP mkII). Запустите Atmel Studio. Зайдите в: Пуск -> Все программы -> Atmel -> Atmel Studio.

Перейдите в: Инструменты -> Программирование устройства. Выберите:

Инструмент -> AVRISP mkII
Устройство -> ATmega328P
Интерфейс -> ISP

Нажмите кнопку «Применить».

Установите частоту ISP на 16,1 кГц. Нажмите кнопку «Установить».

Программатор не будет работать, если вы установите очень низкую тактовую частоту ISP. Вы получите сообщение об ошибке: «ispProgramMem: получено состояние ошибки: получено 0x81, ожидаемое 0x00 (истекло время выборки контакта RDY / nBSY)». На английском будет звучать так: «ispProgramMem: Error status received: Got 0x81, expected 0x00 (RDY/nBSY pin sampling timed out)«. Однако максимальная скорость ISP также ограничена и не может превышать 1/4 частоты устройства.

Перейдите в «Подпись устройства» (Device signature) и нажмите кнопку «Читать» (Read). Вы должны увидеть правильную «подпись устройства»: 0x1E950F. Нажмите «Memories» и найдите hex файл загрузчика Arduino. Он находится в:

C:\Program Files\ Arduino\hardware\arduinobootloaders\optiboot\optiboot_atmega328.hex

Нажмите кнопку «Program». Если вы используете совершенно новый незапрограммированный ATMEGA328P, вы также должны запрограммировать FUSES. Перейдите в Fuses и используйте следующие значения: low_fuses = 0xff; high_fuses = 0xDE; extended_fuses = 0x05.

Вы успешно прошили 328P с загрузчиком Arduino. На следующем шаге мы вернем оригинальную прошивку 16U2.

Прошивка кода загрузчика

Теперь подключите шесть проводов от схемы прошивки загрузчика к Arduino Uno точно так, как показано на схеме и фотографии, приведенной выше в разделе «Сборка схемы прошивки загрузчика». После двойной проверки всех соединений вы готовы записать следующий код загрузчика в AT328P-PU в схеме прошивки загрузчика.

  1. Выберите «Burn Bootloader» (прошить загрузчик) как действие для Arduino Uno; процесс должен начаться сразу после того, как вы кликните «Burn Bootloader«.

    Прошивка загрузчика в AT328P-PU

  2. Когда вы увидите сообщение «Done burning bootloader» (прошивка загрузчика завершена), процесс будет выполнен, и AT328P-PU сможет понимать и отвечать на инструкции от Arduino IDE.
    Загрузчик загружен в AT328P-PU

Чипы CH340g, FTDI FT232, ATMEGA 16U2 / 8U2

Зачем нужен USB / UART TTL преобразователь

Когда вы подключаете Ардуино к компьютеру или любому другому устройству по USB, вы связываете между собой сразу два мира: микропроцессорный, сосредоточенный на плате Arduino и мир внешних устройств. Подходы к организации взаимодействия между элементами в этих мирах сильно отличаются. Для работы внутри платы используется особый протокол со своими правилами взаимодействия – UART. И для того, чтобы “внутреннюю” линию соединить с “внешней” нужен определенный преобразователь-посредник, который будет хорошо понимать физические сигналы, используемые как для USB, так и для платы контроллера. Вот этим посредником и являются чипы USB- UART (иногда их еще обозначают называют USB-TTL, хотя это не совсем корректно) преобразователей, самыми популярными из которых являются микросхемы FTDI, CH340G,  ATMEGA U16.

USB преобразователи в Ардуино

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

Исторически наиболее популярным вариантом чипов USB/UART конвертера была линейка микросхем от шотландского производителя  FTDI. Главным ее недостатком была стоимость и весьма странная политика в области контроля контрафакта, зачастую приводящая к тому, что легальные купленные устройства блокировались драйверами компании. Сегодня существенную конкуренцию FTDI составляют микросхемы семейства CH340, массово производимые многочисленными китайскими производителями. Они гораздо дешевле и достаточно надежны и это постепенно привело к тому, что в большинстве недорогих контроллеров Arduino и адаптеров установлены именно чипы CH340 (CH340g).

Наверное, единственной, но очень важной проблемой при использовании CH340g взамен FTDI является необходимость в некоторых случаях установки USB драйвера. “Респектабельная” FTDI давно уже тесно интегрирована в Windows и при подключении устройства с FTDI-преобразователем никаких драйвером устанавливать не нужно – они уже есть в системе

Для подключения CH340g иногда нужно скачать драйвер и установить его – только после этого система увидит наше устройство.

Процедура установки драйвера для CH340g на самом деле очень проста и почти всегда проходит без ошибок на самых популярных операционных системах Windows7, Windows10. Именно поэтому никаких проблем с использованием недорогих ардуино плат, несущих на себе чип CH340, почти никогда не возникает.

Остается только вопрос – а зачем вообще нужен какой-то USB драйвер для подключения ардуино  к компьютеру? Давайте разберемся.

USB драйвер для ардуино

Мы не будем уходить в теоретические дебри, разбирая многочисленные коммуникационные протоколы, поддерживаемые современными компьютерными системами. Главное, что нужно понимать: когда мы присоединяем какое-то устройство к компьютеру, оно может передавать или получать данные только если его “поймут” с другой стороны. На стороне компьютера таким переводчиком является специальная программа, называемая драйвером. Драйвер USB работает в режиме эмуляции последовательного, COM-порта. Это означает, что при подключении операционная система создает виртуальные, программные COM-порты, с которыми и работает драйвер. В Windows их можно посмотреть в диспетчере устройств.

Если мы подключаем Ардуино к компьютеру, то чип с помощью драйвера попросит систему открыть порт и начнет взаимодействие . И для чипов разных  производителей потребуются разные драйвера. Проблемы возникают, когда драйвера нет. Система пытается найти его для подключенного устройства, не находит и мы никогда не  увидим его в списке устройств. Для решения проблемы надо найти и скачать соответствующие драйвера, а затем установить их на компьютер. Ниже мы рассмотрим, как это делается на примере USB драйвера CH340.

Шаг 5. Пайка компонентов

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

Одна вещь, которую стоит пояснить, заключается в том, что значения конденсаторов не обязательно должны быть идеальными. Нечто близкое к тем величинам, что мы обсуждали выше, вполне будет работать. То же самое касается резисторов. Но сохраните значения R1 и R2 LM317.

Одна вещь, которую вы можете найти странной, что у arduino, который мы сделали, есть две кнопки сброса. На самом деле, когда разрабатывали макет, использовали четырехконтактную кнопку для справки. Но во время пайки стало понятно, что у нас её нет. Поэтому мы припаяли 2 двухполюсных переключателя сброса на место. Там нет ничего особенного.

Описание пинов/Распиновка Arduino Nano

Каждый из 14 цифровых выводов Nano, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

  • Последовательная шина: 0 (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины FTDI USB-to-TTL.
  • Внешнее прерывание: 2 и 3. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachInterrupt().
  • ШИМ: 3, 5, 6, 9, 10, и 11. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, которая, хотя и поддерживается аппаратной частью, не включена в язык Arduino.
  • LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.

На платформе Nano установлены 8 аналоговых входов, каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел посредством функции analogReference(). Некоторые выводы имеют дополнительные функции:

I2C: A4 (SDA) и A5 (SCL). Посредством выводов осуществляется связь I2C (TWI). Для создания используется библиотека Wire.

Дополнительная пара выводов платформы:

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

Заключение

В этой статье мы рассмотрели различные аспекты загрузки скетчей в Arduino Uno и Nano. Прошивка плат на базе микроконтроллеров ATmega328 и ATmega256, как правило, не сложна и может выполняться одним нажатием кнопки в Arduino IDE. За эту простоту мы должны благодарить встроенную программу-загрузчик, выполняющую за нас все основные действия на низком уровне.

Еще одним вариантом перепрошивки контроллера является использование другой платы адуино или специальных программаторов, использующих микросхемы CP2102 CH340, FTDI и другие. Этот метод требует дополнительных усилий и затрат, но позволяет гибко изменять параметры прошивки. Какой из двух вариантов выбрать – решать вам. Для новичков, безусловно, первым шагом станет использование Arduino IDE, благо, ее создатели сделали все, чтобы упростить этот процесс.

Настоящая Arduino Uno – это отличная платформа для разработки множества развлекательных и полезных схем на микроконтроллерах, но использование полноценной платы Uno в каждом проекте может быть слишком дорого. Воспользовавшись инструкциями в этой статье, вы сможете уменьшить стоимость блока управления в проекте на 50 и более процентов.