- 1. ไม่รู้จักบอร์ด Arduino
- 2. บอร์ดไม่ซิงค์
- 3. รหัสไม่เริ่มต้นในการรีเซ็ตพลังงาน
- 4. ข้อผิดพลาดลายเซ็นอุปกรณ์ไม่ถูกต้อง
- 5. ข้อผิดพลาด Launch4j
- 6. พอร์ตอนุกรมถูกใช้งานแล้ว
- 7: การอัปโหลด Sketch สำเร็จ แต่ไม่มีอะไรเกิดขึ้น
- 8. ข้อผิดพลาดลิงก์ที่ไม่พึงพอใจ
- 9. ร่างใหญ่เกินไป
- 10. java.lang.StackOverflowError
การเริ่มต้นในฐานะผู้เริ่มต้นกับ Arduino อาจเป็นเรื่องท้าทายสำหรับผู้ที่ไม่มีพื้นฐานด้านอิเล็กทรอนิกส์คุณจะพบข้อผิดพลาดซึ่งบางข้ออาจมีวิธีแก้ปัญหาง่ายๆ แต่อาจใช้เวลาหลายวันในการแก้ไข ดังนั้นเพื่อให้ง่ายขึ้นเล็กน้อยฉันได้สร้างรายการข้อผิดพลาด Arduino ยอดนิยม 10รายการพร้อมกับวิธีแก้ไขที่เป็นไปได้
1. ไม่รู้จักบอร์ด Arduino
นี่หมายถึงสถานการณ์ที่คอมพิวเตอร์ไม่รู้จักบอร์ด Arduino ที่เชื่อมต่อกับคอมพิวเตอร์ เมื่อสิ่งนี้เกิดขึ้นบอร์ดมักจะไม่อยู่ในรายการพอร์ตของ Arduino IDE และบางครั้งจะมีป้ายกำกับว่า USB2.0 ภายใต้ตัวจัดการอุปกรณ์
วิธีการแก้
สิ่งนี้เกิดขึ้นเมื่อคุณใช้โคลน Arduino ราคาถูกบางตัวซึ่งใช้ชิปแปลง CH340g USB เป็น Serial แทน FTDI (FT232RL) และอื่น ๆ ที่ใช้โดยบอร์ด Arduino มาตรฐาน ไดรเวอร์สำหรับ USB เป็นชิปอนุกรมที่ใช้โดยบอร์ด Arduino มาตรฐานจะถูกรวมเข้ากับไฟล์การตั้งค่า Arduino IDE เสมอดังนั้นเมื่อคุณติดตั้ง IDE ไดรเวอร์จะถูกติดตั้งโดยอัตโนมัติบนพีซีของคุณ เพื่อให้สามารถใช้บอร์ด Arduino ที่ใช้ตัวแปลง USB เป็นอนุกรม CH340g นี้คุณจะต้องดาวน์โหลดและติดตั้งไดรเวอร์สำหรับชิป สามารถดาวน์โหลดไดรเวอร์ได้จากลิงค์นี้ การติดตั้งทำได้ง่ายเพียงคลิกปุ่มติดตั้งบนอินเทอร์เฟซการตั้งค่าที่แสดงด้านล่าง
เมื่อเสร็จแล้วคุณจะสามารถค้นหาพอร์ตที่บอร์ดเชื่อมต่อกับ Arduino IDE ได้
2. บอร์ดไม่ซิงค์
โดยปกติเมื่อเกิดเหตุการณ์นี้ขึ้นคุณจะไม่สามารถอัปโหลดโค้ด (แม้ว่า IDE ในบางครั้งจะแสดง "การอัปโหลดเสร็จสิ้น") ไปยังบอร์ด Arduino และ IDE จะแสดงรหัสข้อผิดพลาด “ avrdude: stk500_getsync (): ไม่ซิงค์: resp = 0x00 ”
วิธีการแก้
การ ซิงค์: resp = 0x00 เป็นการตอบสนองทั่วไปที่แปลว่า“ ชิป Atmega ไม่ทำงาน ” บน Arduino เมื่อเป็นเช่นนี้มีหลายสิ่งที่อาจผิดพลาด ต่อไปนี้เป็นขั้นตอนบางส่วนที่สามารถทำได้เพื่อล้างข้อผิดพลาดนี้
1. ตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดเชื่อมต่อกับพินดิจิทัล 0 และ 1 บน Arduino (รวมถึงชิลด์)
2. ตรวจสอบว่าได้เลือกพอร์ต com และบอร์ดที่ถูกต้องภายใต้เมนูเครื่องมือ
3. กดปุ่มรีเซ็ตบน Arduino สองสามครั้งแล้วอัปโหลดรหัสอีกครั้ง
4. ตัดการเชื่อมต่อและเชื่อมต่อ Arduino กับพีซีอีกครั้ง
5. รีสตาร์ท Arduino IDE
หากสิ่งนี้ไม่ได้ผลอาจถึงเวลาลองใช้บอร์ด Arduino อื่นกับพีซีหรือใช้บอร์ด Arduino ที่“ ผิดพลาด” กับพีซีเครื่องอื่น สิ่งนี้จะช่วยให้คุณระบุได้ว่าข้อใดเป็นต้นตอของปัญหา หากคุณพบว่ามีปัญหากับพีซีให้ติดตั้ง Arduino IDEใหม่ อย่างไรก็ตามหากบอร์ด Arduino“ ผิดพลาด” เป็นสาเหตุของปัญหาทางออกที่ดีที่สุดคือการแฟลชบอร์ดด้วยเฟิร์มแวร์ Arduino หากวิธีการข้างต้นไม่ได้ผลอาจถึงเวลาที่คุณต้องเปลี่ยนบอร์ด Arduino
3. รหัสไม่เริ่มต้นในการรีเซ็ตพลังงาน
นี่หมายถึงกรณีที่Arduino ไม่เรียกใช้ภาพร่างที่อัปโหลดเมื่อเปิดเครื่องและในกรณีส่วนใหญ่เพียงแค่ย้อนกลับไปที่ภาพร่างกะพริบที่เกี่ยวข้องกับ bootloader
วิธีการแก้
เช่นเดียวกับปัญหาอื่น ๆ ที่ได้รับการรักษามีหลายสิ่งที่อาจทำให้เกิดปัญหานี้
หากคณะกรรมการและแฮงค์ไม่ทำอะไรเลยคุณควรตรวจสอบรหัสของคุณเพื่อให้แน่ใจว่าคุณจะไม่ส่งข้อมูลแบบอนุกรมไปยังคณะกรรมการที่เป็นมาเกี่ยวกับเมื่อเปิด Arduino bootloader ในช่วงสองสามวินาทีแรกจะฟังคอมพิวเตอร์เพื่อส่งร่างใหม่เพื่ออัปโหลดไปยังบอร์ด หากไม่ได้รับร่างใหม่หลังจากนั้นสักครู่ bootloader จะหมดเวลาและเรียกใช้ร่างสุดท้ายที่อัปโหลดไปยังบอร์ด หากรหัสของคุณกำลังส่งข้อมูลอนุกรมในช่วงสองสามนาทีแรก bootloader จะไม่หมดเวลาและร่างสุดท้ายที่อัปโหลดไปยังบอร์ดจะไม่เริ่มทำงาน
หากการส่งข้อมูลอนุกรมทันทีที่บอร์ดเปิดขึ้นมาเป็นส่วนสำคัญของโปรเจ็กต์ของคุณคุณอาจต้องหาวิธีที่จะทำให้ล่าช้าเพื่อหยุดข้อมูลอนุกรมไม่ให้มาถึงทันทีที่ Arduino มาถึง หากการปรับเปลี่ยนจะส่งผลกระทบต่องานที่โครงการกำลังดำเนินการอยู่คุณอาจต้องอัปโหลดภาพร่างของคุณไปยังบอร์ดโดยใช้โปรแกรมเมอร์ภายนอกเนื่องจาก bootloader สามารถข้ามได้
หากบอร์ดไม่ค้าง แต่กลับไปที่ร่างการกะพริบของ Arduino (ไฟ LED ที่พิน 13 กะพริบทุก ๆ คราว) การแก้ไขที่ตรงไปตรงมาคือการแฟลชบอร์ดด้วย Arduino bootloader เนื่องจากบอร์ดบนบอร์ดอาจเสียหาย.
4. ข้อผิดพลาดลายเซ็นอุปกรณ์ไม่ถูกต้อง
ข้อผิดพลาดนี้จะแสดงขึ้นเมื่อมีความพยายามในการอัปโหลดโค้ดไปยังบอร์ดซึ่งแตกต่างจากที่เลือกไว้ในรายการเครื่องมือ> บอร์ดบน Arduino IDE ข้อผิดพลาดนี้มักเกิดขึ้นเนื่องจากลายเซ็นอุปกรณ์บนบอร์ดเป้าหมายแตกต่างจากบอร์ดที่เลือกบน IDE
วิธีการแก้
การแก้ไขข้อผิดพลาดนี้ทำได้ง่ายเพียงแค่ตรวจสอบให้แน่ใจว่าได้เลือกบอร์ดที่ถูกต้องบน Arduino IDE หากไม่ได้ผลอาจจำเป็นต้องแฟลชไมโครคอนโทรลเลอร์ด้วย Arduino bootloader เวอร์ชันล่าสุด
5. ข้อผิดพลาด Launch4j
บางครั้ง Arduino IDE ใช้เวลาสักครู่ก่อนที่จะโหลดและเมื่อโหลดขึ้นมาหากคุณคลิกที่สิ่งใดสิ่งหนึ่งก็จะแสดงข้อผิดพลาด Launch4J ดังที่แสดงด้านบน Launch4j เป็นเครื่องมือที่ใช้สำหรับการตัดแอปพลิเคชัน Java (jars) ในปฏิบัติการแบบเนทีฟของ Windows ทำให้สามารถใช้เป็นโปรแกรม Windows ทั่วไปได้
Arduino IDE นั้นเขียนด้วย JAVA และข้อผิดพลาดนี้เกิดขึ้นเนื่องจากความเข้ากันไม่ได้ของไลบรารี Java Run Time Environment (JRE)ที่มาพร้อมกับ Arduino IDE
วิธีการแก้
จากประสบการณ์แล้วข้อผิดพลาดนี้สามารถแก้ไขได้ง่ายๆเพียงแค่ปิดการเชื่อมต่อ Bluetooth หรือ WiFi ของพีซีของคุณ อย่างไรก็ตามวิธีแก้ปัญหาที่สมบูรณ์และถาวรยิ่งขึ้นคือการแทนที่ JRE ในแพ็คเกจ Arduinoด้วยเวอร์ชันล่าสุด
6. พอร์ตอนุกรมถูกใช้งานแล้ว
นี่อาจเป็นหนึ่งในข้อผิดพลาดที่ง่ายที่สุดในการแก้ไข โดยปกติจะเกิดขึ้นเมื่อคุณพยายามอัปโหลดรหัสไปยัง Arduino ในขณะที่เปิดจอภาพแบบอนุกรม (นี่จะไม่ใช่ปัญหาอีกต่อไปหากใช้ IDE เวอร์ชันล่าสุด) หรือเมื่อคุณพยายามเปิดจอภาพอนุกรมเมื่อ Arduino กำลังพูดคุยกับซอฟต์แวร์หรืออุปกรณ์อื่น ผ่านพอร์ตอนุกรม โดยพื้นฐานแล้วจะเกิดขึ้นเมื่อคุณพยายามใช้พอร์ตอนุกรม Arduino สำหรับสองสิ่งที่แตกต่างกันในเวลาเดียวกัน
วิธีการแก้
เช่นเดียวกับ IDE ที่แนะนำ, ใกล้ทุกซอฟต์แวร์อื่น ๆ / เครื่องมือ (รวมทั้งการตรวจสอบอนุกรม / ล็อตเตอร์) ที่อาจใช้พอร์ต หากคุณไม่แน่ใจในซอฟต์แวร์เฉพาะให้ถอดปลั๊ก Arduino ควรจะพร้อมใช้งานเมื่อคุณเสียบกลับ
7: การอัปโหลด Sketch สำเร็จ แต่ไม่มีอะไรเกิดขึ้น
ข้อผิดพลาดนี้คล้ายกับข้อผิดพลาดอื่น ๆ ที่ได้รับการปฏิบัติข้างต้นแล้ว สำหรับข้อผิดพลาดนี้ Arduino IDE จะแนะนำว่าอัปโหลดโค้ดสำเร็จแล้ว แต่บอร์ดไม่ทำอะไรเลย
วิธีการแก้
- ตรวจสอบให้แน่ใจว่าบอร์ดที่เลือกใน IDE เหมือนกับบอร์ดเป้าหมาย
- อาจเป็นผลมาจากขนาดร่างใหญ่เกินความจุของบอร์ด ตรวจสอบขนาดร่างและใช้วิธีการบางอย่างที่กล่าวถึงข้างต้นเพื่อลดขนาด
- สุดท้ายข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อมีการใช้แหล่งจ่ายไฟที่มีเสียงดัง ตรวจสอบให้แน่ใจว่าแหล่งจ่ายไฟมีเสถียรภาพเพียงพอ
8. ข้อผิดพลาดลิงก์ที่ไม่พึงพอใจ
นี่อาจเป็นข้อผิดพลาดที่หาได้ยากเพียงข้อเดียวที่ทำให้เกิดขึ้นในรายการ สิ่งนี้เกิดขึ้นเมื่อคุณมีไลบรารีการสื่อสารเวอร์ชันเก่าอยู่บนพีซีของคุณซึ่งส่วนใหญ่เกิดจากการติดตั้งครั้งก่อน
วิธีการแก้
ในการแก้ไขข้อผิดพลาดนี้ให้ค้นหา comm.jar หรือ jcl.jar ใน /System/Library/Frameworks/JavaVM.framework/ หรือในไดเร็กทอรีบนตัวแปรสภาพแวดล้อม CLASSPATH หรือ PATH ของพีซีของคุณ
9. ร่างใหญ่เกินไป
ข้อผิดพลาดนี้เกิดขึ้นเมื่อโค้ดของคุณมีขนาดใหญ่กว่าหน่วยความจำแฟลชของบอร์ด Arduino นั้น ๆ ตัวอย่างเช่นขนาดของหน่วยความจำแฟลชของ Arduino Uno คือ 32Kb กับ 2KB ที่ Arduino bootloader ใช้อยู่แล้ว หากคุณควรอัปโหลดโค้ดที่มีขนาดสูงกว่า 32Kb Arduino จะแสดงคำเตือนนี้
วิธีการแก้
ดังกล่าวข้างต้นนี้เกิดขึ้นเมื่อร่างของคุณมีขนาดใหญ่กว่าหน่วยความจำแฟลชของคณะกรรมการโดยเฉพาะอย่างยิ่งที่คุณกำลังใช้จึงจะแก้ปัญหานี้คุณต้องไปหาวิธีของการลดจำนวนของพื้นที่ที่ถูกครอบครองโดยรหัสของคุณเคล็ดลับบางประการในการบรรลุเป้าหมายนี้ ได้แก่
- หากเป็นไปได้ให้ใช้ชนิดข้อมูลจำนวนเต็มแทนทศนิยม
- ในกรณีที่เป็นไปได้ให้ใช้คุณสมบัติ "const" เมื่อประกาศตัวแปร
- รวมไลบรารีที่จำเป็นเท่านั้น หากเป็นไปได้ให้ใช้ไลบรารีที่สำคัญที่สุดในเวอร์ชันที่มีน้ำหนักเบา
- ปรับปรุงโค้ดโดยทั่วไป พัฒนาอัลกอริทึมที่สามารถช่วยให้โค้ดของคุณสั้นลงและมีน้ำหนักเบาโดยทั่วไป
วิธีแก้ปัญหาที่รุนแรงกว่านั้นคือการย้ายโปรเจ็กต์ไปยังบอร์ดอื่นเช่น Arduino Megaซึ่งมีหน่วยความจำแฟลชที่ใหญ่กว่าเมื่อเทียบกับ Uno
10. java.lang.StackOverflowError
เมื่อประมวลผลภาพร่าง Arduino จะใช้นิพจน์ทั่วไปในการประมวลผลและบางครั้งก็สับสนเมื่อพบข้อผิดพลาดที่เกี่ยวข้องกับสตริงเช่นเครื่องหมายคำพูดที่ขาดหายไป
วิธีการแก้
ข้อผิดพลาดนี้แก้ไขได้โดยการดูโค้ดเป็นครั้งที่สองโดยเฉพาะส่วนที่ใช้ลำดับสตริง ตรวจสอบให้แน่ใจว่าเครื่องหมายคำพูดเสร็จสมบูรณ์ใช้แบ็กสแลชอย่างถูกต้องเป็นต้น
มีการ จำกัด จำนวนข้อผิดพลาดที่สามารถใส่ลงในบทช่วยสอนเดียวได้และด้วยเหตุนี้เราจะหยุดที่นี่ อย่างไรก็ตามรายการนี้มีข้อผิดพลาดที่พบบ่อยที่สุดที่ผู้เริ่มต้นต้องเผชิญเมื่อใช้Arduin o คุณกำลังต่อสู้กับข้อผิดพลาดบางอย่างอย่าลังเลที่จะแสดงความคิดเห็นหวังว่าเราจะสามารถแก้ไขปัญหานี้ได้ด้วยกัน
คราวหน้า.