Ошибка компиляции для платы arduino mega or mega 2560

Ошибка компиляции.Новичок

b_i_n66 аватар

Offline

Зарегистрирован: 17.11.2014

Проблема в загрузке скетча:Примеры загружаются а любые другие нет.Пишет что библиотеки или файла такого нет.Пример:Arduino: 1.6.7 (Windows 10), Плата:»Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)»

C:Program Files (x86)Arduinoarduino-builder -dump-prefs -logger=machine -hardware «C:Program Files (x86)Arduinohardware» -tools «C:Program Files (x86)Arduinotools-builder» -tools «C:Program Files (x86)Arduinohardwaretoolsavr» -built-in-libraries «C:Program Files (x86)Arduinolibraries» -libraries «C:UsersHomeDocumentsArduinolibraries» -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10607 -build-path «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmp» -warnings=more -prefs=build.warn_data_percentage=75 -verbose «C:UsersHomePicturesАквариумКонтроллерJarduino_v1_1Jarduino_v1_1Jarduino_v1_1.pde»

C:Program Files (x86)Arduinoarduino-builder -compile -logger=machine -hardware «C:Program Files (x86)Arduinohardware» -tools «C:Program Files (x86)Arduinotools-builder» -tools «C:Program Files (x86)Arduinohardwaretoolsavr» -built-in-libraries «C:Program Files (x86)Arduinolibraries» -libraries «C:UsersHomeDocumentsArduinolibraries» -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10607 -build-path «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmp» -warnings=more -prefs=build.warn_data_percentage=75 -verbose «C:UsersHomePicturesАквариумКонтроллерJarduino_v1_1Jarduino_v1_1Jarduino_v1_1.pde»

«C:Program Files (x86)Arduinohardwaretoolsavr/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   «-IC:Program Files (x86)Arduinohardwarearduinoavrcoresarduino» «-IC:Program Files (x86)Arduinohardwarearduinoavrvariantsmega» «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmpsketchJarduino_v1_1.pde.cpp» -o «nul»

«C:Program Files (x86)Arduinohardwaretoolsavr/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   «-IC:Program Files (x86)Arduinohardwarearduinoavrcoresarduino» «-IC:Program Files (x86)Arduinohardwarearduinoavrvariantsmega» «-IC:UsersHomeDocumentsArduinolibrariesITDB02_Graph16» «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmpsketchJarduino_v1_1.pde.cpp» -o «nul»

«C:Program Files (x86)Arduinohardwaretoolsavr/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   «-IC:Program Files (x86)Arduinohardwarearduinoavrcoresarduino» «-IC:Program Files (x86)Arduinohardwarearduinoavrvariantsmega» «-IC:UsersHomeDocumentsArduinolibrariesITDB02_Graph16» «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmpsketchJarduino_v1_1.pde.cpp» -o «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmppreprocctags_target_for_gcc_minus_e.cpp»

In file included from C:UsersHomePicturesАквариумКонтроллерJarduino_v1_1Jarduino_v1_1Jarduino_v1_1.pde:70:0:

C:UsersHomeDocumentsArduinolibrariesITDB02_Graph16/ITDB02_Graph16.h:69:22: fatal error: WProgram.h: No such file or directory

 #include «WProgram.h»

                      ^

compilation terminated.

Используем библиотеку ITDB02_Graph16 в папке: C:UsersHomeDocumentsArduinolibrariesITDB02_Graph16 (legacy)

exit status 1

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

СОДЕРЖАНИЕ ►

  • Произошла ошибка при загрузке скетча в Ардуино
    • 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.
— или выбрать плату и порт вручную, без подключения микроконтроллера.

Аватара пользователя

андрейик

Кандидат
Сообщения: 65
Зарегистрирован: 23 фев 2017, 09:38
Репутация: 4
Настоящее имя: Андрей Анатольевич
Откуда: Алтайский край
Контактная информация:

Помощь по установки прошивки на ARDUINO MEGA 2560

Всем здрасти. В общем проблема такова. Пытался установить и свежие и поздние прошивки и HBOT и DELTA и ещё какие то везде выдаёт одну ошибку-
ошибка компиляции для платы arduino/genuino mega or mega 2560.
Вот скрин

1.PNG (8715 просмотров) <a class='original' href='./download/file.php?id=124813&sid=43021f2d4f34242c5d6720ce9c4af2c3&mode=view' target=_blank>Загрузить оригинал (12.7 КБ)</a>

Аватара пользователя

selenur

Почётный участник
Почётный участник
Сообщения: 4576
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1614
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

selenur » 17 ноя 2017, 12:26

У тебя не установлена дополнительная библиотека, вот например текст из моей прошивки:

Код: Выделить всё

// LCD TYPE
//
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2,
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels
// (ST7565R family). (This option will be set automatically for certain displays.)
//
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display!
//                 https://github.com/olikraus/U8glib_Arduino
//
//#define ULTRA_LCD   // Character based
//#define DOGLCD      // Full graphics display

Для установки можно попробовать найти библиотеку так: в меню -> Скетч -> Подключить библиотеку -> управление библиотеками и там найти нужную библиотеку, и установить.

Аватара пользователя

андрейик

Кандидат
Сообщения: 65
Зарегистрирован: 23 фев 2017, 09:38
Репутация: 4
Настоящее имя: Андрей Анатольевич
Откуда: Алтайский край
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

андрейик » 17 ноя 2017, 13:39

[quote=»selenur»]У тебя не установлена дополнительная библиотека, вот например текст из моей прошивки:

Код: Выделить всё

Аллилуя!!! Пока всё заработало. :eat:  Спасибо selenur за помощь.
С механикой у меня всё в порядке, а вот в мозгах ковыряться как то не очень.

Аватара пользователя

андрейик

Кандидат
Сообщения: 65
Зарегистрирован: 23 фев 2017, 09:38
Репутация: 4
Настоящее имя: Андрей Анатольевич
Откуда: Алтайский край
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

андрейик » 09 дек 2017, 15:24

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

Аватара пользователя

Rom327

Почётный участник
Почётный участник
Сообщения: 2839
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 410
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

Rom327 » 09 дек 2017, 22:03

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

Двигатель экструдера работает только когда хотенд и стол набрали заданную температуру. По крайней мере на нашем принтере так…

Аватара пользователя

андрейик

Кандидат
Сообщения: 65
Зарегистрирован: 23 фев 2017, 09:38
Репутация: 4
Настоящее имя: Андрей Анатольевич
Откуда: Алтайский край
Контактная информация:

aftaev

Зачётный участник
Зачётный участник
Сообщения: 34009
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6177
Откуда: Казахстан.
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

aftaev » 02 апр 2019, 13:23

malc.igor@mail.ru писал(а):Аналогичная проблема. При прошивке выдает ошибку. Помогите.

В чем аналогичная? Что ошибку выдало . А в ошибке что сказано? Что проблемы с портом СОМ4?.

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

Аватара пользователя

Rom327

Почётный участник
Почётный участник
Сообщения: 2839
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 410
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

Rom327 » 02 апр 2019, 13:33

malc.igor@mail.ru писал(а):Здравствуйте. Аналогичная проблема. При прошивке выдает ошибку. Помогите.

Обычно «неверный дескриптор» выскакивает при проблеме с контактами разъемов USB. Попробуй заменить шнур USB, использовать другой порт USB, промыть разъем USB в Ардуине.
Скорость COM порта выставлена правильно?

Рассмотрим в этой статье возможные ошибки компиляции для платы Ардуино 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 в меню «Сервис» выбрать нужную плату и там же, через «Сервис» → «Последовательный порт» выбрать порт «COM…».

Ошибка: 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 обнаружила в скетче слова, не являющиеся служебными или не были объявлены, как переменные. Ошибка was not declared in this scope возникает при появлении в скетче случайных или лишних символов.

Ошибка: No such file or directory  /  exit status 1

Данная ошибка возникает, если вы подключаете в скетче библиотеку, которую не установили в папку libraries. Как исправить ошибку? Скачайте нужную библиотеку и распакуйте архив в папку C:Program FilesArduinolibraries. Если библиотека установлена, то попробуйте скачать и заменить библиотеку на новую.

Ошибка компиляции.Новичок

b_i_n66 аватар

Offline

Зарегистрирован: 17.11.2014

Проблема в загрузке скетча:Примеры загружаются а любые другие нет.Пишет что библиотеки или файла такого нет.Пример:Arduino: 1.6.7 (Windows 10), Плата:»Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)»

C:Program Files (x86)Arduinoarduino-builder -dump-prefs -logger=machine -hardware «C:Program Files (x86)Arduinohardware» -tools «C:Program Files (x86)Arduinotools-builder» -tools «C:Program Files (x86)Arduinohardwaretoolsavr» -built-in-libraries «C:Program Files (x86)Arduinolibraries» -libraries «C:UsersHomeDocumentsArduinolibraries» -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10607 -build-path «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmp» -warnings=more -prefs=build.warn_data_percentage=75 -verbose «C:UsersHomePicturesАквариумКонтроллерJarduino_v1_1Jarduino_v1_1Jarduino_v1_1.pde»

C:Program Files (x86)Arduinoarduino-builder -compile -logger=machine -hardware «C:Program Files (x86)Arduinohardware» -tools «C:Program Files (x86)Arduinotools-builder» -tools «C:Program Files (x86)Arduinohardwaretoolsavr» -built-in-libraries «C:Program Files (x86)Arduinolibraries» -libraries «C:UsersHomeDocumentsArduinolibraries» -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10607 -build-path «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmp» -warnings=more -prefs=build.warn_data_percentage=75 -verbose «C:UsersHomePicturesАквариумКонтроллерJarduino_v1_1Jarduino_v1_1Jarduino_v1_1.pde»

«C:Program Files (x86)Arduinohardwaretoolsavr/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   «-IC:Program Files (x86)Arduinohardwarearduinoavrcoresarduino» «-IC:Program Files (x86)Arduinohardwarearduinoavrvariantsmega» «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmpsketchJarduino_v1_1.pde.cpp» -o «nul»

«C:Program Files (x86)Arduinohardwaretoolsavr/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   «-IC:Program Files (x86)Arduinohardwarearduinoavrcoresarduino» «-IC:Program Files (x86)Arduinohardwarearduinoavrvariantsmega» «-IC:UsersHomeDocumentsArduinolibrariesITDB02_Graph16» «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmpsketchJarduino_v1_1.pde.cpp» -o «nul»

«C:Program Files (x86)Arduinohardwaretoolsavr/bin/avr-g++» -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   «-IC:Program Files (x86)Arduinohardwarearduinoavrcoresarduino» «-IC:Program Files (x86)Arduinohardwarearduinoavrvariantsmega» «-IC:UsersHomeDocumentsArduinolibrariesITDB02_Graph16» «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmpsketchJarduino_v1_1.pde.cpp» -o «C:UsersHomeAppDataLocalTempbuildb23fe132bb502b429ad209ac570b5a75.tmppreprocctags_target_for_gcc_minus_e.cpp»

In file included from C:UsersHomePicturesАквариумКонтроллерJarduino_v1_1Jarduino_v1_1Jarduino_v1_1.pde:70:0:

C:UsersHomeDocumentsArduinolibrariesITDB02_Graph16/ITDB02_Graph16.h:69:22: fatal error: WProgram.h: No such file or directory

 #include «WProgram.h»

                      ^

compilation terminated.

Используем библиотеку ITDB02_Graph16 в папке: C:UsersHomeDocumentsArduinolibrariesITDB02_Graph16 (legacy)

exit status 1

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

Суть проблемы в следующем,при проверке,компиляции скетча,выходит ошибка (exit status 1
Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.).

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

Переписав скетч в строке 82,подменив 0 на 2 в двух местах,проверил скетч и тут начались проблемы которые были кое как решены,отсутствовали нужные библиотеки, но в конечном итоге закончилось   (exit status 1   Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560. )

Скетч был взят на стороннем ресурсе http://www.cqham.ru/forum/showthread.php?34517-Synthesizer-on-Mega-2560-3-2-TFT-LCD-Si5351-V2-0

разработчики писали, что это их первый опыт в программировании и просили особо не сердится, и что исходники для программистов с крепкими нервами!

Товарищи ардуинщики! помогите исправить строку 82,заменив в ней 0 на 2 в двух местах,у меня как оказалось нервы не крепкие.

1950227454_.png.75ab9a3963018a5c940ff4ba9a79b112.png

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

Ссылка на папку с исходником на гугл диске https://drive.google.com/open?id=1_BNecSzNI_GqF_HQhPUj8YIt7C3leb-3

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

По сути мне необходим HEX файл для заливки в мегу.

Заранее спасибо за помощь. 

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

Ссылка на папку с исходником на гугл диске https://drive.google.com/open?id=1_BNecSzNI_GqF_HQhPUj8YIt7C3leb-3

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

По сути мне необходим HEX файл для заливки в мегу.

Заранее спасибо за помощь. 

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


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

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])

Синтаксические ошибки

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

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

  • Ошибка “expected initializer before ‘}’ token” говорит о том, что случайно удалена или не открыта фигурная скобка.
  • Ошибка “a function-definition is not allowed here before ‘{‘ token” – аналогичная предыдущей и указывает на отсутствие открывающейся скобки, например, открывающих скобок в скетче только 11, а закрывающих 12.
  • Уведомление об ошибке “undefined reference to “setup” получите в случае переименования или удаления функции “setup”.
  • Ошибка “undefined reference to “loop” – возникает в случае удаления функции loop. Без команд этой функции компилятор запустить программу не сможет. Для устранения надо вернуть каждую из команд на нужное место в скетче.
  • Ошибка “… was not declared in this scope” обозначает, что в программном коде обнаружены слова, которые написаны с ошибкой (например, которые обозначают какую-то функцию) или найдены необъявленные переменные, методы. Подобная ошибка возникает также в случае случайного удаления значка комментариев и текст, который не должен восприниматься как программа, читается IDE.

Ошибки компиляции и их решения, для плат Arduino, синтаксические ошибки картинка

Ошибки библиотек

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

  • “fatal error: … No such file or directory”. Такое сообщение вы получите, если необходимую в скетче библиотеку вы не записали в папку libraries. Сообщение об ошибке в одном из подключенных файлов может означать, что вы используете библиотеку с ошибками или библиотеки не совместимы. Решение – обратиться к разработчику библиотеки или еще раз проверить правильность написанной вами структуры.
  • “redefinition of void setup” – сообщение возникает, если автор библиотеки объявил функции, которые используются и в вашем коде. Чтобы исправить – переименуйте свои методы или в библиотеке.

Ошибки компилятора

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

Ошибки компиляции при работе с разными платами — Uno, Mega и Nano

В Arduino можно писать программы под разные варианты микроконтроллеров. По умолчанию в меню выбрана плата Arduino/Genuino Uno. Если забудете о том что нужно указать нужную плату – в вашем коде будут ссылки на методы или переменные, не описанные в конфигурации “по умолчанию”.

Вы получите ошибку при компиляции “programmer is not responding”. Чтобы исправить ее – проверьте правильность написания кода в части выбора портов и вида платы. Для этого в Ардуино IDE в меню «Сервис» выберите плату. Аналогично укажите порт в меню “Сервис” – пункт «Последовательный порт».

Ошибка exit status 1

В среде разработки такое сообщение можно увидеть во многих случаях. И хотя в документации данная ошибка указывается как причина невозможности запуска IDE Аrduino в нужной конфигурации, на самом деле причины могут быть и другие. Для того, чтобы найти место, где скрывается эта ошибка можно “перелопатить” действительно много. Но все же стоит сначала проверить разрядность системы и доступные библиотеки.

Ошибки компиляции и их решения, для плат Arduino, Ошибка exit status 1

Обновления и исправления касательно версий инструкции и ПО

Суть проблемы в следующем,при проверке,компиляции скетча,выходит ошибка (exit status 1
Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.).

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

Переписав скетч в строке 82,подменив 0 на 2 в двух местах,проверил скетч и тут начались проблемы которые были кое как решены,отсутствовали нужные библиотеки, но в конечном итоге закончилось   (exit status 1   Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560. )

Скетч был взят на стороннем ресурсе http://www.cqham.ru/forum/showthread.php?34517-Synthesizer-on-Mega-2560-3-2-TFT-LCD-Si5351-V2-0

разработчики писали, что это их первый опыт в программировании и просили особо не сердится, и что исходники для программистов с крепкими нервами!

Товарищи ардуинщики! помогите исправить строку 82,заменив в ней 0 на 2 в двух местах,у меня как оказалось нервы не крепкие.

1950227454_.png.75ab9a3963018a5c940ff4ba9a79b112.png

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

Ссылка на папку с исходником на гугл диске https://drive.google.com/open?id=1_BNecSzNI_GqF_HQhPUj8YIt7C3leb-3

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

По сути мне необходим HEX файл для заливки в мегу.

Заранее спасибо за помощь. 

Аватара пользователя

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

Ссылка на папку с исходником на гугл диске https://drive.google.com/open?id=1_BNecSzNI_GqF_HQhPUj8YIt7C3leb-3

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

По сути мне необходим HEX файл для заливки в мегу.

Заранее спасибо за помощь. 

андрейик

Кандидат
Сообщения: 65
Зарегистрирован: 23 фев 2017, 09:38
Репутация: 4
Настоящее имя: Андрей Анатольевич
Откуда: Алтайский край
Контактная информация:

Помощь по установки прошивки на ARDUINO MEGA 2560

Всем здрасти. В общем проблема такова. Пытался установить и свежие и поздние прошивки и HBOT и DELTA и ещё какие то везде выдаёт одну ошибку-
ошибка компиляции для платы arduino/genuino mega or mega 2560.
Вот скрин

1.PNG (8959 просмотров) <a class='original' href='./download/file.php?id=124813&sid=e39ce10de8bda190d5f4835affe8f9cc&mode=view' target=_blank>Загрузить оригинал (12.7 КБ)</a>

Аватара пользователя

selenur

Почётный участник
Почётный участник
Сообщения: 4594
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1620
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

selenur » 17 ноя 2017, 12:26

У тебя не установлена дополнительная библиотека, вот например текст из моей прошивки:

Код: Выделить всё

// LCD TYPE
//
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2,
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels
// (ST7565R family). (This option will be set automatically for certain displays.)
//
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display!
//                 https://github.com/olikraus/U8glib_Arduino
//
//#define ULTRA_LCD   // Character based
//#define DOGLCD      // Full graphics display

Для установки можно попробовать найти библиотеку так: в меню -> Скетч -> Подключить библиотеку -> управление библиотеками и там найти нужную библиотеку, и установить.

Аватара пользователя

андрейик

Кандидат
Сообщения: 65
Зарегистрирован: 23 фев 2017, 09:38
Репутация: 4
Настоящее имя: Андрей Анатольевич
Откуда: Алтайский край
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

андрейик » 17 ноя 2017, 13:39

[quote=»selenur»]У тебя не установлена дополнительная библиотека, вот например текст из моей прошивки:

Код: Выделить всё

Аллилуя!!! Пока всё заработало. :eat:  Спасибо selenur за помощь.
С механикой у меня всё в порядке, а вот в мозгах ковыряться как то не очень.

Аватара пользователя

андрейик

Кандидат
Сообщения: 65
Зарегистрирован: 23 фев 2017, 09:38
Репутация: 4
Настоящее имя: Андрей Анатольевич
Откуда: Алтайский край
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

андрейик » 09 дек 2017, 15:24

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

Аватара пользователя

Rom327

Почётный участник
Почётный участник
Сообщения: 2877
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 421
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

Rom327 » 09 дек 2017, 22:03

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

Двигатель экструдера работает только когда хотенд и стол набрали заданную температуру. По крайней мере на нашем принтере так…

Аватара пользователя

андрейик

Кандидат
Сообщения: 65
Зарегистрирован: 23 фев 2017, 09:38
Репутация: 4
Настоящее имя: Андрей Анатольевич
Откуда: Алтайский край
Контактная информация:

aftaev

Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6187
Откуда: Казахстан.
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

aftaev » 02 апр 2019, 13:23

malc.igor@mail.ru писал(а):Аналогичная проблема. При прошивке выдает ошибку. Помогите.

В чем аналогичная? Что ошибку выдало . А в ошибке что сказано? Что проблемы с портом СОМ4?.

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

Аватара пользователя

Rom327

Почётный участник
Почётный участник
Сообщения: 2877
Зарегистрирован: 03 апр 2015, 13:23
Репутация: 421
Настоящее имя: Роман
Откуда: Подольск
Контактная информация:

Re: Помощь по установки прошивки на ARDUINO MEGA 2560

Сообщение

Rom327 » 02 апр 2019, 13:33

malc.igor@mail.ru писал(а):Здравствуйте. Аналогичная проблема. При прошивке выдает ошибку. Помогите.

Обычно «неверный дескриптор» выскакивает при проблеме с контактами разъемов USB. Попробуй заменить шнур USB, использовать другой порт USB, промыть разъем USB в Ардуине.
Скорость COM порта выставлена правильно?

Arduino Forum

Loading

Понравилась статья? Поделить с друзьями:
  • Ошибка компиляции для платы arduino leonardo как исправить
  • Ошибка компиляции для платы arduino genuino uno что делать
  • Ошибка компиляции для платы arduino due programming port
  • Ошибка компиляции для платы ai thinker esp32 cam
  • Ошибка компиляции видеофильма что это