- 1. Arduino Board tidak dikenali
- 2. Papan tidak dalam Penyegerakan
- 3. Kod tidak bermula pada Power Reset
- 4. Ralat Tandatangan Peranti Tidak Sah
- 5. Ralat Launch4j
- 6. Port Serial Sudah Digunakan
- 7: Muat Naik Sketsa Berjaya tetapi Tidak Ada yang Berlaku
- 8. Ralat Pautan Tidak Puas
- 9. Lakaran Terlalu Besar
- 10. java.lang.StackOverflowError
Bermula sebagai pemula dengan Arduino, boleh menjadi sangat mencabar bagi orang yang tidak mempunyai latar belakang elektronik, anda akan menemui kesilapan, beberapa di antaranya mungkin mempunyai penyelesaian yang mudah tetapi mungkin memerlukan beberapa hari untuk menyelesaikannya. Oleh itu, untuk membuat sesuatu menjadi lebih mudah, saya telah membuat senarai 10 ralat Arduino yang paling popular berserta kemungkinan penyelesaiannya.
1. Arduino Board tidak dikenali
Ini merujuk kepada keadaan di mana papan Arduino, yang disambungkan ke komputer tidak dikenali oleh komputer. Apabila ini berlaku, papan biasanya tidak disenaraikan di bawah senarai port Arduino IDE dan kadangkala dilabel USB2.0 di bawah pengurus peranti.
Penyelesaian
Ini berlaku apabila anda menggunakan klon Arduino murah tertentu yang menggunakan cip penukar USB ke Serial CH340g dan bukannya FTDI (FT232RL) dan lain-lain yang digunakan oleh papan Arduino standard. Pemacu untuk Cip Serial USB yang digunakan oleh papan Arduino Standard selalu dibungkus bersama dengan fail Penyediaan IDE Arduino, jadi apabila anda memasang IDE, pemacu dipasang secara automatik pada PC anda. Untuk menggunakan papan Arduino berasaskan penukar USB ke Serial CH340g ini, anda harus memuat turun dan memasang pemacu untuk cip tersebut. Pemandu boleh dimuat turun dari pautan ini. Memasangnya semudah mengklik butang pasang pada antara muka persediaan yang ditunjukkan di bawah.
Dengan ini, anda seharusnya dapat mencari port yang menghubungkan papan pada Arduino IDE.
2. Papan tidak dalam Penyegerakan
Biasanya, apabila ini berlaku, Anda tidak akan dapat memuat naik kod (Walaupun IDE kadang-kadang akan memaparkan "selesai memuat naik") ke papan Arduino dan IDE akan memaparkan kod ralat; " Avrdude: stk500_getsync (): tidak selari: resp = 0x00 ".
Penyelesaian
The sync: resp = 0x00 adalah respons generik yang diterjemahkan kepada " cip ATmega tidak berfungsi " pada Arduino. Apabila ini berlaku, terdapat banyak perkara yang mungkin salah. Berikut adalah beberapa langkah yang dapat diambil untuk membersihkan ralat ini.
1. Pastikan tidak ada yang berkaitan dengan pin digital 0 dan 1 di Arduino (termasuk perisai).
2. Pastikan port dan papan iklan yang betul dipilih di bawah menu alat.
3. Tekan butang reset pada Arduino beberapa kali dan muat naik semula kodnya.
4. Putuskan sambungan dan sambungkan semula Arduino ke PC.
5. Mulakan semula Arduino IDE.
Sekiranya semua ini tidak berfungsi, mungkin sudah tiba masanya untuk mencuba menggunakan papan Arduino yang lain dengan PC atau menggunakan papan Arduino yang "rosak" dengan PC lain. Ini akan membantu anda mengenalpasti mana yang menjadi punca masalah. Sekiranya anda menemui masalah dengan PC, pasang semula Arduino IDE. Walau bagaimanapun, jika papan Arduino yang "rosak" adalah sumber masalah, penyelesaian utama adalah dengan memasang papan kenyataan dengan firmware Arduino. Sekiranya tidak ada perkara di atas yang berfungsi, mungkin sudah tiba masanya anda menukar Arduino Board.
3. Kod tidak bermula pada Power Reset
Ini merujuk kepada kes di mana Arduino tidak menjalankan sketsa yang dimuat naik kepadanya ketika dihidupkan dan dalam kebanyakan kes, hanya kembali ke lakaran sekelip mata yang berkaitan dengan pemuat but.
Penyelesaian
Seperti masalah lain yang diatasi, terdapat beberapa perkara yang boleh menyebabkannya.
Sekiranya papan gantung dan tidak melakukan apa-apa, anda harus memeriksa kod anda untuk memastikan anda tidak menghantar data bersiri ke papan ketika ia disertakan. Apabila Arduino dihidupkan, pemuat but, dalam beberapa saat pertama, mendengar komputer menghantar sketsa baru untuk dimuat ke papan. Sekiranya tidak ada lakaran baru yang diterima, setelah beberapa saat, bootloader akan habis dan menjalankan lakaran terakhir yang dimuat naik ke papan. Sekiranya kod anda menghantar data bersiri selama beberapa minit pertama, pemuat but tidak akan habis dan lakaran terakhir yang dimuat naik ke papan tidak akan bermula.
Sekiranya menghantar data bersiri sebaik sahaja papan itu merupakan bahagian penting dalam projek anda, anda mungkin perlu mencari jalan untuk memberikan sedikit kelewatan untuk menghentikan data bersiri daripada tiba segera di Arduino. Sekiranya membuat penyesuaian akan mempengaruhi tugas yang harus dilakukan oleh projek, maka Anda mungkin harus memuat naik sketsa Anda ke papan dengan menggunakan programmer luaran, kerana bootloader dapat dilewati oleh mereka.
Sekiranya papan tidak menggantung tetapi kembali ke lakaran berkedip Arduino (Dipimpin pada pin 13 berkedip sesekali), pembetulan langsung adalah dengan memusingkan papan dengan pemuat boot Arduino, kerana yang ada di papan mungkin telah rosak.
4. Ralat Tandatangan Peranti Tidak Sah
Kesalahan ini ditunjukkan apabila percubaan dilakukan untuk memuat naik kod, ke papan, berbeza dengan yang dipilih di bawah senarai alat> papan di Arduino IDE. Kesalahan ini biasanya berlaku kerana tandatangan peranti di papan sasaran berbeza dari papan yang dipilih di IDE.
Penyelesaian
Penyelesaian untuk kesilapan ini semudah memastikan papan yang betul dipilih di Arduino IDE. Sekiranya ini tidak berfungsi, mungkin perlu memuatkan mikrokontroler dengan versi terbaru Arduino bootloader.
5. Ralat Launch4j
Arduino IDE kadang-kadang memerlukan beberapa saat sebelum memuat dan ketika dimuat, jika anda mengklik apa-apa, ia akan memaparkan ralat Launch4J seperti yang ditunjukkan di atas. Launch4j adalah alat yang digunakan untuk membungkus aplikasi Java (tempayan) di Windows asli yang dapat dieksekusi, memungkinkan mereka digunakan sebagai program Windows biasa.
Arduino IDE itu sendiri ditulis dalam JAVA dan ralat ini berlaku kerana ketidaksesuaian perpustakaan Java Run Time Environment (JRE) yang dibekalkan dengan Arduino IDE.
Penyelesaian
Dari pengalaman, ralat ini dapat diselesaikan dengan sesuatu yang sederhana seperti mematikan Kesambungan Bluetooth atau WiFi PC anda. Walau bagaimanapun, penyelesaian yang lebih lengkap dan kekal adalah menggantikan JRE dalam pakej Arduino dengan versi terbaru.
6. Port Serial Sudah Digunakan
Ini mungkin salah satu kesilapan paling mudah untuk diselesaikan. Ia biasanya berlaku ketika anda cuba memuat naik kod ke Arduino semasa monitor bersiri dibuka (ini tidak lagi menjadi masalah jika menggunakan versi IDE baru-baru ini) atau ketika anda cuba melancarkan monitor bersiri ketika Arduino sedang berbicara dengan perisian atau peranti lain melalui port bersiri. Pada dasarnya, ia berlaku semasa anda cuba menggunakan port bersiri Arduino untuk dua perkara yang berbeza pada masa yang sama.
Penyelesaian
Sama seperti yang dicadangkan oleh IDE, tutup setiap perisian / alat lain (termasuk monitor / plotter bersiri) yang mungkin menggunakan port com. Sekiranya anda tidak yakin dengan perisian tertentu, cabut plag Arduino. Ia mesti siap pada masa anda memasangnya semula.
7: Muat Naik Sketsa Berjaya tetapi Tidak Ada yang Berlaku
Kesalahan ini serupa dengan beberapa kesilapan lain yang telah dirawat di atas. Untuk ralat ini, Arduino IDE akan menyarankan kod telah berjaya dimuat naik, tetapi dewan tidak melakukan apa-apa.
Penyelesaian
- Pastikan papan yang dipilih di IDE sama dengan papan sasaran.
- Ini mungkin disebabkan oleh ukuran lakaran yang lebih besar daripada kapasitas papan. Periksa ukuran lakaran dan gunakan beberapa kaedah yang disebutkan di atas untuk mengurangkan ukurannya.
- Terakhir, kesalahan ini dapat terjadi ketika bekalan kuasa yang bising sedang digunakan. Pastikan bekalan kuasa cukup stabil.
8. Ralat Pautan Tidak Puas
Ini mungkin satu-satunya kesilapan yang jarang berlaku yang masuk ke dalam senarai ini. Ini berlaku apabila anda mempunyai versi lama perpustakaan komunikasi yang terdapat di PC anda, kemungkinan besar dari pemasangan sebelumnya.
Penyelesaian
Untuk menyelesaikan ralat ini, cari comm.jar atau jcl.jar di /System/Library/Frameworks/JavaVM.framework/ atau dalam direktori pada pemboleh ubah persekitaran CLASSPATH atau PATH PC anda.
9. Lakaran Terlalu Besar
Kesalahan ini berlaku apabila kod anda lebih besar daripada memori kilat papan Arduino tertentu. Ukuran memori kilat Arduino Uno, misalnya, 32Kb dengan 2KB sudah digunakan oleh bootloader Arduino. Sekiranya anda harus memuat naik kod dengan ukuran lebih tinggi daripada 32Kb, Arduino akan memaparkan amaran ini.
Penyelesaian
Seperti yang dinyatakan di atas, ini berlaku apabila lakaran anda lebih besar daripada memori kilat papan tertentu yang anda gunakan, oleh itu, untuk menyelesaikannya, anda harus mencari cara untuk mengurangkan jumlah ruang yang dihuni oleh kod anda. Beberapa petua untuk mencapainya merangkumi;
- Sekiranya mungkin, gunakan jenis data bilangan bulat sebagai pengganti apungan.
- Sekiranya mungkin gunakan kelayakan "const" ketika menyatakan pemboleh ubah.
- Sertakan perpustakaan yang diperlukan sahaja. Sekiranya boleh, gunakan versi perpustakaan yang paling penting.
- Perbaiki kod secara umum. Kembangkan algoritma yang dapat membantu menjadikan kod anda lebih pendek dan umumnya ringan.
Penyelesaian yang lebih radikal ialah memindahkan projek ke papan lain, seperti Arduino Mega, yang mempunyai memori kilat yang lebih besar berbanding dengan Uno.
10. java.lang.StackOverflowError
Semasa memproses lakaran, Arduino menggunakan beberapa ungkapan biasa untuk diproses dan kadang-kadang menjadi bingung apabila menghadapi ralat berkaitan rentetan tertentu seperti petikan yang hilang.
Penyelesaian
Kesalahan ini diselesaikan dengan melihat kod kedua, terutamanya bahagian di mana urutan rentetan digunakan. Pastikan petikan lengkap, garis miring terbalik digunakan dengan betul dll.
Terdapat had untuk jumlah kesalahan yang dapat dimasukkan ke dalam satu tutorial dan kerana itu, kami akan berhenti di sini. Walau bagaimanapun, senarai ini mengandungi beberapa kesalahan yang paling biasa dihadapi pemula semasa menggunakan Arduin o. Adakah anda menghadapi kesilapan tertentu, jangan ragu untuk memberikan komen, semoga kami dapat menyelesaikannya bersama-sama.
Lain kali.