Прошивка нано с помощью уно. Работа с микроконтроллерами: прошивка с помощью Arduino и Arduino IDE

Например если ардуина далеко, а прошивать неудобно ходить, можно прицепить Ethernet модуль на чипе WIZnet W5100

1. Берем какую нибудь простую ардуино и прошиваем ее скитчем arduino isp из примеров

2. подключаем так

Плата, которая прошивает

Плата, которую прошивают

SS ->
mosi ->
miso ->
sck ->

reset
51
50
52

Например у меня Nano Прошиваем Mega 2560

3. в arduino ide жмем файл – настройки, указываем там в дополнительных ссылках для менеджера плат это: https://per1234.github.io/Ariadne-Bootloader/package_codebendercc_ariadne-bootloader_index.json

4. в arduino ide жмем инструменты – платы – менеджер плат – жмем внизу Ariadne Bootloader — Установка

5. жмем инструменты – плата – и в разделе Ariadne Bootloader выбираем нужную плату (которую собираемся прошивать. У меня это mega 2560)

6. выбираем инструменты – программатор – arduino as isp

7. проверям все еще раз – должно быть так:

8. инструменты – записать загрузчик (пару раз если ошибки появляются)

9. отключаем программатор, втыкаем сетевую плату. по умолчанию ip 192.168.1.128. чтобы сменить надо прошить один раз скетч neteeprom – writeNetworkSettings, предварительно прописав там нужные IP

10. после этого надо попробовать прошить через сеть – для этого тоже надо сделать несколько странных действий. включаем в Arduino IDE через файл – настройки подробный вывод:

11. открываем нужный скетч например Blink из примеров:

12. жмем компилировать – и ищем куда ардуино сваливает временные файлы при компиляции. у меня это тут

13. открываем командную строку в этой папке и выполняем:

«C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-objcopy.exe» -I ihex Blink.ino.hex -O binary Blink.ino.bin

14. затем жмем ресет и через пару секунд выполняем там же tftp -i 192.168.1.128 PUT Blink.ino.bin

15. жать ресет каждый раз неудобно и для этого нам понадобиться скетч файл – примеры – ethernetreset – resetserver. это специальный маленький вебсервера на порту 8080, который при получении запроса перезагрузит ардуино http://192.168.1.128:8080/password/reset :

Для автоматизации я накатал батник – просто закинь его в папку своего скетча и перетаскивай на него файл.ino – он загрузит его к тебе. сначала только подредактируй – укажи свой сервер и пароль:

@echo off set ip=192.168.1.128 set passwd=parol mkdir "%~dp0build" del build /F /S /Q set home=%HOMEDRIVE%%HOMEPATH% set targetfn=%~n1%~x1 "C:\Program Files (x86)\Arduino\arduino-builder.exe" -compile -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -hardware "%home%\AppData\Local\Arduino15\packages" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "%home%\AppData\Local\Arduino15\packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "%home%\Documents\Arduino\libraries" -fqbn=Ariadne-Bootloader:avr:ariadne2560:configuration=blink_shield -ide-version=10610 -build-path "%~dp0build" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "%targetfn%" "C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-objcopy.exe" -I ihex build/%targetfn%.hex -O binary build/%targetfn%.bin powershell -Command "Invoke-WebRequest http://%ip%:8080/%passwd%/reset rem 6 sec delay PING 127.0.0.1 -n 6 >NUL 2>&1 || PING::1 -n 6 >NUL 2>&1 tftp -i %ip% PUT build/%targetfn%.bin pause

@ echo off

set ip = 192.168.1.128

set passwd = parol

mkdir "%~dp0build"

del build / F / S / Q

set home = % HOMEDRIVE % % HOMEPATH %

set targetfn = % ~ n1 % ~ x1

"C:\Program Files (x86)\Arduino\arduino-builder.exe" - compile - logger = machine - hardware "C:\Program Files (x86)\Arduino\hardware" - hardware - tools "C:\Program Files (x86)\Arduino\tools-builder" - tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" - tools "%home%\AppData\Local\Arduino15\packages" - built - in - libraries "C:\Program Files (x86)\Arduino\libraries" - libraries "%home%\Documents\Arduino\libraries" - fqbn = Ariadne - Bootloader : avr : ariadne2560 : configuration = blink_shield - ide - version = 10610 - build - path "%~dp0build" - warnings = none - prefs = build . warn_data_percentage = 75 - verbose "%targetfn%"

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

1. Качаем и устанавливаем Arduino IDE* .

При установке Arduio IDE должны автоматически установиться драйвера, то есть при появлении окошка «согласиться ли на установку драйверов » нажать да.
* Это программа для написания скетчей и прошивки Arduino

2. Для китайской Arduino NANO скачать и установить драйвер CH341*, ссылка ниже, см.скриншот.


* На китайских НАНАХ стоят USB контроллеры CH340/CH341, для правильной работы нужен специальный драйвер. Это единственное отличие китайских Ардуин от оригинальных.

    При установке Arduio IDE должны автоматически поставиться драйвера.
    Если этого не произошло, установить драйвера Arduino из папки с Arduino IDE (C:\\Program files…), см. второй скриншот.

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

Настраиваем Arduino IDE

Запустить Arduino IDE, выбрать плату (Инструменты\плата\»ваша плата»). См. первый скриншот.

Выбрать порт: инструменты\порт\«COM отличный от COM1, например COM3, COM5…» См. второй скриншот. Какой именно порт вы могли видеть при первом подключении Ардуино к компьютеру.
Примечание: если у вас только СОМ1 - значит либо не встали драйвера, либо сдохла плата.

Как пример - библиотека для дисплея на чипе TM1637, смотрите скриншот

В папке libraries должна появиться папка TM1637, в которой есть папка examples, и два файла с расширениями.h и.cpp . Эти два файла должны быть в каждой библиотеке.

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

Основные ошибки при прошивке Arduino (FAQ)

Ошибка компиляции

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

    В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием .

    В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки.

    В скачанных с интернета готовых скетчах часто возникает ошибка с описанием «название файла» no such file or directory . Это означает, что в скетче используется библиотека «название файла», и нужно положить её в Program Files/Arduino/libraries . Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки можно поискать в гугле по «название файла».

    При использовании каких-то особых методов и функций ошибкой может стать неправильно выбранная плата в «Инструменты/плата «.

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

Ошибка загрузки

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

    USB кабель, которым подключается Arduino, должен быть Data кабелем . Существуют кабели, предназначенные только для зарядки , у них внутри 2 провода. Data кабель имеет 4 провода, два из которых нужны для передачи данных.

    Причиной ошибки загрузки являются неустановленные/криво установленные драйвера CH340 , если у вас китайская NANO.

    Также будет ошибка, если не выбран COM порт , к которому подключена Arduino. Если кроме COM1 других портов нет - читай два пункта над этим, либо попробуй другой USB порт , или вообще другой компьютер .

    Большинство проблем при загрузке, вызванных «зависанием» ардуины или загрузчика, лечатся полным отключением ардуины от питания . Потом вставляется USB и прошиваем.

    Если в описании ошибки встречается слово averdude или bootloader is not responding - с вероятностью 95% сдох загрузчик, например при случайном коротком замыкании провода на плату. Оставшиеся 5% - загрузчик «слетел», и его можно прошить заново программатором или другой Ардуиной. Подробнее об этом можно почитать в гугле по «как перепрошить загрузчик на Ардуино «.

Загрузка скетча или прошивка контроллера Ардуино – основная операция, с которой рано или поздно сталкивается любой ардуинщик. Именно возможность быстро и без лишних проблем загрузить в память контроллера управляющую программу и стала одной из основных причин успеха платформы Arduino. В этой статье мы узнаем, как прошиваются Arduino Uno, Nano, Mega и другие платы на основе Atmega с использованием Arduino IDE, программатора или другой платы Ардуино.

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

Что происходит, когда мы жмем кнопку «Загрузить»

Плата Ардуино – это микроконтроллер AVR (Atmega8/168/328 или Atmega1280/2560), который прошивается загрузчиком. В микроконтроллер записывается программа, называемая прошивкой, которая позволяет получать сигналы с датчиков, обрабатывать нажатия кнопок, общаться с различными устройствами через интерфейсы, управлять исполнительными процессами.

Обычно прошивка записывается в кристалл микроконтроллера при помощи специальных устройств, называемых программаторами. Для разных микроконтроллеров существуют различные программаторы – от специализированных до универсальных. Важным отличием Ардуино от других контроллеров является возможность залить прошивку через обычный USB кабель. Это достигается при помощи специальной программы – загрузчика (Bootloader). Для прошивки не требуются лишние провода, не нужно подключать дополнительные устройства или нажимать что-то на плате. Также при работе через загрузчик нельзя добраться до опасных настроек, которые выведут из строя Ардуино.

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

Вызов setup и loop при загрузке

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

Команда void setup() – в ней записываются данные, которые микроконтроллер выполняет в момент загрузки, а после может про них забыть. В этой функции указываются номера пинов, к которым подключается устройство, подключаются и инициализируются библиотеки, устанавливается скорость работы с последовательным портом.

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

В Ардуино IDE компиляция скетча начинается при нажатии кнопки Verify, после этого скетч может быть загружен в память Ардуино через USB с помощью кнопки Upload. Перед загрузкой кода программы нужно установить все параметры в меню Tools. В этом меню выбираются порт, к которому подключена плата, и платформу. В окне Arduino IDE внизу будет отображен ход компиляции скетча. При успешной выгрузке скетча будет получено сообщение «Done uploading». Запуск скетча начинается сразу после окончания загрузки. Для расширения возможностей можно подключать дополнительные внешние библиотеки, разработанные командой Ардуино или сторонними авторами.

Обзор возможных вариантов загрузки скетча

Кратко весь алгоритм можно записать следующим образом: Написание кода >> компиляция >> загрузка в микроконтроллер. При загрузке скетча используется Bootloader (Загрузчик). Он представляет собой небольшую программу, которая загружается в микроконтроллер на Ардуино. С помощью этой программы можно загружать скетч, не используя дополнительные аппаратные средства. При работе загрузчика на плате будет мигать светодиод.

  1. Ускоренная загрузка скетча в Arduino IDE. С помощью этого метода можно увеличить скорость загрузки в микроконтроллер в два раза. Для этого нужно лишь зайти в Настройки и снять галочку с пункта Проверка кода. Пропуская шаг проверки, будет уменьшено количество байтов, которые передаются во время загрузки. При этом все равно некоторые из видов проверок будут осуществлены, но они не занимают долгого времени. Отключать проверку кода не рекомендуется, если Ардуино помещается в какой-либо ответственный проект (например, в спутник). Также можно провести проверку, если подключение производится через очень длинный USB кабель (порядка 10 метров).

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

  1. Загрузка скетча в Ардуино через Bluetooth. Этот способ используется, когда нужно обойтись без физического соединения Ардуино и компьютера – например, в силовых цепях или радиочастотных цепях. Для реализации загрузки потребуется Bluetooth-модуль, который оснащен платой-адаптером для Ардуино. Этот модуль нужно подключить к компьютеру через переходник USB-UART-TTL. Работа с модулем осуществляется с помощью AT-команд.
  2. Загрузка при помощи Андроид-устройства. Для осуществления такого типа загрузки кода понадобятся провода USB-A – USB-B и USB-Host (OTG-кабель), Ардуино и устройство на базе Андроид с поддержкой режима host. На Андроид-устройство нужно установить программу ArduinoDroid или ArduinoCommander из Google Play. Все устройства нужно соединить при помощи кабелей, после этого можно включать Ардуино и загружать на него код. Нужно запустить установленную программу. При включении начнется обновление IDE, на что понадобится некоторое время.

Сначала работа будет рассмотрена на примере программы ArduinoCommander. После ее запуска нужно нажать USB-Device. Затем нужно наддать Autodetect, чтобы Андроид-устройство выполнило поиск Ардуино и отобразило его на экране. Как только Ардуино появится на экране, нужно на него нажать. Чтобы перейти в меню, нужно щелкнуть в нижнем правом углу. В этом меню можно загрузить скетч с SD-карты.

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

  1. Программирование при помощи Raspberry Pi. Можно загружать скетчи двумя способами – при помощи Arduino IDE и при помощи пакета arduino-mk. Пакет позволяет собирать и загружать скетчи Ардуино из командной строки.

Структура памяти Ардуино, где располагается скетч и данные

На микроконтроллере Ардуино имеется 3 вида памяти – флеш-память, которая используется для хранения скетчей, ОЗУ для хранения переменных и EEPROM для хранения постоянной информации. Из этих типов памяти флеш-память и EEPROM являются энергонезависимыми, то есть информация сохраняется при выключении питания. ОЗУ используется только для хранения данных, которые имеют отношение к исполняемой программе.

Микроконтроллер ATmega168, который используется на части плат Ардуино, имеет 16 Кб флеш-памяти, 1024 байта для ОЗУ и 512 байт EEPROM. Важно обратить внимание на малый объем ОЗУ. Большие программы могут полностью ее израсходовать, что приведет к сбою в программе. По этой причине нужно следить за тем, сколько строк занимает программа, и по возможности удалять лишнее. Уменьшить объем кода можно несколькими способами:

  • Можно отправить часть информации на компьютер.
  • Для таблиц и других крупных массивов использовать минимальный тип данных для хранения.
  • Данные, которые остаются неизменными, можно объявить константами при помощи слова const перед объявлением переменной.
  • Меньше использовать рекурсию. При ее вызове в памяти, называемой стеком, выделяется фрагмент, в котором хранятся различные данные. Если часто вызывать рекурсию, стеки будут занимать большой объем памяти и могут израсходовать ее.
  • Неизменяемые строки можно сохранять во флеш-памяти во время работы программы. Для этого используется функция PROGMEM.

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

Для измерения объема занимаемой памяти ОЗУ используется скетч из библиотеки MemoryFree. В ней имеется специальная функция free­Memory, которая возвращает объем доступной памяти. Также эта библиотека широко используется для диагностики проблем, которые связаны с нехваткой памяти.

Оптимизация флеш-памяти. Как только будет окончена процедура компиляции, в окне появится информация о занимаемой памяти кодом. Если скетч занимает большую часть памяти, нужно произвести оптимизацию использования флеш-памяти:

  • Использование констант. Аналогично как и для ОЗУ задавать неизменяющиеся значения константами.
  • Удалить ненужные Serial.println. Эта команда используется, когда нужно увидеть значения переменных в разных местах программы, нередко эта информация просто не нужна. При этом команды занимают место в памяти, поэтому, убедившись в корректной работе программы, некоторые строки можно удалить.
  • Отказ от загрузчика – можно программировать микроконтроллер через контакты ICSP на плате с использованием аппаратных программаторов.

Флеш память является безопасным и удобным способом хранения данных, но некоторые факторы ограничивают ее использование. Для флеш-памяти характерна запись данных блоками по 64 байта. Также флеш-память гарантирует сохранность информации для 100000циклов записи, после чего информация искажается. Во флеш-памяти имеется загрузчик, который нельзя удалять или искажать. Это может привести к разрушению самой платы.

EEPROM память используется для хранения всех данных, которые потребуются после отключения питания. Для записи информации в EEPROM нужно использовать специальную библиотеку EEPROM.h, которая входит в число стандартных библиотек в Arduino IDE. Чтение и запись информации в EEPROM происходит медленно, порядка 3 мс. Также гарантируется надежность хранения данных для 100000 циклов записи, потому лучше не выполнять запись в цикле.

Варианты прошивки Ардуино

Прошивка с помощью Arduino IDE

Прошить плату при помощи среды разработки Arduino IDE можно в несколько шагов. В первую очередь нужно скачать и установить саму программу Arduino IDE. Также дополнительно нужно скачать и установить драйвер CH341. Плату Ардуино нужно подключить к компьютеру и подождать несколько минут, пока Windows ее опознает и запомнит.

После этого нужно загрузить программу Arduino IDE и выбрать нужную плату: Инструменты – Плата. Также нужно выбрать порт, к которому она подключена: Инструменты – Порт. Готовая прошивка открывается двойным кликом, чтобы ее загрузить на плату, нужно нажать кнопку «Загрузить» вверху панели инструментов.

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

Прошивка с помощью программатора

Одни из самых простых способов прошивки платы – при помощи программатора. Заливка будет производиться в несколько этапов.

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

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

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

Последний шаг – нажать на «записать загрузчик» в меню Сервис.

После этого начнется загрузка. Завершение произойдет примерно через 10 секунд.

Прошивка Arduino через Arduino

Для того чтобы прошить одну плату с помощью другой, нужно взять 2 Ардуино, провода и USB. В первую очередь нужно настроить плату, которая будет выступать в качестве программатора. Ее нужно подключить к компьютеру, открыть среду разработки Arduino IDE и найти в примерах специальный скетч ArduinoISP. Нужно выбрать этот пример и прошить плату.

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

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

Заключение

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

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

После приобретения платы Ардуино Про Мини некоторые пользователи сталкиваются с проблемой прошивки, так как, чтобы прошить эту плату , необходимо купить ещё специальный программатор. В связи с этим, вы заинтересуетесь, как можно прошить плату без программатора? К счастью, сделать это достаточно просто. В этой статье подробно рассмотрим, как прошить или перепрошить Arduino Pro Mini. Давайте разбираться. Поехали!

Для перепрошивки вам понадобится Ардуино Uno. Первым делом нужно соединить GND с землёй, UCC - с плюсом, RXI и NX0 с такими же входами на Uno, а GRN - с reset. Лучше всего будет подать трёхвольтное напряжение. При подаче питания на плате загорится красный индикатор. Не забудьте предварительно достать из Uno контроллер ATMEGA.

Теперь необходимо подключить плату к компьютеру. Затем запустите на своём ПК Sketch. Находясь в главном окне утилиты, откройте меню «Файл» и нажмите на пункт «Примеры», далее наведите курсор на раздел «Basics» и в появившемся списке нажмите «Blink». После этого перейдите к верхней панели и откройте меню «Сервис». Выберите в нём пункт «Плата». В списке плат необходимо будет отметить строку «Arduino Pro Mini (5V, 16MHz) w/ATmega328» вместо той, что отмечена по умолчанию. Также не забудьте указать в настройках необходимый com-порт.

Затем нажмите кнопку «Загрузить» в программе. Как только в нижней строке появится слово «загрузка», нажмите на плате «reset». На экране вы увидите сообщение о том, что загрузка завершена. Готово. Перепрошивка успешно выполнена.

Теперь рассмотрим, как сделать то же самое, только через Nano. Откройте Sketch и перейдите в меню «Файл», выберите раздел «Образцы». В появившемся списке кликните по «ArduinoISP». Затем нужно зайти в «Инструменты», выбрать пункт «Плата» и отметить «Arduino Nano».

Выполните прошивку Nano с помощью скетча ArduinoISP. Проверьте скорость порта в функции setup. Именно такой будет скорость во время прошивки Pro Mini. В стандартном Sketch скорость равна 19200.

Подготовив Nano, приступайте к сборке breadboard, чтобы перепрошить Про Мини. Подключите +5V к Vcc, GND соедините с таким же входом, D10 с RST, а D11, D12 и D13 с аналогичными входами на Pro Mini.

Теперь необходимо подключить Nano к ПК. Прежде чем приступить к перепрошивке, убедитесь, что у вас используются равные скорости порта, ориентируясь на скорость из Sketch. Отыщите текстовый файл «boards» в папке «arduino». Открыв его, найдите строку:

pro5v328.name=Arduino Pro Mini (5V, 16 MHz) w/ ATmega328

Если вы используете другую версию , выберите соответствующую. Проверьте заданную скорость. Также следует проверить настройки в текстовом файле «programmers».

Вы когда-нибудь думали о том, что дешевый китайский клон Ардуино действительно может работать?
Вы платите всего пару долларов, и получаете такой же продукт. Звучит слишком хорошо, чтобы быть правдой, не так ли?

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

Я использую Arduino Uno для этого примера, но для других моделей процесс тот же самый.
Здесь у нас оригинальный Ардуино Уно и его китайская копия (Магазин на , ).

Давайте проведем тесты.

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

Проблема в том, что китайский клон не использует стандартный Serial to USB чип, хотя чип называется CH340. Ваш компьютер не распознает эти CH340 чипы, если вы их подключите.
Исправить это просто.

Скачайте софт от китайского производителя и установите себе на компьютер. Этот софт будет работать на всех версиях Windows.
Windows: http://www.wch.cn/download/CH341SER_EXE.html

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

Но в некоторых случаях китайская плата все еще может не работать. Это потому, что bootloader не был установлен на контроллер Atmel.
Чтобы решить эту проблему, нам нужен работающий Ардуино и клон Ардуино, который мы хотим прошить.

Сначала мы подключаем работающий Ардуино к компьютеру и открываем софт Ардуино.
Мы идем File -> Examples и выбираем ArduinoISP. Загружаем это на плату. После загрузки отсоедините Ардуино.

Теперь клон Ардуино мы подсоединяем проводами к работающему Ардуино по этой схеме:

  • Разъем 10 подключается к Reset,
  • Разъем 11 подключается к разъему 11,
  • Разъем 12 – к 12,
  • Разъем 13 – к 13,
  • 5 Вольт – к 5 Вольт,
  • Земля – к Земле.

Следующий шаг – подключаем работающий Ардуино к компьютеру.

  1. Идем Tools -> Board и выбираем китайскую плату, которая не работает. В моем случае это Ардуино Уно.
  2. Теперь снова идем в Tools -> Programmer и выбираем “Arduino as ISP”
  3. Еще раз идем в Tools и выбираем “Burn Bootloader”.
  4. Снова Tools -> Programmer и устанавливаем “ArduinoISP”.

Ваша китайская копия теперь должна работать нормально.

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

Надеюсь, статья была полезна. Оставляйте комментарии.