- 1. Arduino Board не е разпознат
- 2. Дъската не е в синхрон
- 3. Кодът не стартира при Power Reset
- 4. Невалидна грешка при подписване на устройство
- 5. Грешка при стартиране4j
- 6. Серийният порт вече се използва
- 7: Скица се качва успешно, но нищо не се случва
- 8. Неудовлетворена грешка в връзката
- 9. Скица твърде голяма
- 10. java.lang.StackOverflowError
Започването като начинаещ с Arduino може да бъде доста предизвикателно за хора без електроника, може да срещнете грешки, някои от които може да имат прости решения, но може да ви отнеме дни, за да ги решите. Така че, за да улесня малко нещата, създадох списък с 10 най-популярни грешки в Arduino заедно с възможни решения за тях.
1. Arduino Board не е разпознат
Това се отнася до ситуация, при която платка Arduino, свързана към компютър, не се разпознава от компютъра. Когато това се случи, платката обикновено не е в списъка с портове на IDE на Arduino и понякога е обозначена с USB2.0 под диспечера на устройствата.
Решение
Това се случва, когато използвате определени евтини клонинги на Arduino, които използват преобразувателния чип USB към сериен CH340g вместо FTDI (FT232RL) и други, използвани от стандартните Arduino платки. Драйверите за USB към серийни чипове, използвани от стандартните платки Arduino, са винаги пакетирани заедно с файла за настройка на Arduino IDE, така че когато инсталирате IDE, драйверите се инсталират автоматично на вашия компютър. За да можете да използвате тази платка Arduino, базирана на USB към сериен конвертор CH340g, ще трябва да изтеглите и инсталирате драйвера за чипа. Драйверът може да бъде изтеглен от тази връзка. Инсталирането му е толкова просто, колкото щракването върху бутона за инсталиране на интерфейса за настройка, показан по-долу.
След като направите това, вече трябва да можете да намерите порта, към който е свързана платката, в IDE на Arduino.
2. Дъската не е в синхрон
Обикновено, когато това се случи, няма да можете да качите код (въпреки че IDE понякога ще показва „готово качване“) на дъската на Arduino и IDE ще покаже кода за грешка; “ Avrdude: stk500_getsync (): не е в синхрон: resp = 0x00 ”.
Решение
В синхронизация: респ = 0x00 е общ отговор, който превежда на " Atmega чип не работи " на Ардуино. Когато това се случи, има цял куп неща, които могат да се объркат. Ето няколко стъпки, които биха могли да бъдат предприети за отстраняване на тази грешка.
1. Уверете се, че няма нищо свързано с цифрови щифтове 0 и 1 на Arduino (включително щитове).
2. Уверете се, че в менюто с инструменти са избрани правилните порта и борда.
3. Натиснете бутона за нулиране на Arduino няколко пъти и качете отново кода.
4. Изключете и свържете отново Arduino към компютъра.
5. Рестартирайте Arduino IDE.
Ако нещо от това не работи, може би е време да опитате да използвате друга платка Arduino с компютъра или да използвате „дефектната“ платка Arduino с друг компютър. Това трябва да ви помогне да установите кой от тях е произходът на проблема. Ако откриете, че проблемът е в компютъра, преинсталирайте Arduino IDE. Ако обаче проблемният източник е „дефектната“ платка Arduino, крайното решение ще бъде да мигате платката с фърмуера на Arduino. Ако нищо от горното не работи, може би е време да промените Arduino Board.
3. Кодът не стартира при Power Reset
Това се отнася до случаите, когато Arduino не изпълнява скицата, качена в него, когато е включен и в повечето случаи просто се връща обратно към мигащата скица, свързана с буутлоудъра.
Решение
Подобно на другите лекувани проблеми, има редица неща, които могат да причинят това.
Ако платката виси и не прави нищо, трябва да проверите кода си, за да сте сигурни, че не изпращате серийни данни на платката, когато се появи. Когато Arduino е включен, в първите няколко секунди буутлоудърът слуша компютъра, за да му изпрати нова скица за качване на дъската. Ако не се получи нова скица, след кратко време, буутлоудъра ще изтече и ще стартира последната скица, качена на дъската. Ако вашият код изпраща серийни данни през първите няколко минути, зареждащият файл няма да изтече и последната скица, качена на дъската, няма да стартира.
Ако изпращането на серийни данни веднага след включването на платката е важна част от вашия проект, може да се наложи да намерите начин да го забавите, за да спрете серийните данни да пристигат веднага, когато Arduino се появи. Ако извършването на корекции ще повлияе на задачата, която проектът трябва да изпълни, може да се наложи да качите скицата си на дъската с помощта на външен програмист, тъй като буутлоудъра може да бъде заобиколен от тях.
Ако платката не виси, но се връща към скицата на мига на Arduino (Led на щифт 13 мига от време на време), пряко решение ще бъде мигането на дъската с Arduino буутлоудъра, тъй като този на платката може да е повреден.
4. Невалидна грешка при подписване на устройство
Тази грешка се показва, когато се прави опит за качване на код на платка, различна от тази, избрана под инструментите> списък на платки в IDE на Arduino. Тази грешка обикновено възниква в резултат на това, че подписът на устройството на целевата платка е различен от този на платката, избрана в IDE.
Решение
Решението на тази грешка е толкова просто, колкото да се гарантира, че е избрана правилната платка в IDE на Arduino. Ако това не работи, може да се наложи да включите микроконтролера с последната версия на Arduino bootloader.
5. Грешка при стартиране4j
IDE на Arduino понякога отнема известно време, преди да се зареди и когато се зареди, ако щракнете върху нещо, ще покаже грешката Launch4J, както е показано по-горе. Launch4j е инструмент, използван за опаковане на Java приложения (буркани) в роден изпълним файл на Windows, което им позволява да се използват като обикновена програма на Windows.
Самата IDE на Arduino е написана в JAVA и тази грешка възниква поради несъвместимостта на библиотеката Java Run Time Environment (JRE), доставена с Arduino IDE.
Решение
От опит тази грешка може да бъде отстранена с нещо толкова просто, като изключване на Bluetooth или WiFi връзка на вашия компютър. По-пълно и постоянно решение обаче е да замените 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, например, е 32Kb, като 2KB вече се използва от буутлоудъра на Arduino. Ако трябва да качите код с размер по-голям от 32Kb, Arduino ще покаже това предупреждение.
Решение
Както бе споменато по-горе, това се случва, когато вашата скица е по-голяма от флаш паметта на конкретната платка, която използвате, като по този начин, за да разрешите това, трябва да намерите начини за намаляване на пространството, заето от вашия код. Някои от съветите за постигане на това включват;
- Където е възможно, използвайте целочислени типове данни вместо плувка.
- Когато е възможно, използвайте квалификатора „const“, когато декларирате променливи.
- Включете само необходимите библиотеки. Когато е възможно, използвайте олекотените версии на най-важните библиотеки.
- Подобряване на кода като цяло. Разработете алгоритми, които могат да ви помогнат да направите вашия код по-кратък и като цяло лек.
По-радикално решение ще бъде преместването на проекта на друга платка, като Arduino Mega, която има по-голяма флаш памет в сравнение с Uno.
10. java.lang.StackOverflowError
Когато обработва скицата, Arduino използва някои регулярни изрази за обработка и понякога се обърква, когато срещне определени грешки, свързани с низове, като липсващи кавички.
Решение
Тази грешка се решава чрез втори поглед на кода, особено на частите, където се използват последователности от низове. Уверете се, че офертите са пълни, обратните наклонени черти се използват правилно и т.н.
Има ограничение за броя на грешките, които човек може да побере в един урок и поради тази причина ще спрем тук. Този списък обаче съдържа някои от най -често срещаните грешки, с които се сблъскват начинаещите при използване на Arduin o. Справяте ли се с определена грешка, не се колебайте да пуснете коментар, надяваме се, че можем да я преработим заедно
Следващият път.