Произошла ошибка при загрузке скетча ардуино

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

Первая прошивка


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

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

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

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

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

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

  • См. предыдущий список неисправностей.
  • Некорректно установлен драйвер CH341.
  • Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
  • Возникла системная ошибка, обратитесь к знакомому компьютерщику

4. Выбираем свою плату. Если это Arduino Nano, выбираем в ИнструментыПлатаArduino Nano. Если другая – выбираем другую. Нажимаем стрелочку в левом верхнем углу (загрузить прошивку). Да, загружаем пустую прошивку.

  • [Для Arduino Nano] В микроконтроллер китайских нанок зашит “старый” загрузчик, поэтому выбираем ИнструментыПроцессорATmega328p (Old Bootloader). Некоторые китайцы зашивают в свои платы новый загрузчик, поэтому если прошивка не загрузилась (загрузка идёт минуту и вылетает ошибка avrdude: stk500_getsync()) – попробуйте сменить пункт Процессор на ATmega328p.

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

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


Возникает на этапе компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки.

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

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


  • 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 – массив задан без указания размера

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


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

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

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


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

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

FAQ


Завершая раздел Введение в Arduino поговорим о вопросах, которые очень часто возникают у новичков:

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

Видео


Полезные страницы


  • Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
  • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
  • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
  • Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
  • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
  • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
  • Поддержать автора за работу над уроками
  • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])

СОДЕРЖАНИЕ ►

  • Произошла ошибка при загрузке скетча в Ардуино
    • programmer is not responding
    • a function-definition is not allowed arduino ошибка
    • expected initializer before ‘}’ token arduino ошибка
    • ‘что-то’ was not declared in this scope arduino ошибка
    • No such file or directory arduino ошибка
  • Compilation error: Missing FQBN (Fully Qualified Board Name)

Ошибки компиляции Arduino IDE возникают при проверке или загрузке скетча в плату, если код программы содержит ошибки, компилятор не может найти библиотеки или переменные. На самом деле, сообщение об ошибке при загрузке скетча связано с невнимательностью самого программиста. Рассмотрим в этой статье все возможные ошибки компиляции для платы Ардуино UNO R3, NANO, MEGA и пути их решения.

Произошла ошибка при загрузке скетча Ардуино

Самые простые ошибки возникают у новичков, кто только начинает разбираться с языком программирования Ардуино и делает первые попытки загрузить скетч. Если вы не нашли решение своей проблемы в статье, то напишите свой вопрос в комментариях к этой записи и мы поможем решить вашу проблему с загрузкой (бесплатно!).

avrdude: stk500_recv(): programmer is not responding

Что делать в этом случае? Первым делом обратите внимание какую плату вы используете и к какому порту она подключена (смотри на скриншоте в правом нижнем углу). Необходимо сообщить Arduino IDE, какая плата используется и к какому порту она подключена. Если вы загружаете скетч в Ардуино Nano V3, но при этом в настройках указана плата Uno или Mega 2560, то вы увидите ошибку, как на скриншоте ниже.

Ошибка: programmer is not responding

Ошибка Ардуино: programmer is not responding

Такая же ошибка будет возникать, если вы не укажите порт к которому подключена плата (это может быть любой COM-порт, кроме COM1). В обоих случаях вы получите сообщение — плата не отвечает (programmer is not responding). Для исправления ошибки надо на панели инструментов Arduino IDE в меню «Сервис» выбрать нужную плату и там же, через «Сервис» → «Последовательный порт» выбрать порт «COM7».

a function-definition is not allowed here before ‘{‘ token

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

Ошибка: a function-definition is not allowed

Ошибка: a function-definition is not allowed here before ‘{‘ token

expected initializer before ‘}’ token   expected ‘;’ before ‘}’ token

Сообщение expected initializer before ‘}’ token говорит о том, что вы, наоборот где-то забыли открыть фигурную скобку. Arduino IDE даст вам подсказку, но если скетч довольно большой, то вам придется набраться терпения, чтобы найти неточность в коде. Ошибка при компиляции программы: expected ‘;’ before ‘}’ token говорит о том, что вы забыли поставить точку с запятой в конце командной строки.

‘что-то’ was not declared in this scope

Что за ошибка? Arduino IDE обнаружила в скетче слова, не являющиеся служебными или не были объявлены, как переменные. Например, вы забыли продекларировать переменную или задали переменную ‘DATA’, а затем по невнимательности используете ‘DAT’, которая не была продекларирована. Ошибка was not declared in this scope возникает при появлении в скетче случайных или лишних символов.

Ошибка Ардуино: was not declared in this scope

Ошибка Ардуино: was not declared in this scope

Например, на скриншоте выделено, что программист забыл продекларировать переменную ‘x’, а также неправильно написал функцию ‘analogRead’. Такая ошибка может возникнуть, если вы забудете поставить комментарий, написали функцию с ошибкой и т.д. Все ошибки также будут подсвечены, а при нескольких ошибках в скетче, сначала будет предложено исправить первую ошибку, расположенную выше.

exit status 1 ошибка компиляции для платы Arduino

Данная ошибка возникает, если вы подключаете в скетче библиотеку, которую не установили в папку libraries. Например, не установлена библиотека ИК приемника Ардуино: fatal error: IRremote.h: No such file or directory. Как исправить ошибку? Скачайте нужную библиотеку и распакуйте архив в папку C:Program FilesArduinolibraries. Если библиотека установлена, то попробуйте скачать и заменить библиотеку на новую.

exit status 1 Ошибка компиляции для Arduino Nano

exit status 1 Ошибка компиляции для платы Arduino Nano

Довольно часто у новичков выходит exit status 1 ошибка компиляции для платы arduino uno /genuino uno. Причин данного сообщения при загрузке скетча в плату Arduino Mega или Uno может быть огромное множество. Но все их легко исправить, достаточно внимательно перепроверить код программы. Если в этом обзоре вы не нашли решение своей проблемы, то напишите свой вопрос в комментариях к этой статье.

missing fqbn (fully qualified board name)

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

Содержание

  1. Скетч не загружается в Ардуино. Что делать?
  2. Добавить комментарий Отменить ответ
  3. Первая прошивка, ошибки, FAQ
  4. Первая прошивка
  5. Ошибки компиляции
  6. Частые ошибки в коде, приводящие к ошибке компиляции
  7. Ошибки загрузки
  8. Предупреждения
  9. Видео
  10. Произошла ошибка при загрузке скетча Ардуино
  11. Ошибки компиляции для Arduino Nano, Uno, Mega
  12. avrdude: stk500_recv(): programmer is not responding
  13. a function-definition is not allowed here before ‘<‘ token
  14. expected initializer before ‘>’ token / expected ‘;’ before ‘>’ token
  15. ‘что-то’ was not declared in this scope
  16. exit status 1 ошибка компиляции для платы Arduino
  17. missing fqbn (fully qualified board name)

Скетч не загружается в Ардуино. Что делать?

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

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

Существует две наиболее частые ситуации:

  1. Arduino IDE ругается, что не может найти указанный файл (No such file or directory). Это говорит о том, что нужно установить какую-то библиотеку. А со своими программами я всегда поставляю все необходимые библиотеки.
  2. Загрузка скетча подвисает, а потом выдает ошибку:

1я ситуация разобрана здесь.

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

Дело в том, что Arduino IDE предполагает, что все современные Nano и UNO должны работать со скоростью 15200 бит в секунду. А китайские клоны до сих пор довольно часто работают со скоростью в 2 раза меньше – 57600.

Решить эту проблему можно двумя способами:

  1. Обновить загрузчик на плате
  2. Добавить плату со старым загрузчиком в конфигурацию Arduino IDE

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

Итак, зайдите на компьютере в папку, в которую установлена Arduino IDE. Лично у меня это, как и большинства, “C:Program Files (x86)Arduino”, если Вы на Windows.

Теперь откройте папку hardwarearduinoavr и найдите файл boards.txt

В этом файле и находятся все платы, которые Вы выбираете через меню «Инструменты > Плата…»

Выбор платы из списка

Откройте этот файл в текстовом редакторе, например, в блокноте.

Найдите в нем строчку uno.upload.speed

Настройки плат ардуино

Мы видим, что скорость загрузки равно 115200. Но у нас плата, которая хочет 57600!

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

Выход, получается, один – добавить плату, скажем, UNO2, на случай скорости 57600.

Предлагаю просто вставить себе мои настройки и сохранить файл:

Теперь у вас две платы UNO и две Nano:

Выбор платы ардуино в Arduino IDE

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Первая прошивка, ошибки, FAQ

Первая прошивка

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

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

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

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

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

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

  • См. предыдущий список неисправностей.
  • Некорректно установлен драйвер CH341.
  • Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
  • Возникла системная ошибка, обратитесь к знакомому компьютерщику

4. Выбираем свою плату. Если это Arduino Nano, выбираем в ИнструментыПлатаArduino Nano. Если другая – выбираем другую. Нажимаем стрелочку в левом верхнем углу (загрузить прошивку). Да, загружаем пустую прошивку.

  • [Для Arduino Nano] В микроконтроллер китайских нанок зашит “старый” загрузчик, поэтому выбираем ИнструментыПроцессорATmega328p (Old Bootloader). Некоторые китайцы зашивают в свои платы новый загрузчик, поэтому если прошивка не загрузилась (загрузка идёт минуту и вылетает ошибка avrdude: stk500_getsync()) – попробуйте сменить пункт Процессор на ATmega328p.

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

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

Возникает на этапе компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки.

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

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

  • 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 – массив задан без указания размера

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

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

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

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

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

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

Завершая раздел Введение в Arduino поговорим о вопросах, которые очень часто возникают у новичков:

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

Видео

Источник

Произошла ошибка при загрузке скетча Ардуино

Ошибки компиляции Arduino IDE возникают при проверке или загрузке скетча в плату, если код программы содержит ошибки, компилятор не может найти библиотеки или переменные. На самом деле, сообщение об ошибке при загрузке скетча связано с невнимательностью самого программиста. Рассмотрим в этой статье все возможные ошибки компиляции для платы Ардуино UNO R3, NANO, MEGA и пути их решения.

Ошибки компиляции для Arduino Nano, Uno, Mega

Самые простые ошибки возникают у новичков, кто только начинает разбираться с языком программирования Ардуино и делает первые попытки загрузить скетч. Если вы не нашли решение своей проблемы в статье, то напишите свой вопрос в комментариях к этой записи и мы поможем решить вашу проблему с загрузкой (бесплатно!).

avrdude: stk500_recv(): programmer is not responding

Что делать в этом случае? Первым делом обратите внимание какую плату вы используете и к какому порту она подключена (смотри на скриншоте в правом нижнем углу). Необходимо сообщить Arduino IDE, какая плата используется и к какому порту она подключена. Если вы загружаете скетч в Ардуино Nano V3, но при этом в настройках указана плата Uno или Mega 2560, то вы увидите ошибку, как на скриншоте ниже.

Ошибка Ардуино: programmer is not responding

Такая же ошибка будет возникать, если вы не укажите порт к которому подключена плата (это может быть любой COM-порт, кроме COM1). В обоих случаях вы получите сообщение — плата не отвечает ( programmer is not responding ). Для исправления ошибки надо на панели инструментов Arduino IDE в меню «Сервис» выбрать нужную плату и там же, через «Сервис» → «Последовательный порт» выбрать порт «COM7».

a function-definition is not allowed here before ‘<‘ token

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

Ошибка: a function-definition is not allowed here before ‘<‘ token

expected initializer before ‘>’ token / expected ‘;’ before ‘>’ token

Сообщение expected initializer before ‘>’ token говорит о том, что вы, наоборот где-то забыли открыть фигурную скобку. Arduino IDE даст вам подсказку, но если скетч довольно большой, то вам придется набраться терпения, чтобы найти неточность в коде. Ошибка при компиляции программы: expected ‘;’ before ‘>’ token говорит о том, что вы забыли поставить точку с запятой в конце командной строки.

‘что-то’ was not declared in this scope

Что за ошибка? Arduino IDE обнаружила в скетче слова, не являющиеся служебными или не были объявлены, как переменные. Например, вы забыли продекларировать переменную или задали переменную ‘DATA’, а затем по невнимательности используете ‘DAT’, которая не была продекларирована. Ошибка was not declared in this scope возникает при появлении в скетче случайных или лишних символов.

Ошибка Ардуино: was not declared in this scope

Например, на скриншоте выделено, что программист забыл продекларировать переменную ‘x’, а также неправильно написал функцию ‘analogRead’. Такая ошибка может возникнуть, если вы забудете поставить комментарий, написали функцию с ошибкой и т.д. Все ошибки также будут подсвечены, а при нескольких ошибках в скетче, сначала будет предложено исправить первую ошибку, расположенную выше.

exit status 1 ошибка компиляции для платы Arduino

Данная ошибка возникает, если вы подключаете в скетче библиотеку, которую не установили в папку libraries. Например, не установлена библиотека ИК приемника Ардуино: fatal error: IRremote.h: No such file or directory . Как исправить ошибку? Скачайте нужную библиотеку и распакуйте архив в папку C:Program FilesArduinolibraries. Если библиотека установлена, то попробуйте скачать и заменить библиотеку на новую.

exit status 1 Ошибка компиляции для платы Arduino Nano

Довольно часто у новичков выходит exit status 1 ошибка компиляции для платы arduino/genuino uno. Причин данного сообщения при загрузке скетча в плату Arduino Mega или Uno может быть огромное множество. Но все их легко исправить, достаточно внимательно перепроверить код программы. Если в этом обзоре вы не нашли решение своей проблемы, то напишите свой вопрос в комментариях к этой статье.

missing fqbn (fully qualified board name)

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

Источник

Что делать?

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

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

Существует две наиболее частые ситуации:

  1. Arduino IDE ругается, что не может найти указанный файл (No such file or directory). Это говорит о том, что нужно установить какую-то библиотеку. А со своими программами я всегда поставляю все необходимые библиотеки.
  2. Загрузка скетча подвисает, а потом выдает ошибку:
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe4
avrdude: stk500_recv(): programmer is not responding

1я ситуация разобрана здесь.

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

Дело в том, что Arduino IDE предполагает, что все современные Nano и UNO должны работать со скоростью
15200 бит в секунду. А китайские клоны до сих пор довольно часто работают со
скоростью в 2 раза меньше – 57600.

Решить эту проблему можно двумя способами:

  1. Обновить загрузчик на плате
  2. Добавить плату со старым загрузчиком в конфигурацию Arduino IDE

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

Итак, зайдите на компьютере в папку, в которую
установлена Arduino IDE. Лично у меня это, как
и большинства, “C:Program Files (x86)Arduino”, если Вы на Windows.

Теперь откройте папку hardwarearduinoavr и
найдите файл boards.txt

В этом файле и находятся все платы, которые Вы выбираете через меню «Инструменты > Плата…»

Выбор платы из списка

Откройте этот файл в текстовом редакторе,
например, в блокноте.

Найдите в нем строчку uno.upload.speed

Настройки плат ардуино

Мы видим, что скорость загрузки равно 115200.
Но у нас плата, которая хочет 57600!

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

Выход, получается, один – добавить плату,
скажем, UNO2,
на случай скорости 57600.

Предлагаю просто вставить себе мои настройки и сохранить файл:

uno2.name=Uno 57600

uno2.vid.0=0x2341
uno2.pid.0=0x0043
uno2.vid.1=0x2341
uno2.pid.1=0x0001
uno2.vid.2=0x2A03
uno2.pid.2=0x0043
uno2.vid.3=0x2341
uno2.pid.3=0x0243

uno2.upload.tool=avrdude
uno2.upload.protocol=arduino
uno2.upload.maximum_size=32256
uno2.upload.maximum_data_size=2048
uno2.upload.speed=57600

uno2.bootloader.tool=avrdude
uno2.bootloader.low_fuses=0xFF
uno2.bootloader.high_fuses=0xDE
uno2.bootloader.extended_fuses=0xFD
uno2.bootloader.unlock_bits=0x3F
uno2.bootloader.lock_bits=0x0F
uno2.bootloader.file=optiboot/optiboot_atmega328.hex

uno2.build.mcu=atmega328p
uno2.build.f_cpu=16000000L
uno2.build.board=AVR_UNO
uno2.build.core=arduino
uno2.build.variant=standard

##############################################################

nano2.name=Nano 57600

nano2.upload.tool=avrdude
nano2.upload.protocol=arduino

nano2.bootloader.tool=avrdude
nano2.bootloader.unlock_bits=0x3F
nano2.bootloader.lock_bits=0x0F

nano2.build.f_cpu=16000000L
nano2.build.board=AVR_NANO
nano2.build.core=arduino
nano2.build.variant=eightanaloginputs

## Arduino Nano w/ ATmega328P
## --------------------------
nano2.menu.cpu.atmega328=ATmega328P

nano2.menu.cpu.atmega328.upload.maximum_size=30720
nano2.menu.cpu.atmega328.upload.maximum_data_size=2048
nano2.menu.cpu.atmega328.upload.speed=57600

nano2.menu.cpu.atmega328.bootloader.low_fuses=0xFF
nano2.menu.cpu.atmega328.bootloader.high_fuses=0xDA
nano2.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
nano2.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex

Теперь у вас две платы UNO и две Nano:

Выбор платы ардуино в Arduino IDE

Удачи!


12-12-2020, 16:15
3 комментариев

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

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

  1. Программное обеспечение, т.е. Arduino IDE не может найти указанный файл. Выдается ошибка No such file or directory. Решить ее очень просто – следует перенести либо установить библиотеку в папку libraries – это важно (много раз об этом писали). Не забывайте затем перезагрузить ПО. Не рекомендуем выкладывать их в папку C:Program Files (x86)Arduinolibraries. Она при обновлении системы может быть очищена.
  2. Загрузка кодов зависает, выдается приблизительно такая ошибка: 

В этом случае решений может быть несколько. Для начала попробуйте проверить тип платы, которую вы выбрали. Если скетч создан для Nano, непременно переключите контроллер именно на него – стандартный UNO вам не подойдет. Второй шаг – проверяем выставленные параметры скорости (те же Уно и Нано функционируют в пределах 15200 бит). Прописать эти данные следует в конфигурациях приложения. Идем по такому пути:

  • Заходим в наше ПО, ищем папку hardwarearduinoavr > открываем файл boards.txt в текстовом формате, например, Блокноте на Windows.
  • Находим строку: 

В ней выставлены не те скоростные значения, что нам необходимы, но не спешите их менять – контроллеры бывают разные (как китайские, так и оригинальные). Лучше не удалять цифры, а добавить еще один микроконтроллер УНО. Заполняем файл:

uno2.name=Uno 57600
 
uno2.vid.0=0x2341
uno2.pid.0=0x0043
uno2.vid.1=0x2341
uno2.pid.1=0x0001
uno2.vid.2=0x2A03
uno2.pid.2=0x0043
uno2.vid.3=0x2341
uno2.pid.3=0x0243
 
uno2.upload.tool=avrdude
uno2.upload.protocol=arduino
uno2.upload.maximum_size=32256
uno2.upload.maximum_data_size=2048
uno2.upload.speed=57600
 
uno2.bootloader.tool=avrdude
uno2.bootloader.low_fuses=0xFF
uno2.bootloader.high_fuses=0xDE
uno2.bootloader.extended_fuses=0xFD
uno2.bootloader.unlock_bits=0x3F
uno2.bootloader.lock_bits=0x0F
uno2.bootloader.file=optiboot/optiboot_atmega328.hex
 
uno2.build.mcu=atmega328p
uno2.build.f_cpu=16000000L
uno2.build.board=AVR_UNO
uno2.build.core=arduino
uno2.build.variant=standard
 
##############################################################
 
nano2.name=Nano 57600
 
nano2.upload.tool=avrdude
nano2.upload.protocol=arduino
 
nano2.bootloader.tool=avrdude
nano2.bootloader.unlock_bits=0x3F
nano2.bootloader.lock_bits=0x0F
 
nano2.build.f_cpu=16000000L
nano2.build.board=AVR_NANO
nano2.build.core=arduino
nano2.build.variant=eightanaloginputs
 
## Arduino Nano w/ ATmega328P
## --------------------------
nano2.menu.cpu.atmega328=ATmega328P
 
nano2.menu.cpu.atmega328.upload.maximum_size=30720
nano2.menu.cpu.atmega328.upload.maximum_data_size=2048
nano2.menu.cpu.atmega328.upload.speed=57600
 
nano2.menu.cpu.atmega328.bootloader.low_fuses=0xFF
nano2.menu.cpu.atmega328.bootloader.high_fuses=0xDA
nano2.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
nano2.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex

Теперь у нас 2 устройства, в идеале все должно заработать!

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

Arduino не загружает скетч

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

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

  1. Программное обеспечение, т.е. Arduino IDE не может найти указанный файл. Выдается ошибка No such file or directory. Решить ее очень просто – следует перенести либо установить библиотеку в папку libraries – это важно (много раз об этом писали). Не забывайте затем перезагрузить ПО. Не рекомендуем выкладывать их в папку C:Program Files (x86)Arduinolibraries. Она при обновлении системы может быть очищена.
  2. Загрузка кодов зависает, выдается приблизительно такая ошибка:

В этом случае решений может быть несколько. Для начала попробуйте проверить тип платы, которую вы выбрали. Если скетч создан для Nano, непременно переключите контроллер именно на него – стандартный UNO вам не подойдет. Второй шаг – проверяем выставленные параметры скорости (те же Уно и Нано функционируют в пределах 15200 бит). Прописать эти данные следует в конфигурациях приложения. Идем по такому пути:

  • Заходим в наше ПО, ищем папку hardwarearduinoavr > открываем файл boards.txt в текстовом формате, например, Блокноте на Windows.
  • Находим строку:

В ней выставлены не те скоростные значения, что нам необходимы, но не спешите их менять – контроллеры бывают разные (как китайские, так и оригинальные). Лучше не удалять цифры, а добавить еще один микроконтроллер УНО. Заполняем файл:

Теперь у нас 2 устройства, в идеале все должно заработать!

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

Источник

Скетч не загружается в Ардуино. Что делать?

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

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

Существует две наиболее частые ситуации:

  1. Arduino IDE ругается, что не может найти указанный файл (No such file or directory). Это говорит о том, что нужно установить какую-то библиотеку. А со своими программами я всегда поставляю все необходимые библиотеки.
  2. Загрузка скетча подвисает, а потом выдает ошибку:

1я ситуация разобрана здесь.

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

Дело в том, что Arduino IDE предполагает, что все современные Nano и UNO должны работать со скоростью 15200 бит в секунду. А китайские клоны до сих пор довольно часто работают со скоростью в 2 раза меньше – 57600.

Решить эту проблему можно двумя способами:

  1. Обновить загрузчик на плате
  2. Добавить плату со старым загрузчиком в конфигурацию Arduino IDE

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

Итак, зайдите на компьютере в папку, в которую установлена Arduino IDE. Лично у меня это, как и большинства, “C:Program Files (x86)Arduino”, если Вы на Windows.

Теперь откройте папку hardwarearduinoavr и найдите файл boards.txt

В этом файле и находятся все платы, которые Вы выбираете через меню «Инструменты > Плата…»

Выбор платы из списка

Откройте этот файл в текстовом редакторе, например, в блокноте.

Найдите в нем строчку uno.upload.speed

Настройки плат ардуино

Мы видим, что скорость загрузки равно 115200. Но у нас плата, которая хочет 57600!

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

Выход, получается, один – добавить плату, скажем, UNO2, на случай скорости 57600.

Предлагаю просто вставить себе мои настройки и сохранить файл:

Теперь у вас две платы UNO и две Nano:

Выбор платы ардуино в Arduino IDE

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Arduino.ru

Почему не загружается скетч в Ардуино Нано?

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

Вот только что приобрел данный аппарат — Arduino Nano. Получив на почте, придя домой, я его СРАЗУ же подключил к ПК. Уже сначала было странно то, что небыло никаких сигналов подключения(звуковых, виндовских). После, я зашёл в среду разработки, выбрал порт COM1, тип ардуины(нано), какой там чип итд. Само собой все дрова я поставил, вот на этот раз прям постарался, просто FULL комплект, всё что можно скачал! Но, при запуске проверочного скетча «Blink» произошла «Проблема загрузки в плату». Зайдя в диспечер устройств, я не обнаружил новых подключений со стороны портов, то есть там только два: порт принтера и последовательный порт(COM1) — причём ошибко по типу «неопознанное устройство» в других вкладках небыло. И тут то я прифигел.

Дабы сократить текст, расскажу по пунктам все мои действия: (напомню-всё тестирую со стандартным скетчем Blink)
-Обновил ВСЕ дрова: мать, сата итд(на ардуино тоже(CH341, CH341g))
-Выбрал в IDE порт»COM1″, в борде нужную плату — нано328 что-то там.
-Попробовал подключиться к другому ПК, но там оказался закрытый порт, а дров нет:( Само собой проверить работоспособность — не удалось; но не знав о данной проблеме(закрытого порта) всё равно выдало ошибку.
-Ну и от безисходности перставлял с гнезда в гнездо, сздаи компа, USB шнур.

Просто как исправить всё это? Выдаёт такую ошибку:

avrdude: stk500_getsync(): not in sync: resp=0x00

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

Источник

Arduino ide загрузка скетча зависает

Здравствуйте, у меня проблема такая же как и всех.
Нано не хочет заливать скетчи
естественно покурив сайт Гайвера, изучив ошибки и скачав все дрова какие только нужны ничего не помогло.
пробовал и на вин7 и на вин10
далее
мания преследования паники и придумав себе что что-то с лодырем, нашел у знакомого загрузчик — стал лечить ардуинку.
USBasp тоже с дровами,определяется норм проводочками соединил нано и usbasp — не прошивается,не заливается

на нано при загрузке скетчей слабенько мигает диод RX

Arduino: 1.8.0 (Windows 10), Плата:»Arduino Nano, ATmega328P (Old Bootloader)»

Detecting libraries used.
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10800 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR «-IC:UserssokolmcAppDataLocalArduino15packagesarduinohardwareavr1.8.3coresarduino» «-IC:UserssokolmcAppDataLocalArduino15packagesarduinohardwareavr1.8.3variantseightanaloginputs» «C:UserssokolmcAppDataLocalTemparduino_build_745347sketchsketch_jun28a.ino.cpp» -o «nul»
Generating function prototypes.
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10800 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR «-IC:UserssokolmcAppDataLocalArduino15packagesarduinohardwareavr1.8.3coresarduino» «-IC:UserssokolmcAppDataLocalArduino15packagesarduinohardwareavr1.8.3variantseightanaloginputs» «C:UserssokolmcAppDataLocalTemparduino_build_745347sketchsketch_jun28a.ino.cpp» -o «C:UserssokolmcAppDataLocalTemparduino_build_745347preprocctags_target_for_gcc_minus_e.cpp»
«C:Program Files (x86)Arduinotools-builderctags5.8-arduino11/ctags» -u —language-force=c++ -f — —c++-kinds=svpf —fields=KSTtzns —line-directives «C:UserssokolmcAppDataLocalTemparduino_build_745347preprocctags_target_for_gcc_minus_e.cpp»
Компиляция скетча.
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fpermissive -f328p -DF_CPIC:UserssokolmcAppDataLocalArduino15packagesarduinohardwareavr1.8.3coresarduino» «-IC:UuggableUSB.cpp» -o «C:UserssokolDARDUINO=10800 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR «-IC:UserssokolmcDARDUINO=10800 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR «-IC:UserssokolmcAppDataLocalArduino15packagesarduinohardwareavr1.8.3coresarduino» «-IC:UserssokolmcAppDataLocalArduino15packagesarduinohardwareavr1.8.3variantseightanaloginputs» «C:UserssokolmcAppDataLocalArduino15packagesarduinohardwareavr1.8.3coresarduinonew.cpp» -o «C:UserssokolmcAppDataLocalTemparduino_build_745347corenew.cpp.o»
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar» rcs «C:UserssokolmcAppDataLocalTemparduino_build_745347corecore.a» «C:UserssokolmcAppDataLocalTemparduino_build_745347corewiring_pulse.S.o»
«C:UserssokolmcAppDataLocalTemparduino_build_745347corecore.a» «C:UserssokolmcAppDataLocalTemparduino_build_745347coreabi.cpp.o»
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar» rcs «C:UserssokolmcAppDataLocalTemparduino_build_745347corecore.a» «C:UserssokolmcAppDataLocalTemparduino_build_745347coremain.cpp.o»
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc-ar» rcs «C:UserssokolmcAppDataLocalTemparduino_build_745347corecore.a» «C:UserssokolmcAppDataLocalTemparduino_build_745347corenew.cpp.o»
Linking everything together.
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-gcc» -w -Os -g -flto -fuse-linker-plugin -Wl,—gc-sections -mmcu=atmega328p -o «C:UserssokolmcAppDataLocalTemparduino_build_745347/sketch_jun28a.ino.elf» «C:UserssokolmcAppDataLocalTemparduino_build_745347sketchsketch_jun28a.ino.cpp.o» «C:UserssokolmcAppDataLocalTemparduino_build_745347/corecore.a» «-LC:UserssokolmcAppDataLocalTemparduino_build_745347» -lm
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy» -O ihex -j .eeprom —set-section-flags=.eeprom=alloc,load —no-change-warnings —change-section-lma .eeprom=0 «C:UserssokolmcAppDataLocalTemparduino_build_745347/sketch_jun28a.ino.elf» «C:UserssokolmcAppDataLocalTemparduino_build_745347/sketch_jun28a.ino.eep»
«C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavr-gcc7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy» -O ihex -R .eeprom «C:UserssokolmcAppDataLocalTemparduino_build_745347/sketch_jun28a.ino.elf» «C:UserssokolmcAppDataLocalTemparduino_build_745347/sketch_jun28a.ino.hex»
Скетч использует 444 байт (1%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavrdude6.3.0-arduino17/bin/avrdude -CC:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavrdude6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM26 -b57600 -D -Uflash:w:C:UserssokolmcAppDataLocalTemparduino_build_745347/sketch_jun28a.ino.hex:i

avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is «C:UserssokolmcAppDataLocalArduino15packagesarduinotoolsavrdude6.3.0-arduino17/etc/avrdude.conf»

Using Port : COM26
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x6c
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x6c

Источник

Arduino.ru

Ошибки при загрузке скетча

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

Добрый день, друзья.

После покупки не удается загрузить даже первый скетч. Приобрел первую для себя Arduino, до этого не сталкивался. Установил программу, драйвер, попробовал стандартный скетч — выдало ошибку. Не исключил, что где-нибудь налажал. Нашел видео (http://www.jeremyblum.com/2011/01/02/arduino-tutorial-series-it-begins/) , выполнил все строка в строку — результат аналогичный.

То ли все-таки что-то не то делаю, то ли купил бракованую плату. Надеюсь, все-таки, на первое.

При загрузке скетча достаточно долго «думает», а потом выдает следующее:

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

Arduino Mega 2560, подключен напрямую без удлинителя

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

Давайте рассуждать логически.

Вы выполнили строчка в строчку всё, как в тюториале, однако блинк у Вас не моргает, ну да, он у Вас даже не загружается. Тогда скажите, на каком именно этапе у Вас различия с Джереми Блюмом? Вы видите свою плату в списке устройств после установки драйверов? Какая у Вас операционная система (а также 32 или 64 бита)? Вероятно Вы подключили (без удлинителя) — USB кабель? Светодиоды у Вас так же моргали и моргают, как и при первом включении?

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

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

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

Различие с Блюмом начинается с момента загрузки — вроде бы описал этот момент ранее.

Свою плату в списке устройств вижу, вот, собственно:

Подключил без удлинителя USB-кабель (под стол без него не особо удобно нырять, но чтобы не грешить на лишнее звено, исключил пока удлинитель).

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

updated: свое устройство в списке устройств выбрал в IDE.

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

Поставьте галочку и покажите вывод.

«Файл->Настройки->Показывать подробный вывод при загрузке»

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

Воот, а теперь начинается самое главное, вынос мозга местных телепатов вопросами новичка :)
Я шучу, но в каждой шутке есть доля шутки :)
Удачи!

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

Размер скетча в двоичном коде: 1 632 байт (из 258 048 байт максимум)

У меня такая же ошибка на маке

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

Здравствуйте.
Я новичок в Ардуино.
И вот моя первая потытка это вот такие ошибки компиляции.

Arduino: 1.8.19 (Windows 7), Плата:»Arduino Uno WiFi»

Скетч использует 444 байт (1%) памяти устройства. Всего доступно 32256 байт.

Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.

Произошла ошибка при загрузке скетча

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x69

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

void setup() <
// put your setup code here, to run once:

void loop() <
// put your main code here, to run repeatedly:

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

А если включить мозг и попробовать перевести на русский :»programmer is not responding»
Может тогда появится мысль , что код тут не при чем ?
Можно ещё не здесь спросить , а допустим у Яндекса, в чем дело .
С подобной проблемой сталкиваются примерно 50% начинающих. Она уже обсасывалась и решалась 100500 раз.
Решить ещё раз для вас персонально ?

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

Кроме стандартных манипуляций, о которых действительно писано-переписано, дополнительно у этого монстра «Arduino Uno WiFi» ещё какие-нибудь переключатели на борту есть — проверить надо, правильно ли установлены. И, как показал мой личный опыт в попытках использовать подобное устройство, «купил бракованую плату» тоже нельзя исключать. У них похоже что два устройства в одном — в два раза хуже качество.

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

Я сделал все что нашел и в Яндексе и Гугле.

И драйвера китайские поставил и порт СОМ3 и скорость обмена 111500 вместо 9600, и 9600 тоже ставил.

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

Я не нашел как должны стоять переключатели.

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

Если можно персонально, то я буду благодарен.

Я все что прочитал все попробовал.

На большее знаний не хватило.

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

Если поможете, то заранее вас благодарю.

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

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

Может все таки пора уже попробовать по WiFi загрузку проверить ?

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

А он не виден в списке.

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

Я не нашел как должны стоять переключатели.

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

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

Да я нашел на амперке. Перепробовал все варианты, но увы. Ни вайфай ни провод ни дали результата.

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

Да я нашел на амперке. Перепробовал все варианты, но увы. Ни вайфай ни провод ни дали результата.

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

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

Да мне эту ссылку на форуме и дали.

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

Вы дайте ссылку на СВОЙ агрегат. Где-то ж вы его купили? Вот ссылку на этот лот и давайте

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

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

Раз плата не определяется компом — может там загрузчик слетел? На плате есть ISP разьем, попробуйте прошить через него. Только не перепутайте, их там два, вам нужен тот что для атмегт328, он в дальней от usb части платы

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

Евгений, ОЧЕНЬ ВАЖНЫЙ ВОПРОС! — у вас именно такая плата, как по ссылке, или «немножко другая»?

Выше вы пишете про переключатели — на этой плате их нет. У вас они есть или нет?

Отвечайте четко, не морочьте голову.

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

Про переключатели это я его спросил, так как до этого на Алике мне эти комбайны только с переключателями попадались, что меги, что уны. А оказывается вон и другие есть. Про оригинальную ARDUINO UNO WiFi REV2 в инструкции написано, что эту плату в IDE ещё отдельно добавить нужно, а не просто UNO выбирать. Так что да, лучше бы автор поконкретнее пальцем ткнул — я купил точно вот это точно вот здесь.

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

kalapanga

А чё за переключатели?

Это на самой плате?

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

Вот что конкретно я купил.

Цвет: UNO R3 WIFI-Cable

Последний из 8-ми вариантов.

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

А это фото.

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

В описании продавца есть таблица:

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

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

Так же значит справедливо и моё замечание о качестве этих устройств.

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

Спасибо. Я перепробовал все варианты. Скорее всего что-то с прошивкой.

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

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

Ещё можно попробовать достучаться до этого чуда через программатор, используя в качестве программатора другую ардуину с залитым скетчем ArduinoISP. Может удастся хоть как-то плату использовать.

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

kalapanga, что ты отнего хочешь? Посмотри — он реагирует как ленивец из мультика. От вопроса «Что вы купили?» до ответа прошло 5 дней. От того как ему дали табличку переключателя до отчета — 9 дней.

И сами ответы все вялые и ниочем. Человек не живет, а спит. Нафига ему какая-то ардуина.

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

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

Ещё можно попробовать достучаться до этого чуда через программатор, используя в качестве программатора другую ардуину с залитым скетчем ArduinoISP. Может удастся хоть как-то плату использовать.

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

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

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

а две недели назад этого сказать нельзя было?

раз комп видит ардуину — переключатели не при чем, подключайте программатор на ISP-разъем и перезаливайте загрузчик.

И постарайтесь как-то болше проявлять инициативы, а то ощущение, что мы все вокруг суетимся, а вам это нафик не нужно

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

Спасибо за комплимент.

Только я на двух работах работаю и спать мне некогда.

А к компу подхожу когда силы на это есть.

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

Все что мне написали, кроме того что я сплю как ленивец, на момент ответа уже проверил.

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

Вот такие вкратце дела.

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

А подскажите дорогие форумчане, по поводу программирования где можно пообщаться?

Здесь, или в другой рубрике?

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

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

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

Я хочу для начала с помощью АРДУИНО две задачи решить.

1. У меня есть курятник. И мне нужно что бы вентиляшка включалась по уровню аммиака.

2. Хочу модернизировать газовый накопительный водонагреватель.

В нем придется учитывать а) давление газовой магистрали

б) температуру воды в емкости

в) температуру выхлопных газов

г) наличие пламени

и еще по мелочам.

Вот почему я заинтересовался АРДУИНкой

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

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

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

А подскажите дорогие форумчане, по поводу программирования где можно пообщаться?

Здесь, или в другой рубрике?

Оцените сами свой вопрос, который собираетесь задать. Если он «детский», от начинающего, то лучше задать его в разделе «Песочница» (хоть по программированию, хоть по железу). Более серьёзные именно в этой — «Программирование». Вам для реализации хотелок видимо датчики разные потребуются. Их работу в «Аппаратном» разделе обсуждать можно. Сама вот эта тема не совсем сюда подходит. Она или «Аппаратная» или «Общая». Но тема старая, ей уже всё равно.

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

2. Хочу модернизировать газовый накопительный водонагреватель.

Тогда по программированию можешь форумы не искать, проживёшь дольше.

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

А ты профессиональный киллер?

Я должен сейчас испугаться?

Я просил помощи по языку программирования, а у меня люди просят помощи по системам газоснабжения, отопления и вентиляции.

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

А ты профессиональный киллер?

Дануштоты. Я профессиональный демотиватор. Просто я хочу чтоб в Курске не исчезло с карты одно домохозяйство с курятником.

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

Я просил помощи по языку программирования, а у меня люди просят помощи по системам газоснабжения, отопления и вентиляции.

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

А то спросит новичок про автоматизацию котла какого-нибудь и пропадает потом. Гадай, что с ним случилось! :)

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

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

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

А то спросит новичок про автоматизацию котла какого-нибудь и пропадает потом. Гадай, что с ним случилось! :)

чо гадать-то, новости все смотрим.

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

А подскажите дорогие форумчане, по поводу программирования где можно пообщаться?

Здесь, или в другой рубрике?

Оцените сами свой вопрос, который собираетесь задать. Если он «детский», от начинающего, то лучше задать его в разделе «Песочница» (хоть по программированию, хоть по железу). Более серьёзные именно в этой — «Программирование». Вам для реализации хотелок видимо датчики разные потребуются. Их работу в «Аппаратном» разделе обсуждать можно. Сама вот эта тема не совсем сюда подходит. Она или «Аппаратная» или «Общая». Но тема старая, ей уже всё равно.

Спасибо. Я видимо не умею пользоваться форумами. Но программирование худо-бедно знаю. Я не плохо знаю Pascal, но С++ все же отличается, да и в добавок это не чистый С++. Поэтому у меня и вопросы.

Источник

Бывает, что пишешь программы для Ардуино, загружаешь их в память, и всё прекрасно работает. А потом вдруг — раз — и они больше не загружаются. А среда разработки при попытке загрузить скетч выдаёт ошибку: «arduino avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x30». Что такое? Неужели сгорела плата? Не торопитесь отчаиваться: возможно, ещё не всё потеряно. Давайте разбираться.

Инструкция по поиску причины ошибки Arduino «not in sync: resp=0x30»

Ардуино не программируется, хотя раньше всё работало. Попытка загрузить скетч в память заканчивается вот таким сообщением IDE: «not in sync: resp=0x30».

Ошибка "not in sync: resp=0x30" в IDE Arduino

Ошибка «not in sync: resp=0x30» в IDE Arduino

Для такого поведения возможны несколько причин:

  • по какой-то причине произошёл сбой драйвера;
  • неправильно выбран COM-порт;
  • где-то есть электрическая связь, которой быть не должно (короткое замыкание);
  • произошёл сбой загрузчика (bootloader) платы Arduino.

Давайте пройдёмся по всем пунктам этого списка, пока не устраним проблему.

1Причина 1 Сбой драйвера

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

Находим и раскрываем в диспетчере раздел Порты (COM и LPT). Если драйвер установлен и работает корректно, никаких оверлейных значков типа вопросительного или восклицательного знака на пиктограмме устройства Ардуино быть не должно. Если такие значки имеются, значит, есть проблемы в работе драйвера. Если Arduino или устройства USB-Serial вообще нет в этом разделе диспетчера, значит драйвер даже не установлен. В любом из этих случаев драйвер необходимо установить (или переустановить).

В диспетчере устройств выбираем нашу плату Arduino (или неизвестное устройство, которое появляется при подключении платы Arduino к компьютеру), нажмём на него правой кнопкой мыши и в контекстном меню выберем пункт Обновить драйверы… (Update drivers…).

Arduino в диспетчере устройств

Arduino в диспетчере устройств Windows

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

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

2Причина 2 Неверно выбран COM-порт

Проверим, что правильно указали COM-порт в IDE Arduino. Проверить, какой порт присвоен системой нашей плате Ардуино можно в диспетчере устройств Windows. Платы Arduino находятся в разделе Порты (COM и LPT) и определяются обычно как устройства Arduino или USB-Serial.

В среде разработки Arduino идём в меню Инструменты Порт и убеждаемся, что указан верный порт. Если нет, указываем нужный.

Указываем COM-порт в IDE Arduino

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

3Причина 3 Замыкание или несанкционированное соединение

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

Также к этому типу причин я бы отнёс подключение несанкционированных проводов к выводам 0 и 1 платы Ардуино, которые являются портами RX и TX и используются в процессе загрузки скетча в память платы.

4Причина 4 Сбой загрузчика

Если ничего из перечисленного не помогло, попробуем ещё один вариант: перезапишем загрузчик платы (bootloader).

Загрузчик – это специальная управляющая программа для Arduino, которая исполняется при включении устройства и которая задаёт режим работы платы: либо переходит к исполнению программы из памяти Arduino, либо к процедуре программирования компьютером. Загрузчики для всех поддерживаемых плат Arduino хранятся в папке c IDE в поддиректории hardwarearduinoavr и представляют собой бинарные hex-файлы.

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

Схема подключения программатора к Arduino

Схема подключения программатора к Arduino

После подключения программатора в среде программирования Ардуино в меню Инструменты Программатор указываем тип нашего программатора. Например, USBasp. Теперь в том же меню Инструменты выбираем пункт Записать Загрузчик. Этот процесс не занимает много времени.

Если операция прошла успешно, IDE сообщит об этом. А плата Ардуино радостно замигает светодиодом на 13-ом выводе, т.к. в неё, кроме загрузчика, записан скетч по умолчанию – скетч мигания светодиодом Blink.

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

Понравилась статья? Поделить с друзьями:
  • Произошла ошибка при загрузке скетча avrdude stk500 recv programmer is not responding
  • Произошла ошибка пожалуйста сделайте скриншот этого окна амазинг рп
  • Произошла ошибка при загрузке скетча arduino uno
  • Произошла ошибка пожалуйста попробуйте позже telegram
  • Произошла ошибка при загрузке скетча arduino nano