- 1. Nie rozpoznano płyty Arduino
- 2. Karta nie jest zsynchronizowana
- 3. Kod nie uruchamia się po resecie zasilania
- 4. Błąd nieprawidłowego podpisu urządzenia
- 5. Błąd Launch4j
- 6. Port szeregowy już w użyciu
- 7: Szkic został przesłany pomyślnie, ale nic się nie dzieje
- 8. Błąd niezadowolonego łącza
- 9. Zbyt duży szkic
- 10. java.lang.StackOverflowError
Zaczynając jako początkujący z Arduino, może być dość trudne dla osób bez znajomości elektroniki, napotkasz błędy, z których niektóre mogą mieć proste rozwiązania, ale ich rozwiązanie może zająć kilka dni. Aby trochę ułatwić, stworzyłem listę 10 najpopularniejszych błędów Arduino wraz z możliwymi rozwiązaniami.
1. Nie rozpoznano płyty Arduino
Dotyczy to sytuacji, w której płytka Arduino podłączona do komputera nie jest rozpoznawana przez komputer. W takim przypadku płyta zazwyczaj nie jest wymieniona na liście portów Arduino IDE i czasami jest oznaczona jako USB2.0 w menedżerze urządzeń.
Rozwiązanie
Dzieje się tak, gdy używasz pewnych tanich klonów Arduino, które używają układu konwertera USB na szeregowy CH340g zamiast FTDI (FT232RL) i innych używanych przez standardowe płyty Arduino. Sterowniki dla układów USB na szeregowe używane przez standardowe płyty Arduino są zawsze pakowane wraz z plikiem instalacyjnym Arduino IDE, więc po zainstalowaniu IDE sterowniki są automatycznie instalowane na komputerze. Aby móc korzystać z tych płyt Arduino opartych na konwerterze USB na port szeregowy CH340g, będziesz musiał pobrać i zainstalować sterownik chipa. Sterownik można pobrać z tego linku. Instalacja jest tak prosta, jak kliknięcie przycisku instalacji w interfejsie konfiguracji pokazanym poniżej.
Po wykonaniu tej czynności powinieneś być w stanie zlokalizować port, do którego podłączona jest płytka w Arduino IDE.
2. Karta nie jest zsynchronizowana
Zwykle, gdy tak się stanie, nie będzie można przesłać kodu (chociaż IDE czasami wyświetla komunikat „gotowe przesyłanie”) do płyty Arduino, a IDE wyświetli kod błędu; „ Avrdude: stk500_getsync (): not in sync: resp = 0x00 ”.
Rozwiązanie
Sync: resp = 0x00 jest odpowiedzią generycznych, które przekłada się na „ ATmega układ nie pracuje ” na Arduino. Kiedy tak się dzieje, jest wiele rzeczy, które mogą być złe. Oto kilka kroków, które można podjąć, aby usunąć ten błąd.
1. Upewnij się, że nic nie jest podłączone do cyfrowych pinów 0 i 1 na Arduino (w tym osłony).
2. Upewnij się, że w menu narzędzi wybrano właściwy port COM i kartę.
3. Naciśnij kilka razy przycisk resetowania na Arduino i ponownie załaduj kod.
4. Odłącz i ponownie podłącz Arduino do komputera.
5. Uruchom ponownie Arduino IDE.
Jeśli to nie zadziała, być może nadszedł czas, aby spróbować użyć innej płyty Arduino z komputerem PC lub użyć „wadliwej” płyty Arduino z innym komputerem. Powinno to pomóc ci zidentyfikować, który z nich jest źródłem problemu. Jeśli odkryjesz, że problem dotyczy komputera, zainstaluj ponownie Arduino IDE. Jeśli jednak źródłem problemu jest „wadliwa” płytka Arduino, ostatecznym rozwiązaniem będzie flashowanie płyty z oprogramowaniem Arduino. Jeśli żadne z powyższych nie działa, być może nadszedł czas, aby zmienić płytkę Arduino.
3. Kod nie uruchamia się po resecie zasilania
Odnosi się to do przypadków, w których Arduino nie uruchamia przesłanego do niego szkicu po włączeniu, aw większości przypadków po prostu powraca do szkicu migania związanego z bootloaderem.
Rozwiązanie
Podobnie jak inne omówione problemy, istnieje wiele przyczyn, które mogą to powodować.
Jeśli tablica zawiesza się i nic nie robi, powinieneś sprawdzić swój kod, aby upewnić się, że nie wysyłasz danych szeregowych do tablicy, gdy się pojawiają. Po włączeniu Arduino bootloader w ciągu pierwszych kilku sekund nasłuchuje, czy komputer przesyła mu nowy szkic do przesłania na płytkę. Jeśli nowy szkic nie zostanie odebrany, po krótkiej chwili bootloader wyłączy się i uruchomi ostatni szkic przesłany na tablicę. Jeśli twój kod wysyła dane szeregowe w ciągu pierwszych kilku minut, bootloader nie wygaśnie, a ostatni szkic przesłany na płytę nie rozpocznie się.
Jeśli wysyłanie danych szeregowych zaraz po włączeniu płytki jest ważną częścią projektu, może być konieczne znalezienie sposobu na opóźnienie, aby dane szeregowe nie docierały natychmiast po włączeniu Arduino. Jeśli wprowadzenie zmian wpłynie na zadanie, które projekt ma wykonać, może być konieczne przesłanie szkicu na płytkę za pomocą zewnętrznego programatora, ponieważ bootloader można ominąć.
Jeśli płytka nie zawiesza się, ale powraca do szkicu migającego Arduino (dioda na pinie 13 miga od czasu do czasu), prostym rozwiązaniem będzie flashowanie płyty za pomocą bootloadera Arduino, ponieważ ten na płycie mógł być uszkodzony.
4. Błąd nieprawidłowego podpisu urządzenia
Ten błąd jest wyświetlany przy próbie wgrania kodu na płytkę inną niż wybrana z listy narzędzi> tablica w Arduino IDE. Ten błąd zwykle występuje w wyniku tego, że sygnatura urządzenia na płycie docelowej różni się od tej na płycie wybranej w IDE.
Rozwiązanie
Rozwiązanie tego błędu jest tak proste, jak zapewnienie wyboru właściwej płyty w Arduino IDE. Jeśli to nie zadziała, może zaistnieć potrzeba flashowania mikrokontrolera najnowszą wersją bootloadera Arduino.
5. Błąd Launch4j
Arduino IDE czasami zajmuje trochę czasu przed załadowaniem, a po załadowaniu, jeśli cokolwiek klikniesz, wyświetli błąd Launch4J, jak pokazano powyżej. Launch4j to narzędzie używane do pakowania aplikacji Java (jars) w natywny plik wykonywalny systemu Windows, dzięki czemu można ich używać jako zwykłego programu Windows.
Samo Arduino IDE jest napisane w JAVA i ten błąd występuje z powodu niekompatybilności biblioteki Java Run Time Environment (JRE) dostarczanej z Arduino IDE.
Rozwiązanie
Z doświadczenia wynika, że ten błąd można usunąć za pomocą czegoś tak prostego, jak wyłączenie łączności Bluetooth lub Wi-Fi na komputerze. Jednak bardziej kompletnym i trwałym rozwiązaniem jest zastąpienie JRE w pakiecie Arduino najnowszą wersją.
6. Port szeregowy już w użyciu
Jest to prawdopodobnie jeden z najłatwiejszych do rozwiązania błędów. Zwykle występuje, gdy próbujesz przesłać kod do Arduino, gdy monitor szeregowy jest otwarty (nie stanowi to już problemu, jeśli używasz ostatnich wersji IDE) lub gdy próbujesz uruchomić monitor szeregowy, gdy Arduino komunikuje się z innym oprogramowaniem lub urządzeniem przez port szeregowy. Zasadniczo występuje, gdy próbujesz użyć portu szeregowego Arduino do dwóch różnych rzeczy w tym samym czasie.
Rozwiązanie
Tak jak sugerowało IDE, zamknij wszystkie inne programy / narzędzia (w tym monitor / ploter szeregowy), które mogą korzystać z portu COM. Jeśli nie masz pewności co do konkretnego oprogramowania, odłącz Arduino. Powinien być gotowy do pracy przed ponownym podłączeniem.
7: Szkic został przesłany pomyślnie, ale nic się nie dzieje
Ten błąd jest podobny do niektórych innych błędów omówionych powyżej. W przypadku tego błędu Arduino IDE zasugeruje, że kod został pomyślnie przesłany, ale płyta nic nie robi.
Rozwiązanie
- Upewnij się, że płyta wybrana w IDE jest taka sama jak płyta docelowa.
- Może to być spowodowane tym, że rozmiar szkicu jest większy niż pojemność płytki. Sprawdź rozmiar szkicu i użyj niektórych z metod wymienionych powyżej, aby zmniejszyć rozmiar.
- Wreszcie ten błąd może wystąpić, gdy używany jest zaszumiony zasilacz. Upewnij się, że zasilacz jest wystarczająco stabilny.
8. Błąd niezadowolonego łącza
Jest to prawdopodobnie jedyny rzadki błąd, który znalazł się na tej liście. Dzieje się tak, gdy na komputerze znajduje się stara wersja biblioteki komunikacyjnej, najprawdopodobniej z poprzedniej instalacji.
Rozwiązanie
Aby rozwiązać ten błąd, wyszukaj comm.jar lub jcl.jar w /System/Library/Frameworks/JavaVM.framework/ lub w katalogach zmiennych środowiskowych CLASSPATH lub PATH na komputerze.
9. Zbyt duży szkic
Ten błąd występuje, gdy twój kod jest większy niż pamięć flash tej konkretnej płyty Arduino. Na przykład rozmiar pamięci flash Arduino Uno to 32Kb, przy czym 2KB jest już używane przez bootloader Arduino. Jeśli powinieneś przesłać kod o rozmiarze większym niż 32Kb, Arduino wyświetli to ostrzeżenie.
Rozwiązanie
Jak wspomniano powyżej, dzieje się tak, gdy twój szkic jest większy niż pamięć flash konkretnej płyty, której używasz, więc aby rozwiązać ten problem, musisz znaleźć sposoby na zmniejszenie ilości miejsca zajmowanego przez twój kod. Oto niektóre wskazówki, jak to osiągnąć;
- Tam, gdzie to możliwe, zamiast liczb zmiennoprzecinkowych używaj typów danych całkowitych.
- Tam, gdzie to możliwe, podczas deklarowania zmiennych należy używać kwalifikatora „const”.
- Uwzględnij tylko niezbędne biblioteki. Tam, gdzie to możliwe, używaj uproszczonych wersji najważniejszych bibliotek.
- Popraw ogólnie kod. Twórz algorytmy, które mogą pomóc skrócić kod i ogólnie zmniejszyć wagę.
Bardziej radykalnym rozwiązaniem będzie przeniesienie projektu na inną płytkę, taką jak Arduino Mega, która ma większą pamięć flash w porównaniu do Uno.
10. java.lang.StackOverflowError
Podczas przetwarzania szkicu Arduino używa pewnych wyrażeń regularnych do przetwarzania i czasami jest zdezorientowany, gdy napotyka pewne błędy związane z ciągami, takie jak brakujące cudzysłowy.
Rozwiązanie
Ten błąd można rozwiązać, ponownie przyglądając się kodowi, zwłaszcza częściom, w których używane są sekwencje ciągów. Upewnij się, że cudzysłowy są kompletne, ukośniki odwrotne są prawidłowo używane itp.
Istnieje ograniczenie liczby błędów, które można zmieścić w jednym samouczku, dlatego na tym się zatrzymamy. Jednak ta lista zawiera niektóre z najczęstszych błędów napotykanych przez początkujących podczas korzystania z Arduin o. Czy walczysz z konkretnym błędem, możesz zostawić komentarz, miejmy nadzieję, że możemy go razem przepracować.
Następnym razem.