- 1. Az Arduino Board nincs elismerve
- 2. A tábla nincs szinkronban
- 3. A kód nem a Power Reset-nél indul
- 4. Érvénytelen eszközaláírási hiba
- 5. Launch4j hiba
- 6. A soros port már használatban van
- 7: A vázlat feltöltése sikeres, de semmi sem történik
- 8. Elégedetlen link hiba
- 9. Túl nagy vázlat
- 10. java.lang.StackOverflowError
Az Arduino kezdőként való indulása meglehetősen nagy kihívást jelenthet az elektronikai háttérrel nem rendelkező emberek számára, hibákkal találkozhat, amelyek közül néhánynak egyszerű megoldásai lehetnek, de napokig eltarthat. Tehát, hogy egy kicsit megkönnyítsem a dolgokat, létrehoztam egy listát 10 legnépszerűbb Arduino hibáról, a lehetséges megoldásokkal együtt.
1. Az Arduino Board nincs elismerve
Ez olyan helyzetre utal, amikor a számítógéphez csatlakoztatott Arduino kártyát a számítógép nem ismeri fel. Amikor ez megtörténik, a kártya általában nem szerepel az Arduino IDE portlistáinál, és az eszközkezelő alatt néha USB2.0 feliratú.
Megoldás
Ez akkor történik, amikor bizonyos olcsó Arduino klónokat használ, amelyek a CH340g USB-Serial átalakító chipet használják az FTDI (FT232RL) helyett, és másokat, amelyeket a szokásos Arduino táblák használnak. A szabványos Arduino táblák által használt USB - soros chipek illesztőprogramjait mindig az Arduino IDE telepítőfájljával együtt csomagolják, így az IDE telepítésekor az illesztőprogramok automatikusan települnek a számítógépre. Ahhoz, hogy használni tudja ezt a CH340g USB to Serial Converter alapú Arduino kártyát, le kell töltenie és telepítenie kell a chip illesztőprogramját. Az illesztőprogram erről a linkről tölthető le. Telepítése olyan egyszerű, mint az alább látható telepítő felületen a telepítés gombra kattintani.
Ezzel megtörténik az Arduino IDE portjának megkeresése, amelyhez a kártya csatlakozik.
2. A tábla nincs szinkronban
Általában, amikor ez megtörténik, akkor nem tudja feltölteni a kódot (Bár az IDE időnként a „feltöltés befejeződött” felirat jelenik meg) az Arduino táblára, és az IDE megjeleníti a hibakódot; “ Avrdude: stk500_getsync (): nincs szinkronban: ill = 0x00 ”.
Megoldás
A szinkron: resp = 0x00 egy általános válasz, amely az Arduino „ Atmega chipje nem működik ” fordítását jelenti. Amikor ez megtörténik, egy csomó olyan dolog van, ami téves lehet. Íme néhány lépés, amelyet megtehet a hiba elhárításához.
1. Győződjön meg arról, hogy nincs semmi csatlakoztatva az Arduino 0 és 1 digitális csatlakozóihoz (beleértve a pajzsokat).
2. Ellenőrizze, hogy az eszközök menüben a megfelelő portot és alaplapot választották-e ki.
3. Nyomja meg párszor az Arduino reset gombját, és töltse fel újra a kódot.
4. Húzza ki és csatlakoztassa újra az Arduino-t a számítógéphez.
5. Indítsa újra az Arduino IDE alkalmazást.
Ha ezek bármelyike nem működik, akkor ideje lenne megpróbálnia egy másik Arduino kártya használatát a számítógéppel, vagy a „hibás” Arduino kártya használatát egy másik számítógéppel. Ez segíthet abban, hogy azonosítsa, melyikük okozza a problémát. Ha kiderül, hogy a probléma a PC-vel van, telepítse újra az Arduino IDE-t. Ha azonban a „hibás” Arduino tábla jelenti a probléma forrását, akkor végső megoldás az lesz, hogy az alaplapot az Arduino firmware-rel villogtatja. Ha a fentiek egyike sem működik, akkor ideje, hogy megváltoztassa az Arduino Board-ot.
3. A kód nem a Power Reset-nél indul
Ez olyan esetekre vonatkozik, amikor az Arduino bekapcsolt állapotban nem futtatja a hozzá feltöltött vázlatot, és a legtöbb esetben csak visszatér a rendszerindítóhoz társított villogó vázlathoz.
Megoldás
Csakúgy, mint a többi kezelt probléma, számos dolog okozhatja ezt.
Ha a tábla lefagy és nem csinál semmit, ellenőrizze a kódját, hogy megbizonyosodjon arról, hogy nem soros adatokat küld a táblára, amikor azok bekapcsolnak. Amikor az Arduino be van kapcsolva, a rendszerbetöltő az első néhány másodpercben meghallgatja a számítógépet, hogy új vázlatot küldjön neki a táblára való feltöltésre. Ha nem érkezik új vázlat, rövid idő múlva a rendszerbetöltő időtúllép, és lefuttatja a táblára utoljára feltöltött vázlatot. Ha a kódod az első néhány percben soros adatokat küld, a rendszerbetöltő nem késlelteti az időt, és a táblára utoljára feltöltött vázlat nem indul el.
Ha a soros adatok elküldése, amint a tábla bekapcsol, fontos része a projektnek, akkor lehet, hogy meg kell találnia a módját, hogy késleltesse a soros adatok érkezését az Arduino azonnal bekapcsolásakor. Ha a módosítások hatással lesznek a projekt végrehajtására, akkor előfordulhat, hogy külső programozó segítségével kell feltölteni a vázlatot a táblára, mivel a rendszerbetöltőt megkerülhetik.
Ha a tábla nem lóg, hanem visszatér az Arduino blink vázlathoz (a 13-as érintkező led villog hébe-hóba), akkor egy egyszerű javítás lesz a tábla villogása az Arduino bootloaderrel, mivel a táblán lévő sérült lehet.
4. Érvénytelen eszközaláírási hiba
Ez a hiba akkor jelenik meg, amikor megpróbálnak kódot feltölteni egy táblára, amely eltér az Arduino IDE eszköz> tábla listájában kiválasztottól. Ez a hiba általában annak a következménye, hogy az eszköz aláírása a céltáblán eltér az IDE-n kiválasztott táblától.
Megoldás
A hiba megoldása olyan egyszerű, mint az Arduino IDE-n a megfelelő kártya kiválasztása. Ha ez nem működik, akkor szükség lehet a mikrovezérlő villantására az Arduino bootloader legújabb verziójával.
5. Launch4j hiba
Az Arduino IDE néha eltart egy ideig, mielőtt betöltődik, és amikor betöltődik, ha bármire kattint, megjeleníti a Launch4J hibát a fentiek szerint. A Launch4j egy olyan eszköz, amely a Java-alkalmazások (tégelyek) csomagolására szolgál a Windows natív futtatható fájljában, lehetővé téve számukra, hogy rendes Windows-programként használják őket.
Az Arduino IDE maga JAVA-ba van írva, és ez a hiba az Arduino IDE-hez mellékelt Java Run Time Environment (JRE) könyvtár inkompatibilitása miatt következik be.
Megoldás
Tapasztalatból kiderül, hogy ezt a hibát oly egyszerű módon lehet eltávolítani, mint a számítógép Bluetooth vagy WiFi kapcsolatának kikapcsolása. Teljesebb és tartósabb megoldás azonban az, hogy az Arduino csomagban lévő JRE- t egy újabb verzióval cseréljük le.
6. A soros port már használatban van
Ez valószínűleg az egyik legkönnyebben megoldható hiba. Általában akkor fordul elő, amikor megpróbál kódot feltölteni egy Arduino-ba, miközben a soros monitor nyitva van (ez már nem probléma, ha legújabb IDE verziókat használ), vagy amikor megpróbálja elindítani a soros monitort, amikor az Arduino egy másik szoftverrel vagy eszközzel beszélget a soros porton keresztül. Lényegében akkor fordul elő, amikor az Arduino soros portot egyszerre két különböző dologra próbálja használni.
Megoldás
Csakúgy, mint az IDE javasolta, zárjon be minden más szoftvert / eszközt (beleértve a soros monitort / plottert), amely esetleg használja a com portot. Ha nem biztos az adott szoftverben, húzza ki az Arduino csatlakozóját. Készen kell állnia, mire visszacsatlakoztatja.
7: A vázlat feltöltése sikeres, de semmi sem történik
Ez a hiba hasonló a fentiekben már kezelt többi hibához. Erre a hibára az Arduino IDE azt sugallja, hogy a kód sikeresen feltöltésre került, de a tábla nem tesz semmit.
Megoldás
- Győződjön meg arról, hogy az IDE-ben kiválasztott tábla megegyezik a céltáblával.
- Ennek az lehet az eredménye, hogy a vázlat mérete nagyobb, mint a tábla kapacitása. Ellenőrizze a vázlat méretét, és használja a fent említett módszereket a méret csökkentéséhez.
- Végül ez a hiba akkor fordulhat elő, ha zajos tápegységet használnak. Győződjön meg arról, hogy az áramellátás elég stabil.
8. Elégedetlen link hiba
Valószínűleg ez az egyetlen ritka hiba, amely bekerült erre a listára. Ez akkor fordul elő, amikor a kommunikációs könyvtár régi verziója fekszik a számítógépen, valószínűleg egy korábbi telepítésből származik.
Megoldás
A hiba elhárításához keressen a comm.jar vagy a jcl.jar kifejezésre a /System/Library/Frameworks/JavaVM.framework/ fájlban, vagy a számítógép CLASSPATH vagy PATH környezeti változóinak könyvtáraiban.
9. Túl nagy vázlat
Ez a hiba akkor fordul elő, ha a kód nagyobb, mint az adott Arduino kártya flash memóriája. Az Arduino Uno flash memóriájának mérete például 32Kb, 2KB-ot már használ az Arduino bootloader. Ha 32Kb-nál nagyobb méretű kódot kell feltölteni, az Arduino megjeleníti ezt a figyelmeztetést.
Megoldás
Mint fent említettük, ez akkor fordul elő, ha a vázlata nagyobb, mint az adott kártya flash memóriája, amelyet használ, ezért ennek megoldásához meg kell találnia a kód által elfoglalt hely mennyiségének csökkentését. Néhány tipp ennek elérésére:
- Ahol lehetséges, egész szám adattípusokat használjon egy úszó helyett.
- Ha lehetséges, használja a „const” minősítőt a változók deklarálásakor.
- Csak a szükséges könyvtárakat tartalmazza. Ahol lehetséges, használja a legfontosabb könyvtárak könnyű változatát.
- Javítsa a kódot általában. Fejlesszen ki algoritmusokat, amelyek elősegíthetik a kód rövidítését és általában könnyűségét.
Radikálisabb megoldás a projekt másik táblára való áthelyezése, például az Arduino Mega, amelynek az flash-memóriája nagyobb, mint az Uno-ban.
10. java.lang.StackOverflowError
A vázlat feldolgozása során az Arduino néhány reguláris kifejezést használ a feldolgozáshoz, és néha megzavarodik, amikor bizonyos húrokkal kapcsolatos hibákkal találkozik, például hiányzó idézetekkel.
Megoldás
Ezt a hibát úgy oldják meg, hogy egy második pillantást vetnek a kódra, különösen azokra a részekre, ahol a karakterlánc-sorozatokat használják. Győződjön meg arról, hogy az idézetek teljesek-e, a visszavonások helyesen vannak-e használva stb.
Korlátozott azon hibák száma, amelyek beilleszthetők egyetlen oktatóanyagba, és ezért itt megállunk. Ez a lista azonban tartalmazza a kezdők leggyakoribb hibáit az Arduin o használatakor. Egy adott hibával küzd, nyugodtan dobjon be egy megjegyzést, remélhetőleg együtt dolgozhatunk rajta.
Legközelebb.