- 1. Плата Arduino не распознается
- 2. Плата не синхронизирована
- 3. Код не запускается при сбросе питания.
- 4. Ошибка недопустимой подписи устройства.
- 5. Ошибка Launch4j
- 6. Последовательный порт уже используется.
- 7. Скетч загружен успешно, но ничего не происходит
- 8. Ошибка неудовлетворенного соединения.
- 9. Слишком большой эскиз
- 10. java.lang.StackOverflowError
Начать работу с Arduino в качестве новичка может быть довольно сложно для людей без опыта работы в области электроники, вы столкнетесь с ошибками, некоторые из которых могут иметь простые решения, но на их устранение может уйти несколько дней. Итак, чтобы немного упростить задачу, я составил список из 10 самых популярных ошибок Arduino вместе с возможными решениями для них.
1. Плата Arduino не распознается
Это относится к ситуации, когда плата Arduino, подключенная к компьютеру, не распознается компьютером. Когда это происходит, плата обычно не указывается в списках портов Arduino IDE и иногда обозначается как USB2.0 в диспетчере устройств.
Решение
Это происходит, когда вы используете определенные дешевые клоны Arduino, которые используют микросхему преобразователя USB-последовательный порт CH340g вместо FTDI (FT232RL) и других, используемых на стандартных платах Arduino. Драйверы для USB-последовательных микросхем, используемые стандартными платами Arduino, всегда упаковываются вместе с файлом установки Arduino IDE, поэтому при установке IDE драйверы автоматически устанавливаются на ваш компьютер. Чтобы использовать платы Arduino на базе преобразователя CH340g USB в последовательный преобразователь, вам необходимо загрузить и установить драйвер для чипа. Драйвер можно скачать по этой ссылке. Установить его так же просто, как нажать кнопку установки в интерфейсе настройки, показанном ниже.
После этого вы сможете найти порт, к которому подключена плата в Arduino IDE.
2. Плата не синхронизирована
Обычно, когда это происходит, вы не сможете загрузить код (хотя в среде IDE иногда отображается сообщение «загрузка завершена») на плату Arduino, и в среде IDE отображается код ошибки; « Avrdude: stk500_getsync (): не синхронизируется: resp = 0x00 ».
Решение
Синхронизации: соответственно = 0x00 представляет собой общий ответ, который переводит на « чип Atmega не работает » на Arduino. Когда это происходит, есть много вещей, которые могут быть неправильными. Вот несколько шагов, которые можно предпринять, чтобы устранить эту ошибку.
1. Убедитесь, что к цифровым контактам 0 и 1 на Arduino ничего не подключено (включая экраны).
2. Убедитесь, что в меню инструментов выбраны правильный COM-порт и плата.
3. Несколько раз нажмите кнопку сброса на Arduino и повторно загрузите код.
4. Отключите и снова подключите Arduino к ПК.
5. Перезагрузите IDE Arduino.
Если что-то из этого не работает, возможно, пришло время попробовать использовать другую плату Arduino с ПК или использовать «неисправную» плату Arduino с другим ПК. Это должно помочь вам определить, какая из них является источником проблемы. Если вы обнаружите, что проблема связана с ПК, переустановите Arduino IDE. Однако, если «неисправная» плата Arduino является источником проблемы, окончательным решением будет прошивка платы прошивкой Arduino. Если ничего из вышеперечисленного не работает, возможно, вам пора сменить плату Arduino.
3. Код не запускается при сбросе питания.
Это относится к случаям, когда Arduino не запускает загруженный в него эскиз при включении и в большинстве случаев просто возвращается к эскизу мигания, связанному с загрузчиком.
Решение
Как и в случае с другими обработанными проблемами, это может быть вызвано рядом причин.
Если плата зависает и ничего не делает, вам следует проверить свой код, чтобы убедиться, что вы не отправляете последовательные данные на плату по мере их поступления. Когда Arduino включен, загрузчик в первые несколько секунд ожидает, что компьютер отправит ему новый эскиз для загрузки на плату. Если новый скетч не получен, через некоторое время загрузчик отключится и запустит последний скетч, загруженный на плату. Если ваш код отправляет последовательные данные в течение первых нескольких минут, время ожидания загрузчика не истечет, и последний загруженный на плату скетч не запустится.
Если отправка последовательных данных сразу после включения платы является важной частью вашего проекта, вам может потребоваться найти способ дать ей некоторую задержку, чтобы остановить поступление последовательных данных сразу после включения Arduino. Если внесение изменений повлияет на задачу, которую должен выполнить проект, вам, возможно, придется загрузить свой скетч на плату с помощью внешнего программатора, поскольку они могут обойти загрузчик.
Если плата не зависает, но возвращается к эскизу мигания Arduino (светодиод на контакте 13 мигает время от времени), простым решением будет прошить плату с помощью загрузчика Arduino, так как тот, что на плате, мог быть поврежден.
4. Ошибка недопустимой подписи устройства.
Эта ошибка отображается, когда делается попытка загрузить код на плату, отличную от той, которая была выбрана в меню инструменты> список плат в Arduino IDE. Эта ошибка обычно возникает в результате того, что подпись устройства на целевой плате отличается от подписи платы, выбранной в среде IDE.
Решение
Решение этой ошибки так же просто, как обеспечение выбора правильной платы в Arduino IDE. Если это не сработает, возможно, потребуется прошить микроконтроллер последней версией загрузчика Arduino.
5. Ошибка Launch4j
Иногда перед загрузкой IDE Arduino требуется некоторое время, и при загрузке, если вы щелкнете что-либо, отобразится ошибка Launch4J, как показано выше. Launch4j - это инструмент, используемый для упаковки Java-приложений (jar-файлов) в исполняемый файл Windows, позволяющий использовать их как обычную программу Windows.
Сама среда разработки Arduino написана на JAVA, и эта ошибка возникает из-за несовместимости библиотеки Java Run Time Environment (JRE), поставляемой с IDE Arduino.
Решение
Исходя из опыта, эта ошибка может быть устранена простым отключением на вашем ПК Bluetooth или Wi-Fi. Однако более полным и постоянным решением является замена JRE в пакете Arduino последней версией.
6. Последовательный порт уже используется.
Вероятно, это одна из самых простых ошибок, которую можно исправить. Обычно это происходит, когда вы пытаетесь загрузить код в Arduino при открытом последовательном мониторе (это больше не проблема, если вы используете последние версии IDE) или когда вы пытаетесь запустить последовательный монитор, когда Arduino обращается к другому программному обеспечению или устройству. через последовательный порт. По сути, это происходит, когда вы пытаетесь использовать последовательный порт Arduino для двух разных целей одновременно.
Решение
Как и в предложенной IDE, закройте все остальные программы / инструменты (включая последовательный монитор / плоттер), которые могут использовать COM-порт. Если вы не уверены в выборе конкретного программного обеспечения, отключите Arduino. Он должен быть готов к работе к тому моменту, когда вы его снова подключите.
7. Скетч загружен успешно, но ничего не происходит
Эта ошибка похожа на некоторые другие ошибки, уже рассмотренные выше. Для этой ошибки IDE Arduino предложит, что код был загружен успешно, но плата ничего не делает.
Решение
- Убедитесь, что плата, выбранная в среде IDE, совпадает с целевой платой.
- Это могло произойти из-за того, что размер эскиза больше, чем емкость платы. Проверьте размер эскиза и используйте некоторые из упомянутых выше методов, чтобы уменьшить размер.
- Наконец, эта ошибка может возникнуть при использовании источника питания с шумом. Убедитесь, что источник питания достаточно стабилен.
8. Ошибка неудовлетворенного соединения.
Вероятно, это единственная редкая ошибка, попавшая в этот список. Это происходит, когда на вашем ПК лежит старая версия коммуникационной библиотеки, скорее всего, от предыдущей установки.
Решение
Чтобы устранить эту ошибку, найдите comm.jar или jcl.jar в /System/Library/Frameworks/JavaVM.framework/ или в каталогах переменных среды CLASSPATH или PATH вашего ПК.
9. Слишком большой эскиз
Эта ошибка возникает, если размер вашего кода превышает размер флэш-памяти конкретной платы Arduino. Размер флеш-памяти Arduino Uno, например, составляет 32 КБ, причем 2 КБ уже используются загрузчиком Arduino. Если вы должны загрузить код размером более 32 КБ, Arduino отобразит это предупреждение.
Решение
Как упоминалось выше, это происходит, когда ваш эскиз больше, чем флеш-память конкретной платы, которую вы используете, поэтому для решения этой проблемы вам нужно найти способы уменьшить количество места, занимаемого вашим кодом. Некоторые из советов по достижению этого включают:
- По возможности используйте целочисленные типы данных вместо числа с плавающей запятой.
- По возможности используйте квалификатор «const» при объявлении переменных.
- Включите только необходимые библиотеки. По возможности используйте облегченные версии наиболее важных библиотек.
- Улучшение кода в целом. Разработайте алгоритмы, которые помогут сделать ваш код короче и в целом облегченным.
Более радикальным решением будет перенос проекта на другую плату, например на Arduino Mega, у которой флеш-память больше, чем у Uno.
10. java.lang.StackOverflowError
При обработке эскиза Arduino использует некоторые регулярные выражения для обработки и иногда путается, когда обнаруживает ошибки, связанные с определенными строками, например, отсутствующие кавычки.
Решение
Эта ошибка решается повторным взглядом на код, особенно на те части, где используются строковые последовательности. Убедитесь, что кавычки полные, обратная косая черта используется правильно и т. Д.
Существует ограничение на количество ошибок, которые можно уместить в одно руководство, и по этой причине мы остановимся на этом. Однако этот список содержит некоторые из наиболее распространенных ошибок, с которыми сталкиваются новички при использовании Arduin o. Вы боретесь с определенной ошибкой, не стесняйтесь оставлять комментарий, надеюсь, мы сможем решить эту проблему вместе.
В следующий раз.