Как загрузить прошивку в arduino nano подробная инструкция

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

  • Начало работы
  • Работа с Arduino IDE
  • Первая прошивка, ошибки, FAQ
  • Питание платы

Arduino  IDE


Arduino IDE – программа для написания и загрузки прошивки в плату, скачать можно с официального сайта вот здесь. Внимание! Перевод языка страницы в браузере ломает кнопки! На данный момент называется Legacy IDE (1.8.X), так как вышла новая IDE v2. Новичкам рекомендуется начать с версии 1.8.X.

Перед загрузкой вам предложат пожертвовать на развитие проекта, можно отказаться и нажать JUST DOWNLOAD (только скачать). Либо открываем прямую ссылку на загрузку версии 1.8.19 и сразу качаем файл.

Для работы рекомендуется компьютер с Winodws 7 или выше, либо Linux/MacOS

  • Если у вас Windows XP, придётся установить версию 1.6.13, более свежие версии будут очень сильно тормозить или не будут работать вообще. Есть ещё одна проблема: некоторые библиотеки не будут работать на старых версиях Arduino IDE, также не будет работать поддержка плат семейства esp8266, поэтому крайне рекомендуется обновить свой компьютер до Windows 7 или выше
  • Установка на Linux из системного репозитория – читать тут
  • Установка на MacOS – читать тут

Arduino Windows app

Не рекомендуется устанавливать Arduino Windows app из магазина приложений Windows, так как с ней бывают проблемы

Другие версии

Не устанавливайте старые версии IDE, если нет на то весомых причин, а также beta и hourly-билды

Java


Для старых версий Arduino IDE, а также для некоторых других программ, понадобится пакет Java JRE. Скачать можно с официального сайта для своей операционной системы.

Установка


Arduino IDE устанавливается как обычная программа, запускам и жмём далее далее далее…

Драйвер


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

Обновление


Перед установкой новой версии нужно удалить старую. Ни в коем случае не удаляйте папку установленной IDE из Program Files, удалять нужно через “Установка и удаление программ“, либо запустив файл uninstall.exe из папки с установленной программой. Иначе установщик откажется устанавливать новую программу, так как в системе остались следы от старой. Решение этой проблемы описано в видео ниже. Вкратце о том, как удалить IDE вручную:

Удаление остатков IDE

Удаляем папки:

  • Папка с программой
    • C:\Program Files (x86)\Arduino\ (64-битная версия Windows)
    • C:\Program Files\Arduino\ (32-битная версия Windows)
  • Папка со скетчами и библиотеками
    • Документы\Arduino\
  • Папка с настройками и дополнительными “ядрами” плат
    • C:\Пользователи (или Users)\Ваш_пользователь\AppData\Local\Arduino15\

Удаляем следы из реестра:

  • Открыть редактор системного реестра:
    • Windows 10: Пуск/regedit
    • Предыдущие: Пуск/Выполнить/regedit
    • Инструкция для всех Windows
  • В открывшемся окне: Правка/Найти…
    • В окне поиска пишем arduino\uninstall
    • Поиск
  • Удаляем найденный параметр (см. скриншот ниже)
  • На всякий случай Правка/Найти далее
  • Удаляем и так далее, пока не удалим все найденные параметры с arduino\uninstall
  • После этого можно запускать установщик и устанавливать новую программу

Другие проблемы


  • Если перестала запускаться Arduino IDE – удаляем файлик preferences.txt из C:\Пользователи (или Users)\Ваш_пользователь\AppData\Local\Arduino15\

Портативная версия


Вместо полной установки программы можно скачать архив с уже “установленной”, на странице загрузки он называется Windows ZIP file. Вот прямая ссылка на 1.8.19. Распаковав архив, получим портативную версию Arduino IDE, которую можно скинуть на флешку и использовать на любом компьютере без установки программы. Но понадобится установить драйвер CH341 для китайских плат, а также драйверы из папки с программой Arduino IDE (подробнее в следующем уроке). Возможно понадобится установить Java.

Работа на смартфоне


Писать и загружать прошивку через смартфон тоже можно, понадобится смартфон на Android и приложение ArduinoDroid. Также для тренировки и удобного редактирования скетчей можно использовать CppDroid, но загружать в плату она не умеет.

Первое подключение

Осмотр платы


Перед подключением к компьютеру рекомендуется провести визуальный осмотр платы на предмет дефектов пайки компонентов. Что можно встретить (в порядке фотографий):

  • Замкнутые пины (вроде бы паяются китайцами вручную)
  • Неприпаянная нога компонента
  • «Торчащие» вверх или под углом компоненты типа резисторов и конденсаторов, припаянные только с одной стороны
  • Компоненты со смещением
  • «Сопля» между ногами компонента

Плату с обнаруженным дефектом не рекомендуется подключать к компьютеру! Всё можно исправить паяльником, если не умеете сами — попросите того, кто умеет.

Реакция на подключение питания


Как понять, что плата работает корректно? На примере Nano/Uno:

  • При подключении USB загорается и горит светодиод PWR
  • Если плата новая и на ней прошит загрузчик (он обязан быть прошит) — однократно мигает светодиод L
  • Примечание: светодиоды могут быть любого цвета
  • На новой плате прошито «мигание светодиодом», поэтому светодиод L продолжит мигать один или два раза в секунду в зависимости от версии загрузчика
  • При нажатии на кнопку сброса (RESET, единственная кнопка на плате) должен однократно мигнуть светодиод L, сигнализируя о завершении работы загрузчика.

Если ваша плата ведёт себя иначе — скорее всего это заводской брак, если плата новая, или кривые руки — если плата уже паялась и или куда то подключалась =)

Драйвер USB контроллера

CH341


В своих проектах я использую «Ардуино-совместимые» китайские платы, у которой для подключения по USB используется контроллер CH340/CH341. Чтобы он распознавался компьютером, нужно установить драйвер.

Windows

Скачать драйвер CH341 можно по ссылкам:

  • Официальный сайт
  • FTP моего сайта
  • Яндекс.Диск

Некоторые платы могут плохо работать с актуальной версией драйвера на Windows 11, помогает установить версию от 2022г (удалив новую):

  • FTP моего сайта
  • Яндекс.Диск
  • Сайт OEM Drivers

Запускаем и в появившемся окошке нажимаем INSTALL. Готово!

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

  • C/Program Files/Arduino/drivers (для 32-х разрядной системы)
  • C/Program Files (x86)/Arduino/drivers (для 64-х разрядной системы).

Запустить файл

  • dpinst-x86.exe (для 32-х разрядной системы)
  • dpinst-amd64.exe (для 64-х разрядной системы)

Mac OS

  • Актуальная информация: при скачивании с официального сайта в архиве можно найти инструкцию по установке
  • Статья со ссылкой на драйвер и инструкциями
  • Драйвер CH341 для Mac можно скачать по ссылке с моего сайта, либо со страницы источника. Если у вас будут какие-то проблемы с OSX Sierra и выше, читайте вот эту статью
  • Рекомендация от подписчика — устанавливать версию драйвера v1.4 вот отсюда

Linux Mint

  • Актуальная информация: при скачивании с официального сайта в архиве можно найти инструкцию по установке
  • Статья со ссылкой на драйвер и инструкциями

В Linux уже встроен необходимый драйвер, но Arduino IDE может отказаться с ним работать: Linux определяет ардуинку как устройство ttyUSB*, обычно это ttyUSB0 (это можно узнать командой dmesg в терминале), то есть в системе появляется интерфейс /dev/ttyUSB0. Чтобы с ним работать, нужны права доступа. Читать и писать на устройство /dev/ttyUSB0 имеет пользователь root и пользователи группы dialout. Работы с правами суперпользователя лучше избегать, поэтому следует занести своего пользователя в группу dialout. Это можно сделать следующей командой (обратите внимание, команда whoami в обратных кавычках)

sudo usermod -a -G dialout `whoami`

После этого нужно перелогиниться. Дальше запускаем Arduino IDE и в меню «Инструменты/Порт» ставим галочку напротив /dev/ttyUSB0.

Linux Arch

Вся информация по работе с IDE на данной ОСи есть вот в этой статье

FT232


На оригинальных Arduino Nano стоит USB контроллер производства FTDI — FT232, драйвер для всех версий ОС можно скачать с официального сайта (прямая ссылка на инсталлятор для Windows). Некоторые очень редкие китайцы паяют на свои Наны поддельные FTDI контроллеры, которые буквально выходят из строя после некоторых обновлений Windows. Если вам достался такой экземпляр (я никогда не даю ссылки на такие поделки) — подробности по ситуации читайте здесь. Как восстановить контроллер и сделать рабочий драйвер — читайте здесь.

CP2102


На некоторые Arduino-совместимые платы китайцы ставят контроллер USB CP2102. Драйвер на него в большинстве случаев уже есть в системе (на Linux точно есть), если не работает — скачать можно с официального сайта.

  • Прямая ссылка на драйвер для Windows всех версий
  • Прямая ссылка на драйвер для Mac OS

На Windows установка производится следующим образом: достаём из архива и

Настройка и прошивка

Подключение платы


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

  • Неисправен USB кабель
  • Неисправен USB порт компьютера
  • Неисправен USB порт Arduino
  • Попробуйте другой компьютер, чтобы исключить часть проблем из списка
  • Попробуйте другую плату (желательно новую), чтобы исключить часть проблем из списка
  • На плате Arduino сгорел входной диод по линии USB из-за короткого замыкания, устроенного пользователем при сборке схемы
  • Плата Arduino сгорела полностью из-за неправильного подключения пользователем внешнего питания или короткого замыкания

Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:

  • См. предыдущий список неисправностей
  • Кабель должен быть data-кабелем, а не “зарядным”
  • Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб
  • Не установлены драйверы Arduino (во время установки IDE или из папки с программой), вернитесь к установке.

В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, обычно COM3. Если этого не произошло:

  • См. предыдущий список неисправностей
  • Некорректно установлен драйвер на USB контроллер Arduino
    • Переверните плату и найдите «узкую» микросхему. Если на ней написано CH341 — ставим драйвер по инструкции выше
    • Если написано FT232R — опять же инструкция выше
    • Если ничего не написано — открываем «Диспетчер устройств», смотрим блок «Другие устройства». Если при подключении платы к компьютеру там появляется FT232R USB UART — смотрим инструкцию выше
  • Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
  • Возникла системная ошибка, обратитесь к знакомому компьютерщику или экзорцисту

Выбор и настройка платы (Arduino NANO)


  • Выбираем соответствующую плату в Инструменты\Плата\ Большинство моих проектов сделаны на Arduino Nano. Если вы используете Nano:
    •  В микроконтроллер китайских плат зашит “старый” загрузчик, поэтому выбираем Инструменты\Процессор\ATmega328p (Old Bootloader). Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
  • Теперь выбираем порт, к которому подключена плата. COM1 – в большинстве случаев системный порт, у вас должен появиться ещё один (обычно COM3)

Загрузка прошивки


“Загрузка” прошивки происходит в два этапа – компиляция и непосредственно загрузка в микроконтроллер. Компиляция – проверка кода на наличие ошибок, её можно запустить, нажав кнопку с символом галочки в верхнем меню программы. Компилировать код можно даже не подключая плату к компьютеру! При нажатии на кнопку с символом стрелочки начнётся компиляция, а затем загрузка скомпилированного кода в плату.

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

Примечание: данный код является универсальным для всех Arduino-совместимых плат

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
  digitalWrite(LED_BUILTIN, 0);
  delay(300);
  digitalWrite(LED_BUILTIN, 1);
  delay(300);
}

ESP8266 (Wemos, NodeMCU)


ESP8266  — микроконтроллер с WiFi на борту, на его базе сделаны платы Wemos D1 mini, NodeMCU и другие.

  • Читайте вводный урок по esp8266.
  • На популярных платах Wemos и NodeMCU стоит бортовой USB и CH340 или CP2102 (обычно это указано на странице товара).
  • Установка драйверов описана выше на этой странице.

Для работы с esp8266 нужно добавить поддержку плат в Arduino IDE:

  • Arduino IDE/Файл/Настройки/
  • В окошко “Дополнительные ссылки…” Вставить
  • http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Нажать ОК
  • Arduino IDE/Инструменты/Плата/Менеджер плат… Начать вводить в поиске “esp”. Выбрать и установить ESP8266 boards
    • Рекомендуемая версия — 2.7.4, на более высоких пока что наблюдаются проблемы с совместимостью
  • В списке плат Инструменты/Плата/ появится семейство плат на esp8266. Выбираем плату
    • NodeMCU — NodeMCU 1.0
    • Wemos Mini — LOLIN Wemos D1 R2 & mini
    • Или другую согласно своей конфигурации
  • Выбираем порт, к которому подключена плата
  • На четвёртом скриншоте ниже показаны настройки платы по умолчанию, изменены только выделенные красным (плата и порт)

Заметка для NodeMCU. Перед началом загрузки нужно ввести плату в режим прошивки. Подключить к компьютеру, выбрать появившийся порт для загрузки. Зажать кнопку Flash. Кликнуть по кнопке Reset. Отпустить кнопку Flash. И только после этого нажать стрелочку в программе для загрузки прошивки.

ESP32


ESP32  — мощный микроконтроллер с WiFi на борту

  • На плате стоит бортовой USB и CH340 или CP2102 (обычно это указано на странице товара).
  • Установка драйверов описана выше на этой странице.

Для работы с ESP32 нужно добавить поддержку плат в Arduino IDE:

  • Arduino IDE/Файл/Настройки/
  • В окошко “Дополнительные ссылки…” Вставить
  • https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  • Нажать ОК
  • Arduino IDE/Инструменты/Плата/Менеджер плат… Начать вводить в поиске “esp”. Выбрать и установить esp32
  • В списке плат Инструменты/Плата/ появится семейство плат на esp32. Выбираем плату согласно купленной модификации
  • Выбираем порт, к которому подключена плата

У некоторых плат не работает автоматический запуск в режиме прошивки, поэтому в самом начале процесса загрузки прошивки нужно зажать кнопку Flash (BOOT) на плате

Digispark


Digispark — плата на базе ATtiny85.

  • Читайте вводный урок по Digispark.
  • Подключение к ПК по USB (реализован программно)
  • Нужно установить специальный драйвер, скачать можно на официальном GitHub проекта (в разделе Релизы, вот прямая ссылка на архив), либо с моего FTP. Драйвера есть для Win, MacOS и Linux.
  • Пользователям Linux читать здесь

Для работы с Digispark нужно добавить поддержку плат в Arduino IDE:

  • Arduino IDE/Файл/Настройки/
  • В окошко “Дополнительные ссылки…” Вставить
    • http://digistump.com/package_digistump_index.json
    • или https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json
  • Нажать ОК
  • Arduino IDE/Инструменты/Плата/Менеджер плат… Начать вводить в поиске “Digispark”. Выбрать и установить Digistump AVR Boards
  • В списке плат Arduino IDE/Инструменты/Плата/ появится семейство плат Digispark. Выбираем Digispark (Default – 16.5mhz)

Прошивка загружается следующим образом: ПЛАТУ НЕ ПОДКЛЮЧАЕМ, ПОРТ НЕ ВЫБИРАЕМ, нажимаем загрузка, ждём компиляции. Появится надпись “подключите плату”. Втыкаем плату в USB и прошивка загружается.

LGT8F328


LGT8F328 — китайский клон ATmega328

  • Читайте вводный урок по lgt8f328.
  • Может понадобиться драйвер (прямая ссылка на архив)

Для работы с LGT8F328 нужно добавить поддержку плат в Arduino IDE:

  • Запустить Arduino IDE, перейти в Файл/Настройки/
  • В окошко “Дополнительные ссылки…” Вставить
  • https://raw.githubusercontent.com/dbuezas/lgt8fx/master/package_lgt8fx_index.json
  • Нажать ОК
  • Перейти в Инструменты/Плата/Менеджер плат… Начать вводить в поиске “lgt8”. Выбрать и установить LGT8fx Boards
  • Теперь в списке плат Инструменты/Плата/ появится семейство плат Logic Green… Выбираем свою плату

«Голые» МК


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

  • Если проект основан на ATmega328 (Arduino Nano/Mini) и на плате есть источник тактирования на 16 МГц (резонатор), то микроконтроллер можно просто перепаять с Arduino и загружать прошивку через внешний USB-TTL переходник, как на Arduino Pro Mini. Либо загрузить прошивку, и потом перепаивать — всё будет работать.
    • Если источника тактирования нет — так делать нельзя! Сначала нужно настроить МК на внутреннее тактирование, подключив ISP программатор к плате Arduino и выбрав внутренний источник тактирования в настройках ядра. Подробнее читайте в уроке.
  • Если используется новый микроконтроллер (или припаянный китайцами) — он по умолчанию настроен на внутреннее тактирование и его можно паять на плату в любом случае. Загрузить прошивку можно только при помощи ISP программатора. Также можно прошить загрузчик и в дальнейшем загружать прошивку через USB-TTL преобразователь.

Установка библиотек


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

Менеджер библиотек


Большинство Ардуино-библиотек можно установить автоматически из встроенного в программу менеджера библиотек:

  • Скетч/Подключить библиотеку/Управлять библиотеками…
  • Комбинация клавиш Ctrl+Shift+I

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

Скачивание с GitHub


Не все существующие библиотеки есть в менеджере библиотек и скачать их можно только с GitHub. Есть два способа: скачать весь репозиторий и скачать релиз. Весь репозиторий со всеми «лишними» служебными файлами можно скачать одним архивом вот так, нажав Code/Download ZIP

Если у библиотеки есть релизы — справа будет отмечен последний (свежий) релиз. Нажимаем на него:

И в новом окне нажимаем Source code (zip) — начнётся загрузка архива. Скачивание релиза более предпочтительно, так как содержит только файлы библиотеки.

В обоих случаях библиотека скачается как .zip архив.

Автоматическая установка


Скачанный .zip архив можно установить в автоматическом режиме через Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… В открывшемся окне выбрать скачанный архив, библиотека будет установлена по указанному в настройках пути.

Ручная установка


Для начала нужно распаковать архив (стандартный архиватор Windows или WinRAR). Чтобы Arduino IDE смогла использовать библиотеку, нам нужно положить её туда, где программа будет её искать. Таких мест три (на примере Windows):

  • Документы/Arduino/libraries/
  • Папка с программой/libraries/
    • C/Program Files/Arduino/libraries/ (Windows 32)
    • C/Program Files (x86)/Arduino/libraries/ (Windows 64)
    • В портативной версии IDE желательно держать библиотеки в Папка с программой/libraries

Рекомендуется держать все библиотеки в одном месте, чтобы не было путаницы. Лично я устанавливаю все библиотеки в папку с программой (в Program Files), но для этого могут потребоваться права администратора (зависит от версии и настроек Windows). Если у вас возникли с этим проблемы – устанавливайте в Документы/Arduino/libraries/. На скриншотах показана установка скачанной с GitHub библиотеки в папку с программой и в документы. Ставить нужно в одно место, я просто показываю оба варианта.

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


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

  • В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
  • В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки и понять, куда копать
  • В скачанных с интернета готовых скетчах часто возникает ошибка с описанием <название файла>.h no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по <название файла>.
  • При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
  • Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
  • Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча.
  • Ошибка недостаточно свободного места возникает по вполне понятным причинам. Оптимизация: статическая память – память, занимаемая кодом (циклы, функции). Динамическая память занята переменными.

Частые ошибки в коде, приводящие к ошибке компиляции

  • …no such file or directory — компилятор не может найти файл, который используется в коде. Чаще всего это библиотека, которую не установили или установили неправильно
  • expected ‘,’ or ‘;’ – пропущена запятая или точка запятой на предыдущей строке
  • stray ‘\320’ in program – русские символы в коде
  • expected unqualified-id before numeric constant – имя переменной не может начинаться с цифры
  • … was not declared in this scope – переменная или функция используется, но не объявлена. Компилятор не может её найти
  • redefinition of … – повторное объявление функции или переменной
  • storage size of … isn’t known – массив задан без указания размера

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


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

  • Если неправильно выбран COM порт – прошивка не загрузится с ошибкой avrdude: ser_open(): can’t open device. Вернитесь к пункту “Выбор и настройка платы” этого урока и убедитесь в том, что выбор порта активен и при подключении платы появляется новый.
  • Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением Ардуины от питания. Потом вставляем USB и по новой прошиваем.
  • Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”.
    • Если это Arduino Nano — попробуйте оба, Old и не Old.
  • Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
  • Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
  • Если в описании ошибки встречается bootloader is not responding и not in sync, из-за ошибок записи мог “слететь” загрузчик, его можно попробовать прошить заново.
  • Если все пункты из этого списка проверены, а загрузчик прошить не удаётся — микроконтроллер скорее всего необратимо повреждён, то есть сгорел.

Предупреждения


Помимо ошибок, по причине которых проект вообще не загрузится в плату и не будет работать, есть ещё предупреждения, которые выводятся оранжевым текстом в чёрной области лога ошибок. Предупреждения могут появиться даже тогда, когда выше лога ошибок появилась надпись “Загрузка завершена“. Это означает, что в прошивке нет несовместимых с жизнью ошибок, она скомпилировалась и загрузилась в плату. Что же тогда означают предупреждения? Чаще всего можно увидеть такие:

  • # Pragma message……. – сообщения с директивой Pragma обычно выводят библиотеки, сообщая о своей версии или каких-то настройках. Это даже не предупреждение, а просто вывод текста в лог.
  • Недостаточно памяти, программа может работать нестабильно – чуть выше этого предупреждения обычно идёт информация о задействованной памяти. Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85-90%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти.
  • Предупреждения о несовместимых типах данных. Компилятор не смог привести один тип к другому и сообщает о потенциальных ошибках в ходе выполнения программы. В большинстве случаев ничего плохого не случится, но лучше найти проблемную строку и помочь компилятору преобразовать тип.

Частые вопросы


  • Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс flash памяти. А он довольно большой.
  • Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
  • Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов.
  • Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию.
    • Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
    • Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу
    • Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь
    • Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI

▶Проекты AlexGyver◀


ВНИМАТЕЛЬНО ЧИТАЙ ИНСТРУКЦИЮ

Если это твой первый опыт работы с Arduino — внимательно изучи каждый пункт инструкции выше, здесь всё написано!!!

Все мои проекты имеют одинаковую структуру и устанавливаются/прошиваются одинаково, поэтому вот финальная общая инструкция:

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

  • Если проект основан не на стандартной Arduino плате, а например на esp8266, ESP32, Digispark, lgt8f328 — устанавливаем поддержку этих плат, как описано выше.

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

3. Распаковать архив. Архив имеет формат .zip, для его распаковки можно использовать встроенные инструменты операционной системы, либо популярный WinRAR. Если не распаковать архив — прошивка откроется неправильно. Я не отличаюсь буйной фантазией и всегда называю папки одинаково, вот что может быть в архиве проекта:

  • firmware — прошивки для Arduino
  • software — программы для ПК
  • libraries — библиотеки
  • schemes — схемы
  • PCB — gerber файлы печатных плат
  • docs — всякие документы
  • Android — исходники приложения
  • 3Dprint — модели для печати
  • processing — программа на Processing

Извлечение WinRAR

Извлечение Windows
Распакованная папка

4. Установить библиотеки. К прошивкам моих проектов почти всегда идут библиотеки, необходимые для работы. Библиотеки в проектах часто пересекаются, но рекомендуется ставить именно версию, идущую в архиве с проектом, так как библиотеки обновляются и могут быть несовместимы со старыми проектами.

Примечание: если в папке с библиотеками уже есть библиотека как в архиве проекта — удалите её перед копированием. Нужная библиотека из архива может содержать другой набор папок и файлов, что приведёт к конфликту при «замене» папки!

Примечание: не у всех проектов в архиве есть папка с библиотеками. Если её нет — дополнительно устанавливать ничего не нужно.

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

Содержимое папки libraries из архива помещаем в:

  • Документы/Arduino/libraries/

Установка в документы

Примечание: в видео инструкции выше сказано устанавливать библиотеки в папку с программой. На Windows 10 и выше это требует прав администратора, так что лучше устанавливать библиотеки в Документы.

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

5. Открыть скетч (так называется файл с программой). При запуске файла скетча автоматически откроется Arduino IDE. Важно: если в папке со скетчем есть несколько файлов — запускаем любой с логотипом Arduino. Остальные файлы должны подтянуться автоматически и образовать вкладки в окне программы. Если запускать скетч прямо из архива — вкладки не откроются и скомпилировать/загрузить программу будет невозможно.

Вкладки в Arduino IDE

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

  • Для проектов на Arduino Nano выбираем Arduino Nano, а также Инструменты\Процессор\ATmega328p (Old Bootloader). Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
  • Для проектов на Wemos выбираем (LOLIN)Wemos D1 R2 & mini
  • Для проектов на NodeMCU выбираем NodeMCU 1.0
  • В некоторых проектах, например GyverLamp2 (второй версии) для прошивки в esp8266 нужно выбрать плату Generic esp8266, читайте особенности загрузки на странице проекта!
  • Для проектов на Digispark порт выбирать не надо, читай инструкцию выше

7. Настроить программу. Очень часто в начале кода моих программ можно встретить блок настроек. Настройки обычно имеют вид

#define SOME_SETTING 1  // 1 включено, 0 выключено

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

8. Загрузить прошивку. Нажимаем стрелочку в левом верхнем углу окна программы и прошивка загружается. Не загружается? Читаем гайд выше, там описаны все возможные причины.

Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если потребитель его потребует — это может привести к выгоранию защитного диода на плате Arduino.

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

Заметка для тех, кто не читал инструкцию и получил какую-то ошибку. Вот список самых частых причин:

  • Не распаковал архив и запустил скетч прямо из него, получил ошибку компиляции в стиле not declared in this scope. РАСПАКУЙ АРХИВ
  • В логе ошибок встречается фраза no such file or directory — не установил библиотеки. УСТАНОВИ БИБЛИОТЕКИ
  • Происходит ошибка загрузки. ВЕРНИСЬ К ИНСТРУКЦИИ ПО НАСТРОЙКЕ IDE
  • На плате что-то греется и прошивка не грузится. ДОПУСТИЛ ОШИБКУ ПРИ СБОРКЕ, ВСЁ СГОРЕЛО
  • Установил старую или кривую версию Arduino IDE и получил непонятные ошибки — удали старую и УСТАНОВИ СВЕЖУЮ ВЕРСИЮ
  • Ошибка где-то в библиотеке. УДАЛИ БИБЛИОТЕКИ, СОВПАДАЮЩИЕ С ТЕМИ, ЧТО В АРХИВЕ ПРОЕКТА, И СКОПИРУЙ ИХ ЗАНОВО
  • Некоторые проекты будут работать только на тех платах, что показаны в видео и описаны на странице проекта. Под другие платы прошивка компилироваться не будет!

An Arduino Nano is very cheap to get directly from China. But often these boards still have an old bootloader on board. This article explains how to reflash the bootloader of the Nano with the help of another Arduino.

Notice:
This is a translation of the German article. Please note that especially menu names, button labels, names, screenshots etc. might not be translated (correctly). Feel free to let us know in the comments if you notice any errors.

Is the old or new bootloader installed?

To find out, connect your Arduino Nano to your computer via USB cable and open the Arduino IDE. Choose the following example sketch under File -> Examples -> 01.Basics -> Blink. Under Tools -> Board select “Arduino Nano” and under Tools -> Port select the corresponding port of your Arduino Nano. Under Tools -> Processor select “ATmega328P” (and not “ATmega328P (Old Bootloader)”) and start the upload of the sketch.

Upload successful?

If the sketch upload was successful, then the new bootloader is already installed on your Arduino Nano and you can stop reading at this point 🙂

Upload failed?

If you get an error message similar to the following, then your Arduino Nano has the old (or no) bootloader installed.

         Using Port                    : COM16
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done.  Thank you.

Beim Hochladen des Sketches ist ein Fehler aufgetreten

The error message can also contain other codes after “resp”, e. g.:

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x85

Now select “ATmega328P (Old Bootloader)” under Tools -> Processor and start the upload of the sketch again. This time the upload should be successful and the LED on the Arduino Nano should blink. In the output window of the Arduino IDE you will see “Upload complete” and more details about the upload process, for example:


         Using Port                    : COM16
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

[...]

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.16
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "C:UsersuserAppDataLocalTemparduino_build_372348/Blink.ino.hex"
avrdude: writing flash (924 bytes):

Writing | ################################################## | 100% 0.29s

avrdude: 924 bytes of flash written
avrdude: verifying flash memory against C:UsersuserAppDataLocalTemparduino_build_372348/Blink.ino.hex:
avrdude: load data flash data from input file C:UsersuserAppDataLocalTemparduino_build_372348/Blink.ino.hex:
avrdude: input file C:UsersuserAppDataLocalTemparduino_build_372348/Blink.ino.hex contains 924 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.22s

avrdude: verifying ...
avrdude: 924 bytes of flash verified

avrdude done.  Thank you.

Now we know that the old bootloader is installed on the Arduino Nano. We can overwrite this with the new bootloader without any problems, because it is only a different software. The hardware of an Arduino Nano with the old bootloader is no different from one with the new bootloader. But why should we do this at all?

Differences of the new bootloader compared to the old one

The old bootloader is the “ATmegaBOOT”, the new bootloader is called “optiboot” and is also used in other Arduino models.

In this StackExchange post, the two main benefits are mentioned:

  • If the Arduino Nano is reset by the watchdog, then a bug in ATmegaBOOT causes the Arduino Nano to restart infinitely often. This bug does not exist in optiboot.
  • When uploading sketches ATmegaBOOT works with a baud rate of 57600. The bootloader optiboot on the other hand is twice as fast with a baud rate of 115200. So sketches can be uploaded to the Nano faster with the new bootloader. Since different baud rates are used, the correct bootloader must always be selected when uploading sketches in the Arduino IDE. From the bootloader’s point of view no useful data would be received otherwise, because the sketch is transferred too slow or too fast.

Another small advantage of the new bootloader is that you can use the default setting of the Arduino IDE and don’t have to remember to change the bootloader in the “Processor” menu accordingly.

Flashing a new bootloader to the Arduino Nano

To flash a bootloader to an Arduino, you need a “programmer”. This can either be a special board for this purpose or you use another Arduino for this task. If you have a second Arduino lying around, it is recommended to use it as a programmer, because then you don’t have to buy an extra (rarely used) programmer board.

In the following we use an Arduino Uno as programmer. We also need six male-to-female jumper cables and the Arduino IDE must be installed; because flashing bootloaders via the web editor is not possible.

Prepare Arduino as programmer (ISP = In-System Programmer)

First we load the software on the Arduino Uno, with which we will flash the bootloader of the Arduino Nano later.

  • Do not connect any jumper cables to the Arduino Uno yet.
  • Connect the Arduino Uno via USB cable to the computer.
  • Open the Arduino IDE (Note: Arduino create Web-Editor does not have the functions for bootloader flashing built in!) and load the sketch “ArduinoISP” via the menu File -> Examples -> 11.ArduinoISP -> ArduinoISP
  • Set the board and port settings according to the used Arduino model for the programmer:
    • Tools -> Board -> Arduino Uno
    • Tools -> Port -> Select port number of the Arduino Uno
  • Upload the sketch to the Arduino Uno.
  • If everything is uploaded successfully, your ISP Arduino is ready to go!

Wiring: Connect Arduino Uno (programmer) to Arduino Nano (bootloader target device)

In the next step, we will connect the Arduino Uno to the Arduino Nano using six jumper cables.

  • Disconnect the Arduino Uno (programmer) from the computer.
  • There are two options for wiring the Arduino Nano (bootloader target device): the ICSP pin block or the normal, side pins.

Wiring using ICSP pin block

  • The ICSP pin block consists of 2×3 pins labeled “ICSP” on the Arduino board. We will connect the Arduino Uno (programmer) to these six pins to flash the Arduino Nano’s bootloader. The ICSP pins are standardized and should have the same pinout on every Arduino model.
  • A look into the code of the “ArduinoISP” sketch tells us how to wire the Arduino Uno (programmer) to the Arduino Nano (bootloader target device):

ICSP pin assignment: ” ° ” marks pin number 1
  • With the symbol ” ° ” it is indicated, which is pin 1, which should also be labeled with a “1” on the board.
  • On the fifth, unlabeled pin (in the sketch comment) is normally RST (Reset).
  • We now need to connect these six pins on the Arduino Nano to corresponding pins on the Arduino Uno. The source code tells us the pin number for the reset.

Pin assignment: RESET on pin 10
  • Reset is triggered via pin 10.
    • Reset: 10
  • But which are the standard hardware pins for MOSI, MISO and SCK on the Arduino Uno? The pinout of the Arduino Uno tells us:
    • MOSI: 11
    • MISO: 12
    • SCK: 13
  • Furthermore we have to supply power to the Arduino Nano via the pins GND and 5V.

Alternative: Wiring via normal, side pins

In the comments it was pointed out that instead of the ICSP pinblock you can also use the normal, side pins of the Arduino Nano for the connection without any problems. In a corresponding pinout diagram you can quickly find out which are the required pins 5V, GND, SCK, MISO, MOSI and RST. In the following table both connection possibilities are listed. So the Arduino Uno is connected to the Arduino Nano in one of the following two ways:

Arduino Uno
(programmer)
<-> Arduino Nano
(bootloader target device)
ICSP pin block

or: normal pins

5V 5V (ICSP-pin 2) 5V
GND GND (ICSP-pin 6) GND
D13 SCK (ICSP-pin 3) D13 (SCK)
D12 MISO (ICSP-pin 1) D12 (MISO)
D11 MOSI (ICSP-pin 4) D11 (MOSI)
D10 RST (ICSP-pin 5) RST

Connection via ICSP pin block: Arduino Uno (programmer) on the left and Arduino Nano (bootloader target device) on the right. Additionally you can see a 10µF capacitor on the Arduino Uno, which is not absolutely necessary (see following note).

On the Arduino page about ISP it is pointed out that with the Arduino Uno as programmer (and also with the Mega, Mini and Nano) an additional 10µF capacitor must be connected to the pins GND (minus (-), short leg) and RST (plus (+), long leg). The capacitor may only be connected after the ArduinoISP sketch has been loaded onto the board. In the following photo you can see the additionally capacitor in place:

10µF capacitor with minus (-) [short leg] to GND and plus (+) [long leg] to RST

Note: In my case, the flashing process (see below) also worked without the additional capacitor. However, for two of our readers it did not work without a capacitor. In one case, a 0.1µF capacitor was sufficient. In the other case, a 10µF capacitor was used.

Start flash process

Now we can flash the new bootloader to the Arduino Nano.

  • Change the settings in the Arduino IDE in the Tools menu:
    • change Programmer to Arduino as ISP (choose exactly this entry and not “ArduinoISP” or “ArduinoISP.org”)
    • under Port select the port number of the Arduino Uno (programmer)
    • under Board and Processor set the parameters for the “target Arduino” where we want to reflash the bootloader, so in this case:
      • Board: Arduino Nano
      • Processor: ATmega328P (and not “ATmega328P (Old Bootloader)”)
  • In the menu Tools click on Burn Bootloader. (Since no sketch is uploaded here, but the bootloader is transferred via the ArduinoISP program of the Arduino Uno, it doesn’t matter what sketch is open during this time).

The flash process only takes a few seconds (for me). When the bootloader has been flashed successfully, you will get a message that looks something like this:

         Using Port                    : COM16
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

[...]

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:UsersuserAppDataLocalArduino15packagesarduinohardwareavr1.8.2/bootloaders/optiboot/optiboot_atmega328.hex"
avrdude: writing flash (32768 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 32768 bytes of flash written
avrdude: verifying flash memory against C:UsersuserAppDataLocalArduino15packagesarduinohardwareavr1.8.2/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: load data flash data from input file C:UsersuserAppDataLocalArduino15packagesarduinohardwareavr1.8.2/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: input file C:UsersuserAppDataLocalArduino15packagesarduinohardwareavr1.8.2/bootloaders/optiboot/optiboot_atmega328.hex contains 32768 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 32768 bytes of flash verified
avrdude: reading input file "0x0F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done.  Thank you.

Have fun with your freshly flashed Arduino Nano! 🙂

cover image: by Nizzah Khusnunnisa on Unsplash, modified with Canva

Для того что бы загрузить прошивку в пату Arduino nano понадобиться шнур с разъемом USB mini (или же другим разъемом если таковой установлен на плате).

Ардуино нано и кабель USB micro

Ардуино нано и кабель USB micro
Шнур USB micro

Кабель USB micro

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

Скачиваем пакет JAVA

Скачиваем пакет JAVA
Скачиваем Arduino IDE

Скачиваем Arduino IDE

Устанавливаем скачанный пакет JAVA и распаковываем архив Arduino IDE.

Распаковываем Arduino IDE

Распаковываем Arduino IDE
Устанавливаем скачанный пакет JAVA

Устанавливаем пакет JAVA

Далее необходимо установить драйвера. Для этого открываем распакованный архив Arduino IDE, заходим в папку drivers и запускаем файл dpinst-amd 64 если у Вас 64 битная операционная система или dpinst-x86 если у Вас 32 битная операционная система (посмотреть это можно открыв мой компьютер, далее нажать правой кнопкой мыши на пустой области, выбрать свойства и глянуть в графу Тип системы).

Заходим в папку drivers

1. Заходим в папку drivers
Запускаем dpinst-amd 64 или dpinst-x86

2. Запускаем dpinst-amd 64 или dpinst-x86
Драйвера установлены

3. Драйвера установлены

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

Скачиваем тестовую прошивку

Скачиваем тестовую прошивку
Скачиваем драйвера

Скачиваем драйвера

Разархивируем и устанавливаем драйвера CH341.

Разархивируем драйвера

Разархивируем драйвера
Устанавливаем драйвера

Запускаем файл SETUP
Нажимаем INSTALL

Нажимаем INSTALL
Готово

Готово

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

Переносим программу Arduino IDE и прошивку в папку с названием на английском.

Путь до программы без кириллицы

Подключаем плату ардуино к компьютеру и ждем пока ПК ее инициализирует. При первом подключении должен высветиться номер порта который нужно будет запомнить, ну а если он не высветился или вы его проворонили его можно посмотреть зайдя в ПУСК — Устройства и принтеры и в самом низу увидите значок подключенной ардуинки с номер порта (в данном случае №4).

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

Подключаем плату ардуино к компьютеру
Заходим в пуск, выбираем устройства и принтеры

Заходим в пуск, выбираем устройства и принтеры
В самом низу смотрим номер порта

В самом низу смотрим номер порта (№4)

Запускаем Arduino IDE и устанавливаем настройки как на скриншотах. Т.е. выбираем плату (nano или ту что у Вас), процессор (попробуйте ATmega 328P или ATmega 328P (Old BootLoader) определяется методом тыка, и порт).

Настройки Программы Arduino IDE

Настройки Программы Arduino IDE
Настройки Программы Arduino IDE

Настройки Программы Arduino IDE
Настройки Программы Arduino IDE

Настройки Программы Arduino IDE

Открываем тестовую прошивку и загружаем в плату просто нажав кнопку со стрелочкой.

Открываем прошивку

1. Нажимаем «Открыть»
Открываем прошивку

2. Выбираем прошивку
Загружаем прошивку нажав кнопку со стрелочкой

3. Загружаем прошивку нажав кнопку со стрелочкой
Прошивка загружена

4. Готово

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

Прошивка заставит красный светодиод моргать с определенной периодичностью

Прошивка загрузилась нормально, светодиод моргает

Как установить библиотеки Ардуино

Бывают случаи когда прошивки требуют дополнительные библиотеки для корректной загрузки. Для этого просто скачиваем недостающие библиотеки из интернета, открываем папку с программой Arduino IDE и закидываем папку с библиотекой в папку libraries. После чего заново загружаем прошивку, все должно получиться!

Ошибка в которой говорится что отсутствует библиотека microLED

Ошибка в которой говорится что отсутствует библиотека microLED
Закидываем библиотеку в папку libraries

Закидываем библиотеку в папку libraries
Папка libraries изнутри

Папка libraries изнутри

Похожие статьи:

  • Как сделать автоматический наливатор на ардуино
  • Проблемы при сборке наливатора

Видео инструкция

Прошивка является популярным способом распространения программ для ардуино и микроконтроллеров.

Здесь описана процедура загрузки прошивки микроконтроллера платы Arduino.

Данная инструкция позволит вам установить прошивку на наиболее популярные платы такие как Nano, UNO, Leonardo, Mini, Pro Micro и другие, собранные на микроконтроллере atmega328p, atmega168, atmega32u4 и других.

Для прошивки других типов плат обратитесь за помощью (http://jarduino.ru/support).

О прошивках Arduino

Не стоит путать прошивку со скетчем!

Скетч – это исходный код прошивки.

Прошивка ардуино – это скомпилированный (бинарный) файл, загружаемый в плату Arduino (в микроконтроллер).  Прошивка не является исходным кодом программы (скетча). Файл прошивки обычно имеет расширение HEX.

Преимущество прошивки – это простота ее
использования:

  • Не нужны никакие библиотеки,
  • Легко загрузить и выгрузить,
  • Можно перенести с одного устройства
    на другое.

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

Вместе с прошивкой часто может поставляться
и копия памяти ПЗУ (EEPROM), в которой хранятся данные, необходимые для работы устройства.

Способы прошивки Arduino

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

Рассмотрим пару наиболее популярных программ
прошивки.

XLoader

Самая простая и лаконичная программа, которая подойдет любому, кому просто надо загрузить hex на популярную Arduino.

Xloader

Загрузка прошивки интуитивно понятна:

  • Выбираем…
    • файл прошивки
    • плату ардуино
    • COM-порт
    • Скорость передачи данных
  • Нажимаем кнопку Upload (Загрузить).

Последняя версия – 1.0.

Скачать.

Не может загружать EEPROM.

SinaProg

SinaProg – это уже более профессиональная и универсальная программа, разработанная неизвестными иранскими программистами. Однако сразу надо сказать, что данная программа – не более чем графическая оболочка для утилиты AVRDude, о которой пойдет речь дальше.

Универсальная оболочка для AVRDude
  1. Выбираем файл прошивки
  2. Настраиваем программатор: выбираем…
  3. Arduino,
  4. Порт
  5. Скорость передачи

Последняя версия – 2.1.1

Avrdude

Большинство всех загрузчиков используют одну и ту же утилиту – AVRDude (AVR Downloader-Uploader), которая давно вошла во многие среды разработки для ардуино, в т.м. числе и в Arduino IDE.

Это мощнейшая утилита для работы с чипами AVR, но все-таки это утилита командной строки, что многим неудобно.

avrdude в работе

Загрузка HEX прошивки в Arduino

Читайте в следующем параграфе как прошить ардуино
и с его помощью.

Последняя версия – 6.3.

Arduino IDE, AVRDude

Рассмотрим как загрузить прошивку, имея только
Arduino IDE на компьютере с Windows.

Напомню, что вместе с Arduino IDE ставится и AVRDude, с помощью которого мы и загрузим прошивку.

Установка программного обеспечения

  • Установить программу Arduino IDE, если она не установлена
    • В ряде случаев потребуется установить дополнительный драйвер вашей платы (если плата – китайский клон). Драйвер нужен только в случае если вы не видите вашу плату в Arduino IDE.

Подготовка

  • Подключить плату к компьютеру
  • Запустить Arduino IDE
  • Определить к какому порту подключена Arduino, через меню, как показано ниже:
Выбор COM-порта ардуино

Выбор COM-порта ардуино
  • Определите в какой папке
    установлена Arduino IDE

Обычно – “C:Program Files (x86)Arduino”

Загрузка прошивки ардуино

  • Открываете командную строку и вводите
    следующую команду, предварительно скорректировав ее под свои условия:

C:Program Files (x86)Arduinohardwaretoolsavr/bin/avrdude” -“C:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf” -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:Firware.hex:i

Обратите внимание на:

  • Путь к Arduino IDE (желтым),
  • Номер порта (голубым),
  • Скорость передачи данных (зеленым)
  • Название (путь) файла прошивки (фиолетовым)

Если при выполнении команды вы увидите ошибку как ниже

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd2

Ошибка avrdude,
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd2

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

Нажмите CTRL+C, чтобы прервать процесс.

Получение помощи

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

Часто задаваемые вопросы о прошивке

Какой COM-порт выбирать?

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

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

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

Порт можно посмотреть в Arduino IDE…

Выбор COM-порта в Arduino IDE

… или, если
вы на Windows, в диспетчере устройств:

Определение COM-порта, к которому подключена Arduino через диспетчер устройств Windows.

Однозначно,
это не COM1. Поэтому, в моем случае это будет
COM3.

Какую скорость выбрать?

Скорость
передачи зависит от версии платы. Если мы говорим о популярных Nano или UNO, то скорость будет 115200. Однако,
если вы имеете дело с китайский клоном, то, возможно, придется выбрать 57600.

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

Как залить прошивку в Arduino Nano. Как вдохнуть жизнь в Arduino Nano: Полное руководство по прошивке и не только 🚀

🤬Источник👌🏼

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

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

✴️ Шаг за шагом: Прошиваем Arduino Nano

✴️ Arduino на ладони: Программирование со смартфона 📱

✴️ Актуальная версия Arduino IDE: Будьте в курсе 💡

✴️ Arduino IDE говорит на вашем языке: Меняем интерфейс 🇷🇺

✴️ Язык Arduino: C++ — ваш проводник в мир микроконтроллеров 💻

✴️ Мигающий светодиод: Первый шаг в мир Arduino 💡

✴️ Cpp

✴️ Void loop() {

✴️ Выводы и заключение

✴️ FAQ: Ответы на частые вопросы

📧 Детали


Шаг за шагом: Прошиваем Arduino Nano

Прошивка Arduino Nano — это процесс загрузки написанной вами программы (скетча) в память микроконтроллера. После этого Arduino Nano будет выполнять именно те действия, которые вы запрограммировали.

  1. Выбор платы в Arduino IDE: Первым делом, убедитесь, что вы правильно указали тип вашей платы в среде разработки Arduino IDE. Это критически важно, поскольку от этого зависит, как компилятор будет генерировать код. Перейдите в меню «Инструменты» -> «Плата» и выберите «Arduino Nano». Если у вас другая плата Arduino, выберите соответствующую модель. 🧐
  2. Загрузка скетча: После того, как вы написали или открыли скетч в Arduino IDE, нажмите на кнопку со стрелкой в левом верхнем углу окна. Эта кнопка называется «Загрузить». Arduino IDE скомпилирует ваш код и попытается загрузить его в Arduino Nano. ⬆️
  3. Устранение неполадок: Если при загрузке возникают ошибки, убедитесь, что:
  • Arduino Nano правильно подключен к компьютеру через USB-кабель. 💻
  • Выбран правильный COM-порт в меню «Инструменты» -> «Порт».
  • Драйверы для Arduino Nano установлены корректно. В случае проблем, переустановите драйверы.
  • Выбран правильный программатор в меню «Инструменты» -> «Программатор». Обычно для Arduino Nano подходит «AVRISP mkII» или «Arduino as ISP».

Arduino на ладони: Программирование со смартфона 📱

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

  • OTG — ключ к успеху: Для подключения Arduino Nano к смартфону или планшету необходима поддержка OTG (On-The-Go). OTG позволяет вашему мобильному устройству работать с внешними USB-устройствами, такими как Arduino. Убедитесь, что ваше устройство поддерживает OTG. 🔑
  • Приложение Arduino IDE: Скачайте и установите официальное приложение Arduino IDE из Google Play Store. 📲
  • Подключение: Подключите Arduino Nano к вашему смартфону или планшету через OTG-адаптер.
  • Программирование: Откройте приложение Arduino IDE, напишите или откройте скетч и нажмите кнопку «Загрузить».

Актуальная версия Arduino IDE: Будьте в курсе 💡

Чтобы всегда иметь доступ к последним функциям и исправлениям ошибок, важно использовать актуальную версию Arduino IDE. Узнать последнюю доступную версию можно на официальном сайте Arduino или на странице проекта Arduino CLI на GitHub. 🌐

Arduino IDE говорит на вашем языке: Меняем интерфейс 🇷🇺

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

  • Файл -> Параметры: Откройте Arduino IDE и перейдите в меню «Файл» -> «Параметры». ⚙️
  • Язык редактора: В выпадающем списке «Язык редактора» выберите нужный язык.
  • Перезапуск: Перезапустите Arduino IDE, чтобы изменения вступили в силу.

Язык Arduino: C++ — ваш проводник в мир микроконтроллеров 💻

Arduino использует язык программирования C++. Это мощный и гибкий язык, который позволяет создавать сложные и эффективные программы для микроконтроллеров. Для разработки программ используется Arduino IDE — бесплатная и удобная среда разработки, которую можно скачать с официального сайта Arduino.

Мигающий светодиод: Первый шаг в мир Arduino 💡

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

  • Схема подключения: Подключите светодиод к одному из цифровых пинов Arduino Nano (например, к пину 13) через резистор (обычно 220 Ом). Резистор необходим для ограничения тока через светодиод и предотвращения его перегорания. ⚡
  • Код: Напишите следующий код в Arduino IDE:

Cpp

void setup() {

pinMode(13, OUTPUT); // Устанавливаем пин 13 как выход

}

Void loop() {

digitalWrite(13, HIGH); // Включаем светодиод

delay(1000); // Ждем 1 секунду

digitalWrite(13, LOW); // Выключаем светодиод

delay(1000); // Ждем 1 секунду

}

  • Загрузка и результат: Загрузите код в Arduino Nano. Светодиод должен начать мигать с интервалом в 1 секунду. 🎉

Выводы и заключение

Arduino Nano — это универсальный инструмент для создания электронных устройств. Освоив процесс прошивки и основы программирования на C++, вы сможете воплотить в жизнь самые смелые идеи. Не бойтесь экспериментировать, изучайте новые библиотеки и компоненты, и вы обязательно добьетесь успеха! 🚀

FAQ: Ответы на частые вопросы

  • Что делать, если Arduino Nano не определяется компьютером?
  • Убедитесь, что USB-кабель исправен.
  • Проверьте, правильно ли установлены драйверы для Arduino Nano.
  • Попробуйте подключить Arduino Nano к другому USB-порту.
  • Какие библиотеки можно использовать с Arduino Nano?
  • Существует огромное количество библиотек для Arduino, которые позволяют работать с различными датчиками, дисплеями, модулями связи и т.д. Ищите библиотеки, соответствующие вашим задачам.
  • Как запитать Arduino Nano?
  • Arduino Nano можно запитать через USB-порт или через внешний источник питания (7-12 В), подключенный к пину VIN.
  • Можно ли использовать Arduino Nano для коммерческих проектов?
  • Да, Arduino Nano можно использовать для коммерческих проектов. Однако, необходимо учитывать лицензионные ограничения используемых библиотек и компонентов.
  • Где найти примеры проектов для Arduino Nano?
  • На официальном сайте Arduino, на GitHub, а также на различных форумах и сайтах, посвященных электронике и программированию.

Вопросы и ответы

👉 Где программировать Arduino 👈

Программировать удобнее всего в интегрированных средах разработки. У плат семейства Arduino есть Arduino IDE. Приложение доступно для Windows, Linux и macOS. В нем собрали все инструменты, которые могут пригодиться во время разработки собственных проектов.

👉 Как заправить нано 👈

Все просто:

1. Достать картридж.

2. Взболтать флакон с жидкостью.

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

4. Залить жидкость и подождать 2-3 минуты.

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

👉 Как перевести Arduino на русский 👈

Как переключить язык:

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

👉 Как сделать мигающий светодиод на Arduino 👈

В функции setup() , укажите пин, к которому подключен светодиод, как выход с помощью pinMode(13, OUTPUT); . В функции loop() , используйте digitalWrite(13, HIGH); для включения светодиода и digitalWrite(13, LOW); для выключения, создавая эффект мигания.

👉 Как сменить язык в Arduino 👈

Как переключить язык:

1. Заходим в главном меню в пункт «Файл → Параметры».

2. Выбираем нужный язык в выпадающем списке «Язык редактора».

3. Перезапускаем среду.

👉 Как узнать версию Arduino 👈

Также узнать последнюю доступную версию можно по адресу: https://arduino-cli.github.io/arduino-latest/VERSION.


✔️ Как заставить светодиод мигать на Arduino

✔️ Как сохранить выделенный фрагмент в Paint

✔️ Как можно найти обои по фото

✔️ Почему умерший человек мягкий

….

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Арм кт проф аттестат инструкция по заполнению
  • Должностная инструкция менеджера по внешней экономической деятельности
  • Как сшить послеоперационную попону для собаки своими руками пошаговая инструкция
  • Флебодиа 600 инструкция отзывы при геморрое по применению
  • Пантомакс для мужчин инструкция по применению противопоказания