Произошла ошибка при загрузке скетча на ардуино нано.
Offline
Зарегистрирован: 28.03.2018
Мое Ардуино нано постоянно выдает ошибку при загрузке скетча, даже скопированного с интернета.
Вот текст ошибки:
Скетч использует 1906 байт (6%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 185 байт (9%) динамической памяти, оставляя 1863 байт для локальных переменных. Максимум: 2048 байт.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0d
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0a
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x5e
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x44
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x53
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x46
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x4c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x4f
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x57
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x52
Произошла ошибка при загрузке скетча
Пожалуйста помогите, я новичок.
-
#1
АХТУНГ!
Вставка от модератора:
Подробное руководство по загрузке прошивки в Ардуино от Алекса Гайвера:
Прежде чем строчить сообщения, внимательно ознакомьтесь!!!
=================================================================================================
Arduino: 1.8.8 (Windows 7), Плата:»Arduino Nano, ATmega328P»
Скетч использует 14462 байт (47%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 776 байт (37%) динамической памяти, оставляя 1272 байт для локальных переменных. Максимум: 2048 байт.
Неверная библиотека найдена в C:UsersДимаDocumentsArduinolibrariesconvert: нет заголовочных файлов (.h), найденных в C:UsersДимаDocumentsArduinolibrariesconvert
Неверная библиотека найдена в C:UsersДимаDocumentsArduinolibrariesexamples: нет заголовочных файлов (.h), найденных в C:UsersДимаDocumentsArduinolibrariesexamples
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x83
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x83
Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .
Неверная библиотека найдена в C:UsersДимаDocumentsArduinolibrariesconvert: нет заголовочных файлов (.h), найденных в C:UsersДимаDocumentsArduinolibrariesconvert
Неверная библиотека найдена в C:UsersДимаDocumentsArduinolibrariesexamples: нет заголовочных файлов (.h), найденных в C:UsersДимаDocumentsArduinolibrariesexamples
Неверная библиотека найдена в C:UsersДимаDocumentsArduinolibrariesconvert: нет заголовочных файлов (.h), найденных в C:UsersДимаDocumentsArduinolibrariesconvert
Неверная библиотека найдена в C:UsersДимаDocumentsArduinolibrariesexamples: нет заголовочных файлов (.h), найденных в C:UsersДимаDocumentsArduinolibrariesexamples
Изменено: 19 Мар 2020
-
#3
При загрузке скетча,выдает ошибку загрузки в плату — что делать? (пытаюсь собрать подсветку монитора)
Arduino: 1.8.8 (Windows 7), Плата:»Arduino Nano, ATmega328P»
In file included from C:AmbilightGyver_Ambilight_v1.2Gyver_Ambilight_v1.2.ino:26:0:
C:Program Files (x86)ArduinolibrariesFastLED-master/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005
# pragma message «FastLED version 3.001.005»
^
Скетч использует 6000 байт (19%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 577 байт (28%) динамической памяти, оставляя 1471 байт для локальных переменных. Максимум: 2048 байт.
avrdude: ser_open(): can’t open device «\.COM3»: Отказано в доступе.
Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
-
#4
@Devastator, порт занят другой программой, возможно Ардулайт или как там её
-
#5
Подскажите,что делать
Сменил порт,попытался снова загрузить скетч — Теперь выдало вот это:
Arduino: 1.8.8 (Windows 7), Плата:»Arduino Nano, ATmega328P»
In file included from C:AmbilightGyver_Ambilight_v1.2Gyver_Ambilight_v1.2.ino:26:0:
C:Program Files (x86)ArduinolibrariesFastLED-master/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005
# pragma message «FastLED version 3.001.005»
^
Скетч использует 6000 байт (19%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 577 байт (28%) динамической памяти, оставляя 1471 байт для локальных переменных. Максимум: 2048 байт.
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
Произошла ошибка при загрузке скетча
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Справился,в место Arduino: 1.8.8 поставил Arduino: 1.8.2
-
#8
Всем доброго времени суток.
Решил сделать систему автополива, собрал и стал загружать прогу на ардуино нано, а он мне вот такую ошибку.
Помогите пожалуйста
-
162.2 KB
Просмотры: 279
-
#10
Изменил, теперь только черные буквы и сверху надпись завершена. А дисплей по прежнему Синий, но после покрутил и теперь на синем фоне белые квадраты в две строчки. Энкодер ещё не ставил.
Что делать не знаю
-
#12
Спасибо, уже нашёл.
Сейчас пойду рыться в коде
-
#13
Привет! Пробую сделать цветомузыку по твоей схеме. Сперва при загрузке скетча вылезла такая ошибка:
Разобрался с ней через переключение процессора на версию Old Bootloader.
Но далее при компиляции прошивки выскакивают такие строки:
In file included from D:ColorMusic-masterfirmwarecolorMusic_v2.9colorMusic_v2.9.ino:200:0:
C:UsersProfessionalDocumentsArduinolibrariesFastLED/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.008
# pragma message «FastLED version 3.001.008»
^
Скетч использует 20990 байт (68%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 972 байт (47%) динамической памяти, оставляя 1076 байт для локальных переменных. Максимум: 2048 байт.
Это норм или снова что-то не в порядке?
Заранее спасибо!
Изменено: 1 Апр 2019
-
#14
Не могу понять почему не могу прошить , вроде драйвер 340 поставил
-
#16
@long, плату arduino nano выбрал?
да , поставил
-
#18
@long, не знаю. Я всегда драйвера качаю с сайтов производителей
-
#19
@long, не знаю. Я всегда драйвера качаю с сайтов производителей
а можешь скинуть сайт ?
-
#21
Кто-то сталкивался с проблемой
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe0 ??
-
175.9 KB
Просмотры: 72
-
#22
Что делать ?
Arduino: 1.8.8 (Windows 7), Плата:»Arduino Nano, ATmega328P»
In file included from E:игры пашиARDUINOбиблиотекиColorMusic-masterfirmwarecolorMusic_v2.9colorMusic_v2.9.ino:200:0:
C:Program Files (x86)ArduinolibrariesFastLED-master/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.008
# pragma message «FastLED version 3.001.008»
^
Скетч использует 20996 байт (68%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 966 байт (47%) динамической памяти, оставляя 1082 байт для локальных переменных. Максимум: 2048 байт.
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
Произошла ошибка при загрузке скетча
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
-
#23
У меня тоже самое, проект светомузыка от Алекса Гувера
In file included from C:ColorMusic-masterfirmwarecolorMusic_v2.10colorMusic_v2.10.ino:200:0: C:Program FilesArduinolibrariesFastLED-master/FastLED.h:17:21
Что делать,то?
-
#24
У меня тоже самое, проект светомузыка от Алекса Гувера
In file included from C:ColorMusic-masterfirmwarecolorMusic_v2.10colorMusic_v2.10.ino:200:0: C:Program FilesArduinolibrariesFastLED-master/FastLED.h:17:21Что делать,то?
https://vk.com/topic-97877471_36099125
-
#25
In file included from C:ColorMusic-masterfirmwareOld versionscolorMusic_v2.9colorMusic_v2.9.ino:200:0:
C:Program FilesArduinolibrariesFastLED-master/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.008
# pragma message «FastLED version 3.001.008»
Проект светомузыка Алекса.
Проекты другие без проблем заливаю а на этом проекте (pragma message «FastLED version 3.001.008»)
что делать то? Два часа бьюсь(((((
СОДЕРЖАНИЕ ►
- Произошла ошибка при загрузке скетча в Ардуино
- 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, то вы увидите ошибку, как на скриншоте ниже.
Такая же ошибка будет возникать, если вы не укажите порт к которому подключена плата (это может быть любой COM-порт, кроме COM1). В обоих случаях вы получите сообщение — плата не отвечает (programmer is not responding). Для исправления ошибки надо на панели инструментов Arduino IDE в меню «Сервис» выбрать нужную плату и там же, через «Сервис» → «Последовательный порт» выбрать порт «COM7».
a function-definition is not allowed here before ‘{‘ token
Это значит, что в скетче вы забыли где-то закрыть фигурную скобку. Синтаксические ошибки IDE тоже распространены и связаны они просто с невнимательностью. Такие проблемы легко решаются, так как Arduino IDE даст вам подсказку, стараясь отметить номер строки, где обнаружена ошибка. На скриншоте видно, что строка с ошибкой подсвечена, а в нижнем левом углу приложения указан номер строки.
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 возникает при появлении в скетче случайных или лишних символов.
Например, на скриншоте выделено, что программист забыл продекларировать переменную ‘x’, а также неправильно написал функцию ‘analogRead’. Такая ошибка может возникнуть, если вы забудете поставить комментарий, написали функцию с ошибкой и т.д. Все ошибки также будут подсвечены, а при нескольких ошибках в скетче, сначала будет предложено исправить первую ошибку, расположенную выше.
exit status 1 ошибка компиляции для платы Arduino
Данная ошибка возникает, если вы подключаете в скетче библиотеку, которую не установили в папку libraries. Например, не установлена библиотека ИК приемника Ардуино: fatal error: IRremote.h: No such file or directory. Как исправить ошибку? Скачайте нужную библиотеку и распакуйте архив в папку C:Program FilesArduinolibraries. Если библиотека установлена, то попробуйте скачать и заменить библиотеку на новую.
Довольно часто у новичков выходит exit status 1 ошибка компиляции для платы arduino uno /genuino uno. Причин данного сообщения при загрузке скетча в плату Arduino Mega или Uno может быть огромное множество. Но все их легко исправить, достаточно внимательно перепроверить код программы. Если в этом обзоре вы не нашли решение своей проблемы, то напишите свой вопрос в комментариях к этой статье.
missing fqbn (fully qualified board name)
Ошибка возникает, если не была выбрана плата. Обратите внимание, что тип платы необходимо выбрать, даже если вы не загружаете, а, например, делаете компиляцию скетча. В Arduino IDE 2 вы можете использовать меню выбора:
— список плат, которые подключены и были идентифицированы Arduino IDE.
— или выбрать плату и порт вручную, без подключения микроконтроллера.
-
Добрый день, я впервые решил использовать Arduino и выбрал для этого создание автоматической кормушки для животных: по этой ссылке (Делаю самую первую). Все устройства подключил и библиотеки тоже, но при загрузке мне выдает такую ошибку (см. изображение). Подскажите как сделать, чтоб работало (я полный профан в этом вопросе)?
Вложения:
Последнее редактирование: 20 май 2020
-
-
Драйвера ставили? COM порт выбирали?
-
Файл -> Настройки ->Показать подробный вывод: Компиляция + Загрузка.
Ошибку в сообщение как код/цитата. -
для начала выложить сообщение об ошибке как текст, а не как картинку, на которой ничего невозможно прочитать…
-
Добавил процесс компиляции в текстовом виде
-
Не могли бы вы подсказать как это сделать?
-
вот здесь — пункты 3 и 4. http://wiki.amperka.ru/установка-и-настройка-arduino-ide
если после подключения к компу в диспетчере устройств ардуина не появляется — значит либо сломан провод либо сама ардуина
если появляется что-то вроде «неизвестное устройство» или типа того — значит что-то с драйверомну конечно — порт не выбран. См пункт 4 по ссылке выше. ну или если там ничего кроме COM1 нету — значит что-то сломано (провод или ардуина или драйвер) -
Я так понимаю, вставить как код/цитата я кому-то другому сказал?
-
до загрузки даже дело не дошло. Может для начала предмет изучить? Ну хотя бы бегло?
-
ну конечно — порт не выбран. См пункт 4 по ссылке выше. ну или если там ничего кроме COM1 нету — значит что-то сломано (провод или ардуина или драйвер)[/QUOTE]
Я подключаю кабель (обычный от телефона же подойдет?), затем в диспетчере устройств он отображается как просто USB-Device. Проблема в самой плате iskra nano pro? -
Вы драйвер на CH340 установили? Должно отображаться как USB-SERIAL CH340. Драйвер на китайском сайте производителя CH340 http://www.wch.cn/downloads/file/65.html
СОДЕРЖАНИЕ ►
- Произошла ошибка при загрузке скетча в Ардуино
- 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, то вы увидите ошибку, как на скриншоте ниже.
Такая же ошибка будет возникать, если вы не укажите порт к которому подключена плата (это может быть любой COM-порт, кроме COM1). В обоих случаях вы получите сообщение — плата не отвечает (programmer is not responding). Для исправления ошибки надо на панели инструментов Arduino IDE в меню «Сервис» выбрать нужную плату и там же, через «Сервис» → «Последовательный порт» выбрать порт «COM7».
a function-definition is not allowed here before ‘{‘ token
Это значит, что в скетче вы забыли где-то закрыть фигурную скобку. Синтаксические ошибки IDE тоже распространены и связаны они просто с невнимательностью. Такие проблемы легко решаются, так как Arduino IDE даст вам подсказку, стараясь отметить номер строки, где обнаружена ошибка. На скриншоте видно, что строка с ошибкой подсвечена, а в нижнем левом углу приложения указан номер строки.
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 возникает при появлении в скетче случайных или лишних символов.
Например, на скриншоте выделено, что программист забыл продекларировать переменную ‘x’, а также неправильно написал функцию ‘analogRead’. Такая ошибка может возникнуть, если вы забудете поставить комментарий, написали функцию с ошибкой и т.д. Все ошибки также будут подсвечены, а при нескольких ошибках в скетче, сначала будет предложено исправить первую ошибку, расположенную выше.
exit status 1 ошибка компиляции для платы Arduino
Данная ошибка возникает, если вы подключаете в скетче библиотеку, которую не установили в папку libraries. Например, не установлена библиотека ИК приемника Ардуино: fatal error: IRremote.h: No such file or directory. Как исправить ошибку? Скачайте нужную библиотеку и распакуйте архив в папку C:Program FilesArduinolibraries. Если библиотека установлена, то попробуйте скачать и заменить библиотеку на новую.
Довольно часто у новичков выходит exit status 1 ошибка компиляции для платы arduino uno /genuino uno. Причин данного сообщения при загрузке скетча в плату Arduino Mega или Uno может быть огромное множество. Но все их легко исправить, достаточно внимательно перепроверить код программы. Если в этом обзоре вы не нашли решение своей проблемы, то напишите свой вопрос в комментариях к этой статье.
missing fqbn (fully qualified board name)
Ошибка возникает, если не была выбрана плата. Обратите внимание, что тип платы необходимо выбрать, даже если вы не загружаете, а, например, делаете компиляцию скетча. В Arduino IDE 2 вы можете использовать меню выбора:
— список плат, которые подключены и были идентифицированы Arduino IDE.
— или выбрать плату и порт вручную, без подключения микроконтроллера.
Что делать?
С такой проблемой сталкиваются довольно
часто. Причем даже те, кто уже имел неплохой опыт программирования ардуино.
Понятное дело, что первое, что приходит на ум
заказчику – ошибка в моей программе, за что поначалу мне было немного обидно.
Существует две наиболее частые ситуации:
- Arduino IDE ругается, что не может найти указанный файл (No such file or directory). Это говорит о том, что нужно установить какую-то библиотеку. А со своими программами я всегда поставляю все необходимые библиотеки.
- Загрузка скетча подвисает, а потом выдает ошибку:
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.
Решить эту проблему можно двумя способами:
- Обновить загрузчик на плате
- Добавить плату со старым загрузчиком в конфигурацию 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 uno
- Для чего нужна функция void setup()
- Ошибка exit status 1 при компиляции для плат uno, mega и nano
- Синтаксис void setup()
- Ошибки библиотек
- Ошибки компилятора Ардуино
- Примеры void setup()
- Основные ошибки
- Ошибка: «avrdude: stk500_recv(): programmer is not responding»
- Ошибка: «No such file or directory / exit status 1»
Синтаксические ошибки
Arduino — одна из самых удобных сред для начинающих инженеров, особенно программистов, потому что им не нужно проектировать свои системы управления и выполнять множество других действий.
Сразу после покупки они получают готовый набор библиотек на C99 и возможность при необходимости извлекать необходимые модули в открытых источниках.
Но и здесь не избежать многих проблем, которые знает каждый программист, и одна из самых неприятных — это ошибка компиляции платы Arduino nano, с которой вам придется столкнуться не один раз. Что означает эта линия, каковы причины ее появления, а главное, как быстро решить эту проблему?
Для начала стоит немного погрузиться в теорию, чтобы понять причину появления этой строчки с текстом и не грешить лишний раз, что Arduino uno не видит компьютер.
Как вы понимаете, компиляция означает преобразование кода C в машинный (двоичный) формат и преобразование нескольких функций в простые операции, чтобы их можно было выполнять через операнды встроенного процессора. Все это звучит достаточно просто, но сам процесс сборки намного сложнее, и поэтому во время этого процесса может возникнуть ошибка по десяткам причин.
Все мы привыкли, что код никогда не запускается с первого раза, и когда мы пытаемся запустить его в интерпретаторе, выскакивает десяток ошибок, которые нужно оперативно исправлять. Компилятор работает аналогично, за исключением того, что не всегда указываются причины ошибок. Поэтому рекомендуется сначала протестировать код в среде разработки, а уже потом начинать компилировать его в исполняемые файлы под Arduino.
Мы выяснили, к чему приводит этот процесс, давайте выясним, как это происходит:
- Первое, что делает компилятор, это загружает все включенные файлы, а также изменяет определенные определения на указанное для них значение. Следовательно, это необходимо, чтобы синтаксический синтаксический анализатор не проходил через один и тот же код несколько раз. Кроме того, в зависимости от среды компилятор может заменять функции вместо их объявления или делать это после передачи синтаксическим анализатором. В случае с C99 используется второй вариант реализации, но это не так важно.
- Затем проверьте основной синтаксис. Этот процесс выполняется в исходном скомпилированном файле, и какой-то парсер проверяет, были ли указанные функции описаны выше, подключены ли необходимые библиотеки и так далее. Он также проверяет, приводятся ли типы данных к определенным значениям для правильности. Не забывайте, что C99 использует строгую явную типизацию, и вы не можете помещать какие-либо буквальные значения в объявленную целочисленную строку. Если это замечено, сразу отобразится ошибка.
- В зависимости от среды разработки иногда можно протестировать код, который теперь будет скомпилирован в последний раз, запустив интерпретатор соответствующим образом.
- Последний представляет собой стек различных операций по преобразованию функций, базовых операндов и прочего в двоичный код, что может занять некоторое время. Кроме того, вся файловая структура переносится в исполняемый файл exe-шники и на этом компиляция завершается.
Как видите, процесс не так прост, как задумано, и в любой момент может возникнуть какая-то ошибка, которая прервет компиляцию. Проблема в том, что, в отличие от первых трех этапов, ошибки на последнем часто неявны, но все же не связаны с алгоритмом и логикой программы. В результате на их ремонт и очистку уходит гораздо больше времени.
Но синтаксические ошибки являются наиболее частой причиной возникновения ошибки компиляции платы Arduino nano в состоянии выхода 1. В этом случае процесс отладки часто бывает чрезвычайно простым.
Вам будет показана ошибка и строка, а также подсказка от оператора EXCEPTION, который не понравился синтаксическому анализатору. Будь то запятая или незамкнутые функциональные скобки, проблема загрузки в плату Arduino все равно возникнет.
Решение предельно простое и логичное: найти и исправить синтаксис, который не нравится машине. Часто эти сообщения появляются группами, как при тестировании, так и при компиляции, поэтому можно «заблокировать» разработку более одного раза.
Не бойтесь этого — это нормальный процесс. Все претензии отображаются на английском языке, например, часто можно увидеть следующее: не было заявлено в этой области. Что это за ошибка ардуино — на самом деле ответ уже скрыт в сообщении. Функция или переменная просто не были объявлены в области видимости.
Ошибки компиляции плат Arduino uno
Еще одна распространенная ошибка пользователей, которая вызывает вопросы, например, что делать, если Arduino не видит порт, заключается в том, что вы просто забываете настроить среду разработки. IDE Arduino была создана для всех типов плат, но, как мы указали, на каждый контроллер помещается только ограниченное количество библиотек, и их содержимое может быть разным.
Следовательно, если в меню среды вы выбрали компиляцию для неправильного MK, вероятно, вызываемая функция или метод просто не найдены в постоянной памяти, что возвращает ошибку. Как правило, в настройках указывается плата Arduino uno, поэтому не забывайте ее менять. И обратная ситуация может быть причиной проблемы с загрузкой на плату на Arduino.
Для чего нужна функция void setup()
Скачивая программу, Arduino дает возможность нашему коду участвовать в инициализации системы. Для этого нам нужно сообщить микроконтроллеру команды, которые он будет выполнять при запуске, а затем забыть о них (т.е эти команды будут выполняться только один раз при запуске системы). И для этой самой цели в нашей с вами программе нам нужно выбрать блок, в котором будут храниться эти команды void setup (), а точнее пространство внутри фигурных скобок этой функции, является таким местом внутри скетча Ардуино.
Ошибка exit status 1 при компиляции для плат uno, mega и nano
И наиболее частым сообщением для пользователей, которое появляется в среде разработки, является exit 1. И это наиболее неудобно для отладки приложения, потому что здесь нужно учитывать почти ядро системы, чтобы понять, в чем заключается злополучное зрелище.
В документации указано, что это сообщение указывает на то, что Arduino ide не запускается в требуемой конфигурации, но на самом деле существует еще дюжина случаев, когда вы увидите это сообщение. Однако на самом деле не забудьте проверить системный бит, IDE и посмотреть, какие библиотеки доступны для справки в данный момент.
Синтаксис void setup()
В этом примере слово setup — это имя функции. Именно так и нужно писать именно в этом регистре. Слово перед именем описывает тип возвращаемых данных. В этом случае подпрограмма не возвращает никаких данных, поэтому нам нужно указать слово void. Все команды должны быть заключены в фигурные скобки {}.
Не забудьте поставить подтяжки! Потеря хотя бы одной круглой скобки сразу сделает всю программу непонятной для arduino. Но даже не ставьте лишние скобки — это тоже приведет к ошибке.
Ошибки библиотек
Если при компиляции скетча Arduino произошла ошибка, но ни одно из вышеперечисленных сообщений не отображалось, можно смело искать ошибку в библиотеках MK. Это самая неприятная задача для большинства программистов, ведь приходится залезать в чужой код, а без этого не обойтись.
Ведь банальная причина может заключаться в устаревшем синтаксисе загруженного плагина, а чтобы он заработал, его нужно переписывать практически с нуля. Это единственный выход из сложившейся ситуации. Но бывают и более приземленные ситуации, когда вы связали библиотеку, функции которой никогда не вызывались, или вы просто перепутали имя.
Ошибки компилятора Ардуино
Ранее последний стек действий упоминался при запуске кода через компилятор, а сейчас могут возникнуть самые страшные ошибки — ошибки в самой IDE. Здесь не может быть конкретного решения. Вам никто не запрещает зайти в самое сердце системы и самому там все проверить, но гораздо эффективнее будет вернуться к предыдущей версии программы или, наоборот, обновить.
Примеры void setup()
Чаще всего в пустой конфигурации указываются следующие инструкции:
- pinMode с указанием номера и типа контакта. Эта инструкция определяет режим работы выводов ардуино.
- Serial.begin с указанием скорости (чаще всего 9600). Эта инструкция инициализирует работу последовательного порта на указанной скорости.
- Инструкция по подключению и инициализации различных объектов библиотек arduino. Например, servo.atach (6) сообщит библиотеке, что мы подключили сервопривод к выводу 9, и код библиотеки будет выполнять все последующие действия только с этим портом.
- Инициализация глобальных переменных, если по какой-то причине это невозможно сделать при определении переменных в глобальной области видимости.
- Задайте другие настройки и начальные значения для переменных и объектов.
Если говорить о переопределении ошибки конфигурации вакуума, то она возникает, если мы подключаем модуль или скетч, в котором уже есть эта функция. Вот что вызывает ошибку
Основные ошибки
Ошибка: «avrdude: stk500_recv(): programmer is not responding»
Посмотрим, что у нас за карта? Какой порт мы используем? Сообщите arduino о правильной карте и порте. Возможно, вы используете Nano, и указано Mega. Возможно, вы указали неправильный порт. Все это приводит к сообщению: «программист не отвечает».
Решение:
В Arduino IDE в меню «Сервис» выберите плату. В меню «Сервис → Последовательный порт» выберите порт.
Ошибка: «No such file or directory / exit status 1»
Включенной библиотеки нет в папке библиотек.
Решение:
Скачайте нужную библиотеку и скопируйте ее в папку с программой — например, C: Program Files Arduino libraries. Если есть библиотека, замените файлы в папке.
Платформа Arduino – это один из самых простых путей погрузиться в мир микроконтроллеров и попробовать самому их программировать. Но однако и на этом пути вас могут подстерегать различные ошибки. Некоторые из них устранить очень просто, а на устранение других у вас могут уйти целые дни. В этой статье мы рассмотрим 10 самых распространенных ошибок при работе с платформой Arduino и способы их устранения.
Если вы начинающий в Arduino, то вначале рекомендуем вам ознакомиться с руководством по первому использованию платы Arduino для начинающих – в ней вы найдете решение самых простых ошибок, возникающих при работе с данной платой.
В этой ситуации плата Arduino, подключается к компьютеру, не распознается им. В этом случае плата Arduino не появляется в списке устройств, подключенных к компьютеру по COM портам, как показано на следующем рисунке.
Решение
Эта проблема обычно случается когда вы используете не оригинальную плату Arduino, а ее дешевые клоны, обычно китайского производства. В этих клонах Arduino вместо стандартного для оригинальных плат Arduino FTDI чипа (FT232RL) используется более дешевый чип CH340g (для преобразования USB в последовательный интерфейс). Драйверы для стандартного чипа FT232RL уже содержатся в установочном пакете Arduino IDE, поэтому при ее установке они также автоматически устанавливаются на ваш компьютер. А чтобы использовать клон платы Arduino с чипом CH340g вам необходимо предварительно скачать и установить драйвер для этого чипа – скачать его можно по следующей ссылке. Установка его крайне простая – я думаю, она не вызовет у вас никаких затруднений.
После его установки вы сможете увидеть в диспетчере устройств, к какому COM порту подключена ваша плата Arduino.
2. Плата не синхронизируется
В этом случае ваш компьютер видит подключенную к нему плату Arduino, но вы не сможете загрузить в нее код программы и вы при попытке загрузке в нее программы вместо привычного сообщения «done uploading» увидите сообщение об ошибке: “avrdude: stk500_getsync(): not in sync: resp=0x00”.
Решение
Ошибка синхронизации resp = 0x00 является общим ответом (ошибкой) на все проблемы, связанные с некорректной работой микроконтроллера Atmega (или вообще его неработоспособным состоянием), являющегося «сердцем» платы Arduino. Соответственно, причин этой ошибки может быть достаточно много. Мы рекомендуем вам выполнить следующую последовательность шагов чтобы попробовать устранить эту проблему:
- Убедитесь в том, что ничего не подключено к цифровым контактам 0 и 1 платы Arduino (включая шилды).
- Убедитесь в том, что в настройках Arduino IDE вы выбрали правильный тип платы и правильный COM порт.
- Пару раз нажмите кнопку сброса на плате Arduino и попробуйте после этого загрузить в нее код программы.
- Если не помогло, то отключите и заново подсоедините плату Arduino к компьютеру.
- Закройте и снова запустите Arduino IDE.
Если ничего из перечисленного не помогло, то попробуйте подключить к своему компьютеру другую плату Arduino или же подключите вашу плату Arduino к другому компьютеру. Если вы обнаружите, что проблема в компьютере, то переустановите Arduino IDE. Иногда бывает и так, что Arduino IDE из Windows работает с глюками, а из другой операционной системы на этом же компьютере работает без проблем. Также встречаются энтузиасты, которые устанавливают Arduino IDE в операционную систему от платы Raspberry Pi, то есть работают с Arduino IDE на компьютере, который состоит из платы Raspberry Pi и монитора – они говорят, что в этом случае Arduino IDE работает гораздо лучше чем из под Windows. Также, если не хотите менять компьютер или операционную систему на нем, вместо Arduino IDE можно попробовать использовать аналогичные инструменты — оболочку PlatformIO или Arduino Web Editor (официальный онлайн инструмент, его не нужно устанавливать).
Если проблема оказалась в плате Arduino, то можно попробовать прошить ее стандартным программным обеспечением Arduino (то есть попросту сменить в ней загрузчик). Если это не помогло, то, скорее всего, вам придется использовать в своей работе другую плату Arduino.
3. Код программы не начинает исполняться при нажатии кнопки сброса (Reset)
В этом случае плата Arduino при включении питания и при нажатии кнопки сброса не начинает исполнять записанный в нее скетч, а обычно возвращается к исполнению стандартного скетча, записанного в загрузчик платы – это скетч мигания светодиодом.
Решение
Описанная проблема может возникать по достаточно большому количеству причин.
Если плата «висит» и ничего не делает, вы сначала должны убедиться в том, что вы в это же самое время не передаете ей никаких данных с компьютера по последовательному порту. При включении питания загрузчик платы первые несколько секунд проверяет не передаются ли плате по последовательному порту какие либо данные (например, не производится ли попытка загрузки в плату нового скетча). Если никакого нового скетча не поступает, то спустя несколько секунд загрузчик начинает исполнять последний скетч, загруженный в плату. Если же ваша программа периодически передает данные по последовательному порту плате, то загрузчик попросту не перейдет к исполнению последнего загруженного в плату скетча.
Если же передача данных по последовательному порту является исключительно важной частью вашего проекта, вам необходимо предусмотреть в ней задержку, необходимую для того чтобы у загрузчика было время переключиться на исполнение последнего загруженного в плату скетча. Если же у вас нет возможности сделать такую задержку, то вам необходимо будет использовать какие-нибудь внешние программаторы для загрузки кода программы в плату Arduino, которые загружают код программы в обход встроенного в плату загрузчика.
Если же плата Arduino при включении питания или нажатии кнопки сброса не зависает, а начинает исполнять встроенный в загрузчик скетч мигания светодиодом, то кардинальным способом решения этой проблемы является смена загрузчика в плате, поскольку он мог быть поврежден в результате каких-нибудь обстоятельств.
4. Invalid Device Signature Error (ошибка подписи)
Эта ошибка возникает при попытке загрузки кода программы в плату Arduino, тип которой отличается от той платы, которую вы выбрали в настройках Arduino IDE. Ошибка возникает из-за того, что подпись устройства (device signature) на используемой плате отличается от подписи того типа платы, которую вы выбрали в Arduino IDE.
Решение
Выбрать правильный тип платы Arduino в настройках Arduino IDE. Если это не помогает, то можно попробовать прошить плату последней версией загрузчика Arduino (Arduino bootloader).
5. Ошибка запуска (Launch4j Error)
Arduino IDE необходимо некоторое время для того чтобы запуститься и если после ее запуска вы на что-нибудь кликаете, то возникает ошибка Launch4J error как показано на представленном рисунке. Launch4j – это инструмент, который используется для упаковки (wrapping) приложений Java в программной среде Windows, который позволяет им исполняться как обычным программам Windows.
Arduino IDE написана на JAVA и эта ошибка возникает из-за несовместимости библиотеки Java Run Time Environment (JRE), поставляемой вместе с Arduino IDE.
Решение
Часто решить эту проблему удается простым выключением Bluetooth или WiFi на вашем компьютере. Если это не помогает, то более сложным вариантом решения данной проблемы является замена библиотеки JRE в Arduino IDE на ее последнюю версию.
6. Последовательный порт уже используется (Serial Port Already in Use)
Одна из самых простых проблем для решения. Она обычно происходит когда вы пытаетесь загрузить код программы в плату Arduino в то время когда открыто окно монитора последовательной связи (serial monitor) (но эта проблема в последних версиях Arduino IDE уже устранена) или вы пытаетесь его открыть во время обмена информацией между Arduino IDE и платой Arduino, или вы пытаетесь в это время использовать этот же самый COM порт для связи с другим устройством. То есть данная проблема возникает тогда, когда вы пытаетесь использовать последовательный порт одновременно для двух вещей.
Решение
Когда вы хотите загрузить программу в плату Arduino с помощью Arduino IDE, просто закройте (остановите работу) всех программ/приложений, которые в это же самое время могут использовать данный последовательный порт. Если в каких то программах вы не уверены, то отключите и снова подсоедините плату Arduino к компьютеру.
7. Скетч успешно загружен, но ничего не происходит
Эта проблема аналогична ранее рассмотренным проблемам. В данном случае у вас появилось сообщение, что программа успешно загружена в плату Arduino, но сама плата после этого ничего не делает.
Решение
- Убедитесь в том, что тип выбранной в настройках Arduino IDE платы совпадает с типом платы, в которую вы загрузили программу.
- Также подобная ошибка может быть вызвана тем, что размер загружаемого в плату скетча превышает объем ее памяти для хранения программ. Уменьшите объем скетча или используйте плату Arduino с большим объемом памяти.
- Еще одной причиной подобной ошибки может быть сильная зашумленность цепей питания. Убедитесь в том, что питающее напряжение, подаваемое на плату, достаточно стабильно.
8. Неизвестная ошибка связи (Unsatisfied Link Error)
Очень редко возникающая ошибка. Связана с тем, что на вашем компьютере используется очень старая библиотека для последовательной связи, возможно, от какой то предыдущей версии операционной системы.
Решение
Для решения этой проблемы найдите файл comm.jar или jcl.jar в папке /System/Library/Frameworks/JavaVM.framework/ или в папках на вашем компьютере, относящимся к переменным окружения CLASSPATH или PATH.
9. Размер скетча слишком большой (Sketch Too Large)
Эта ошибка происходит когда размер кода программы больше чем объем перепрограммируемой памяти (flash memory, памяти для хранения программ) используемой вами платы Arduino. К примеру, объем этой памяти в плате Arduino Uno составляет 32 Кбайта, из которых 2 Кбайта заняты загрузчиком. Если вы попытаетесь загрузить в данную плату скетч объемом более 32 Кбайт, то увидите подобную ошибку.
Решение
Для решения этой проблемы модно использовать следующие способы уменьшения объема кода программы:
- Там, где это возможно, используйте целые типы данных (integer) вместо вещественных (float).
- Там, где это возможно, используйте при объявлениях переменных спецификатор “const”.
- Подключайте в программу только те библиотеки, которые вы будете использовать. Там, где это возможно, используйте облегченные версии используемых библиотек.
- Используйте специальные алгоритмы и другие способы уменьшения объема кода программы.
Более радикальным решением этой проблемы является смена платы Arduino на плату с большим объемом памяти. Например, плату Arduino Uno можно заменить на плату Arduino Mega, или даже на плату Arduino Due.
10. Ошибка переполнения стека (java.lang.StackOverflowError)
Иногда плата Arduino не может выполнить программы, в которых используется некорректная работа со строками, например, у строковых переменных пропущены кавычки в некоторых выражениях (или функциях).
Решение
В этом случае вам необходимо тщательно проинспектировать код своей программы, обращая особое внимание на те строки, в которые используются строковые переменные (типа string). Убедитесь в том, что все кавычки присутствуют в необходимых им местах. Также убедитесь в правильном использовании слешей (косых черт).
В данной статье мы рассмотрели 10 самых распространённых ошибок при работе с Arduino. Разумеется, реальное число ошибок, которые могут возникать при работе с платами Arduino, гораздо больше чем 10, однако мы попытались в этой статье рассмотреть самые распространённые из них. Если у вас возникает какая либо ошибка, которая не рассмотрена в данной статье, можете описать ее в комментариях и мы попробуем вместе с вами ее решить.
Загрузка…
9 730 просмотров