Ошибки компиляции скетча в Arduino IDE возникают при проверке или загрузке, если программа содержит синтаксические ошибки, компилятор не может найти библиотеки или переменные. Большинство сообщений об ошибке при загрузке скетча происходят из-за невнимательностью самого программиста. Рассмотрим в статье возможные ошибки при загрузке скетча для плат Ардуино Уно, Нано или Мега и способы их исправления.
СОДЕРЖАНИЕ
- Произошла ошибка при загрузке скетча Ардуино
- Ошибка: stk500_recv(): programmer is not responding
- Ошибка: a function-definition is not allowed
- Ошибка: expected initializer before ‘}’ token
- Ошибка: undefined reference to ‘loop’ / ‘setup’
- Ошибка: ‘что-то’ was not declared in this scope
- Ошибка: No such file or directory / exit status 1
- Ошибка: missing fqbn (fully qualified board name)
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
Дополнительные материалы на эту тему:
Самые простые синтаксические ошибки возникают у новичков, кто только начинает разбираться с языком Ардуино. Это могут быть не закрытые или случайно удаленные скобки, пропущенный знак точки-запятой или неправильное название переменной. Здесь необходимо терпение, чтобы найти проблему в коде. Далее разберем часто встречающиеся сообщения об ошибке при компиляции или загрузки скетча в плату.
Произошла ошибка при загрузке скетча Arduino

avrdude: stk500_recv(): programmer is not responding
Обратите внимание какой микроконтроллер вы используете и к какому порту подключена плата. Необходимо указать в утилите Arduino IDE, какая плата используется и на каком COM порту она определена. Например, если вы загружаете скетч в Arduino Uno, а в настройках указана плата Mega 2560, то вы увидите именно это сообщение. Во вкладке «Сервис» следует выбрать нужную плату и там же выбрать COM порт.
a function-definition is not allowed arduino
Это сообщение означает, что в вы забыли закрыть фигурную скобку в программе. Синтаксические ошибки связаны с неопытностью или просто с невнимательностью. Синтаксические ошибки легко исправляются, так как утилита Arduino IDE даст подсказку, отмечая в сообщении номер строки, где обнаружена ошибка, а в программе строка выделяется цветом. Вам остается только еще раз все внимательно проверить.
expected initializer before ‘}’ token arduino
Данное сообщение говорит о том, что наоборот вы забыли открыть фигурную скобку в программе. Утилита Arduino IDE также даст вам подсказку, но если код большой, то придется набраться терпения. Если произошла ошибка при загрузке скетча с сообщением: expected ‘;’ before ‘}’ token, то это означает, что вы забыли поставить точку с запятой в конце команды — строчка с пропущенным знаком будет выделена цветом.
undefined reference to ‘setup’ / ‘loop’
Сообщение undefined reference to ‘loop’ возникает при компиляции, если вы случайно удалили или переименовали цикл loop. Ардуино не сможет запустить программу, без указанных в этом блоке команд. Если вы случайно удалили или переименовали цикл setup, то сообщение будет выглядеть undefined reference to ‘setup’. Выход в этом случае у вас один – вернуть на свое место функции loop или setup в программе.
‘ ‘ was not declared in this scope arduino
Сообщение говорит о том, что в программе какое-то слово или переменная, например «led» не является служебной командой или не была объявлена в скетче в качестве переменной или константы. Например, вы создали переменную или объект «rtc» но затем используете в коде «Rtc» Ошибка was not declared in this scope возникает при появлении в программе случайных или неправильно написанных слов.
No such file or directory / exit status 1
Сообщение появится, если вы используете в скетче библиотеку, которую еще не установили. Чтобы исправить эту ошибку при загрузке скетча в Ардуино, скачайте библиотеку и распакуйте архив в папку C:\Program Files\Arduino\libraries или в документах …\Documents\Arduino\libraries. Если библиотека уже была установлена, то попробуйте удалить папку библиотеки с компьютера и замените на новую библиотеку.
Missing FQBN (Fully Qualified Board Name)
Эта ошибка возникает, если в утилите не была выбрана плата. Обратите внимание, что тип микроконтроллера необходимо выбрать, даже если вы не загружаете скетч, а просто делаете компиляцию. В Arduino IDE 2 вы можете использовать меню выбора:
— список плат, которые подключены и были идентифицированы Arduino IDE.
— или выбрать плату и порт вручную, без подключения микроконтроллера.
