- 1. Arduino lenta nepripažinta
- 2. Valdyba nėra sinchronizuota
- 3. Kodas neprasideda „Power Reset“
- 4. Neteisinga įrenginio parašo klaida
- 5. „Launch4j“ klaida
- 6. Jau naudojamas nuoseklusis prievadas
- 7: eskizų įkėlimas sėkmingai, bet nieko neįvyksta
- 8. Nepatenkintos nuorodos klaida
- 9. Per didelis eskizas
- 10. java.lang.StackOverflowError
Pradėti nuo „Arduino“ pradedančiųjų gali būti gana sunku žmonėms, neturintiems elektronikos fono, galite susidurti su klaidomis, kai kurios iš jų gali turėti paprastus sprendimus, tačiau gali užtrukti kelias dienas. Taigi, kad viskas būtų šiek tiek lengviau, aš sukūriau 10 populiariausių „Arduino“ klaidų sąrašą ir galimus jų sprendimus.
1. Arduino lenta nepripažinta
Tai reiškia situaciją, kai kompiuteris neatpažįsta „Arduino“ plokštės, prijungtos prie kompiuterio. Kai taip atsitinka, plokštė paprastai nėra įtraukta į „Arduino IDE“ prievadų sąrašus, o įrenginių tvarkyklėje ji kartais pažymima USB2.0.
Sprendimas
Taip atsitinka, kai naudojate tam tikrus pigius „Arduino“ klonus, kurie naudoja CH340g USB į nuosekliojo keitiklio lustą vietoj FTDI (FT232RL) ir kitus, kuriuos naudoja standartinės „Arduino“ plokštės. Standartinių „Arduino“ plokščių naudojami USB į nuosekliųjų lustų tvarkyklės visada yra supakuotos kartu su „Arduino IDE“ sąrankos failu, taigi, kai įdiegiate IDE, tvarkyklės automatiškai įdiegiamos jūsų kompiuteryje. Norėdami naudoti šią „CH340g USB to Serial“ keitiklio pagrindu pagamintas „Arduino“ plokštes, turėsite atsisiųsti ir įdiegti lusto tvarkyklę. Tvarkyklę galima atsisiųsti iš šios nuorodos. Jį įdiegti taip pat paprasta, kaip spustelėti diegimo mygtuką toliau pateiktoje sąrankos sąsajoje.
Tai atlikę, dabar turėtumėte rasti „Arduino IDE“ prievadą, prie kurio prijungta plokštė.
2. Valdyba nėra sinchronizuota
Paprastai, kai taip atsitinka, negalėsite įkelti kodo (nors IDE kartais rodys „baigtas įkėlimas“) į „Arduino“ lentą, o IDE parodys klaidos kodą; „ Avrdude: stk500_getsync (): nėra sinchronizuotas: resp = 0x00 “.
Sprendimas
Sinchronizacija: Resp = 0x00 "yra bendrinis atsakymas, kad verčia į" ATMega lustas neveikia "ant Arduino. Kai taip atsitinka, yra daugybė dalykų, kurie gali būti neteisingi. Štai keli veiksmai, kurių galima imtis norint pašalinti šią klaidą.
1. Įsitikinkite, kad „Arduino“ nėra nieko prijungta prie skaitmeninių kaiščių 0 ir 1 (įskaitant skydus).
2. Įsitikinkite, kad įrankių meniu buvo pasirinktas tinkamas prievadas ir plokštė.
3. Kelis kartus paspauskite „Arduino“ mygtuką iš naujo ir įkelkite kodą iš naujo.
4. Atjunkite ir vėl prijunkite „Arduino“ prie kompiuterio.
5. Perkraukite „Arduino IDE“.
Jei kas nors iš to neveikia, gali būti laikas pabandyti naudoti kitą „Arduino“ plokštę su kompiuteriu arba „sugedusią“ „Arduino“ plokštę naudoti su kitu kompiuteriu. Tai turėtų padėti nustatyti, kuri iš jų yra problemos kilmė. Jei pastebėsite, kad problema yra susijusi su kompiuteriu, iš naujo įdiekite „Arduino IDE“. Tačiau jei „sugedusi“ „Arduino“ plokštė yra problemos šaltinis, galutinis sprendimas bus valdyti plokštę su „Arduino“ programine įranga. Jei nė vienas iš aukščiau išvardytų dalykų neveikia, gali būti laikas pakeisti „Arduino“ lentą.
3. Kodas neprasideda „Power Reset“
Tai reiškia atvejus, kai „ Arduino“ neveikia į jį įkelto eskizo, kai jis įjungtas, ir daugeliu atvejų tiesiog grįžta prie mirksinčio eskizo, susijusio su įkrovos įkrovikliu.
Sprendimas
Tai gali sukelti keli dalykai, kaip ir kitos gydomos problemos.
Jei lenta pakimba ir nieko nedaro, turėtumėte patikrinti savo kodą, kad įsitikintumėte, jog nesiunčiate nuoseklių duomenų į plokštę, kai ji įsijungia. Įjungus „Arduino“, įkrovos įrankis per kelias pirmąsias sekundes klausosi kompiuterio, kad jis atsiųstų jam naują eskizą, skirtą įkelti į lentą. Jei negausite naujo eskizo, po kurio laiko įkrovos įrankis pasibaigs ir paleis paskutinį į lentą įkeltą eskizą. Jei jūsų kodas siunčia nuoseklius duomenis per kelias pirmąsias minutes, įkrovos tvarkyklė nesibaigs ir paskutinis į lentą įkeltas eskizas nebus paleistas.
Jei nuoseklių duomenų siuntimas, kai tik plokštė įsijungia, yra svarbi jūsų projekto dalis, jums gali tekti rasti būdą, kaip duoti tam tikrą vėlavimą sustabdyti serijos duomenų gavimą iš karto, kai įsijungia „Arduino“. Jei koregavimai paveiks projekto užduotį, gali tekti įkelti savo eskizą į plokštę naudojant išorinį programuotoją, nes jie gali apeiti įkrovos tvarkyklę.
Jei lenta neužkabins, bet grįš prie „Arduino“ mirksėjimo eskizo („Led on 13“ kaištis mirksi kaskart), paprastas sprendimas bus valdyti lentą „Arduino“ įkrovos įtaisu, nes lentoje esantis elementas gali būti sugadintas..
4. Neteisinga įrenginio parašo klaida
Ši klaida rodoma, kai bandoma įkelti kodą į plokštę, skirtingą nuo pasirinktos „Arduino IDE“ sąraše įrankiai> lenta. Ši klaida dažniausiai įvyksta dėl to, kad įrenginio parašas tikslinėje plokštėje skiriasi nuo plokštės, pasirinktos IDE.
Sprendimas
Šios klaidos sprendimas yra toks pat paprastas, kaip užtikrinti, kad „Arduino IDE“ būtų pasirinkta teisinga plokštė. Jei tai neveikia, gali tekti mirksinti mikrovaldiklį su naujausia „Arduino“ įkrovos versijos versija.
5. „Launch4j“ klaida
„Arduino IDE“ kartais užtrunka šiek tiek prieš įkeliant, o kai jis įkeliamas, jei ką nors spustelėsite, bus rodoma „Launch4J“ klaida, kaip parodyta aukščiau. „Launch4j“ yra įrankis, naudojamas „Java“ programoms (stiklainiams) įvynioti į „Windows“ gimtąjį vykdomąjį failą, leidžiantį jas naudoti kaip įprastą „Windows“ programą.
Pats „Arduino IDE“ yra parašytas JAVA ir ši klaida atsiranda dėl „Java Run Time Environment“ (JRE) bibliotekos, pateikiamos kartu su „Arduino IDE“, nesuderinamumo.
Sprendimas
Iš patirties ši klaida gali būti pašalinta tokiu paprastu būdu, kaip išjungiant kompiuterio „Bluetooth“ ar „WiFi“ ryšį. Tačiau išsamesnis ir nuolatinis sprendimas yra pakeisti „JRE“ pakete „Arduino “ naujausia versija.
6. Jau naudojamas nuoseklusis prievadas
Tai tikriausiai yra viena iš paprasčiausių klaidų. Dažniausiai tai atsitinka, kai bandote įkelti kodą į „Arduino“, kol atidarytas serijinis monitorius (tai nebėra problema, jei naudojate naujausias IDE versijas) arba bandant paleisti serijinį monitorių, kai „Arduino“ kalba su kita programine įranga ar įrenginiu per nuoseklųjį prievadą. Iš esmės tai atsitinka, kai bandote „Arduino“ nuoseklųjį prievadą naudoti dviem skirtingiems dalykams vienu metu.
Sprendimas
Kaip ir IDE, uždarykite bet kurią kitą programinę įrangą / įrankį (įskaitant nuoseklųjį monitorių / braižytuvą), kurie gali naudoti „Com“ prievadą. Jei nesate tikri dėl konkrečios programinės įrangos, atjunkite „Arduino“. Kai jis bus prijungtas, jis turėtų būti paruoštas.
7: eskizų įkėlimas sėkmingai, bet nieko neįvyksta
Ši klaida yra panaši į kai kurias kitas anksčiau aptartas klaidas. Dėl šios klaidos „Arduino IDE“ pasiūlys, kad kodas būtų sėkmingai įkeltas, tačiau lenta nieko nedaro.
Sprendimas
- Įsitikinkite, kad IDE pasirinkta lenta yra tokia pati kaip tikslinė plokštė.
- Tai gali būti dėl to, kad eskizo dydis yra didesnis nei plokštės talpa. Patikrinkite eskizo dydį ir naudokite kai kuriuos aukščiau paminėtus metodus, kad sumažintumėte dydį.
- Galiausiai ši klaida gali atsirasti, kai naudojamas triukšmingas maitinimo šaltinis. Įsitikinkite, kad maitinimo šaltinis yra pakankamai stabilus.
8. Nepatenkintos nuorodos klaida
Tai turbūt vienintelė reta klaida, patekusi į šį sąrašą. Taip atsitinka, kai kompiuteryje yra sena ryšio bibliotekos versija, greičiausiai iš ankstesnio diegimo.
Sprendimas
Norėdami išspręsti šią klaidą, ieškokite comm.jar arba jcl.jar aplanke /System/Library/Frameworks/JavaVM.framework/ arba kataloguose, esančiuose jūsų kompiuterio aplinkos kintamuosiuose CLASSPATH arba PATH .
9. Per didelis eskizas
Ši klaida įvyksta, kai jūsų kodas yra didesnis nei tos „ Arduino“ plokštės „ flash“ atmintis. Pavyzdžiui, „Arduino Uno“ „flash“ atminties dydis yra 32 KB, o 2 KB jau naudoja „Arduino“ įkrovos programa. Jei turėtumėte įkelti kodą, kurio dydis yra didesnis nei 32 KB, „Arduino“ parodys šį įspėjimą.
Sprendimas
Kaip minėta pirmiau, taip atsitinka, kai jūsų eskizas yra didesnis nei naudojamos plokštės „flash“ atmintis, taigi, norėdami tai išspręsti, turite rasti būdų, kaip sumažinti jūsų kodo užimamą vietą. Keletas patarimų, kaip tai pasiekti;
- Jei įmanoma, vietoj plūdės naudokite sveikų skaičių duomenų tipus.
- Kur įmanoma, deklaruodami kintamuosius naudokite „const“ kvalifikatorių.
- Įtraukite tik būtinas bibliotekas. Kur įmanoma, naudokite lengvąsias svarbiausių bibliotekų versijas.
- Patobulinkite kodą apskritai. Sukurkite algoritmus, kurie padėtų jūsų kodą padaryti trumpesnį ir paprastai lengvą.
Radikalesnis sprendimas bus projekto perkėlimas į kitą plokštę, pvz., „Arduino Mega“, kuri turi didesnę „flash“ atmintį, palyginti su „Uno“.
10. java.lang.StackOverflowError
Apdorodamas eskizą „Arduino“ apdorojimui naudoja keletą reguliarių išraiškų ir kartais sutrinka, kai susiduria su tam tikromis eilutėmis susijusiomis klaidomis, pavyzdžiui, trūksta kabučių.
Sprendimas
Ši klaida išspręsta antrą kartą pažvelgus į kodą, ypač tas dalis, kuriose naudojamos eilutės sekos. Įsitikinkite, kad citatos yra išsamios, atgaliniai brūkšniai naudojami tinkamai ir t. T.
Klaidų, kurias galima sutalpinti į vieną pamoką, skaičius yra ribotas, todėl mes čia ir sustosime. Tačiau šiame sąraše yra keletas dažniausiai pasitaikančių klaidų, su kuriomis susiduria pradedantieji, naudodami „ Arduin o“. Ar kovojate su tam tikra klaida, nedvejodami palikite komentarą, tikėkimės, mes galime tai išspręsti kartu.
Kitą kartą.