- 1. Bảng Arduino không được công nhận
- 2. Bảng không đồng bộ hóa
- 3. Mã không bắt đầu khi Đặt lại nguồn
- 4. Lỗi chữ ký thiết bị không hợp lệ
- 5. Lỗi Launch4j
- 6. Cổng nối tiếp đã được sử dụng
- 7: Tải lên Sketch thành công nhưng không có gì xảy ra
- 8. Lỗi liên kết không hài lòng
- 9. Phác thảo quá lớn
- 10. java.lang.StackOverflowError
Bắt đầu với người mới bắt đầu với Arduino, có thể khá khó khăn đối với những người không có kiến thức về điện tử, bạn sẽ gặp lỗi, một số lỗi có thể có các giải pháp đơn giản nhưng bạn có thể mất nhiều ngày để giải quyết. Vì vậy, để làm cho mọi thứ dễ dàng hơn một chút, tôi đã tạo danh sách 10 lỗi Arduino phổ biến nhất cùng với các giải pháp khả thi cho chúng.
1. Bảng Arduino không được công nhận
Điều này đề cập đến tình huống trong đó một bảng Arduino, được kết nối với máy tính không được máy tính nhận dạng. Khi điều này xảy ra, bo mạch thường không được liệt kê trong danh sách cổng của Arduino IDE và đôi khi được gắn nhãn USB2.0 trong trình quản lý thiết bị.
Giải pháp
Điều này xảy ra khi bạn sử dụng một số bản sao Arduino rẻ tiền sử dụng chip chuyển đổi USB sang nối tiếp CH340g thay vì FTDI (FT232RL) và các loại khác được sử dụng bởi bảng Arduino tiêu chuẩn. Các trình điều khiển cho USB sang Chip nối tiếp được sử dụng bởi bảng Arduino tiêu chuẩn luôn được đóng gói cùng với tệp Thiết lập Arduino IDE, vì vậy khi bạn cài đặt IDE, trình điều khiển sẽ tự động được cài đặt trên PC của bạn. Để có thể sử dụng bo mạch Arduino dựa trên bộ chuyển đổi USB sang Serial CH340g này, bạn sẽ phải tải xuống và cài đặt trình điều khiển cho chip. Trình điều khiển có thể được tải xuống từ liên kết này. Việc cài đặt nó rất đơn giản chỉ cần nhấp vào nút cài đặt trên giao diện thiết lập được hiển thị bên dưới.
Với việc này được thực hiện, bây giờ bạn sẽ có thể xác định được cổng mà bo mạch được kết nối trên Arduino IDE.
2. Bảng không đồng bộ hóa
Thông thường, khi điều này xảy ra, Bạn sẽ không thể tải mã lên (Mặc dù IDE đôi khi sẽ hiển thị “đã tải lên xong”) lên bảng Arduino và IDE sẽ hiển thị mã lỗi; “ Avrdude: stk500_getsync (): not in sync: resp = 0x00 ”.
Giải pháp
Các đồng bộ: resp = 0x00 là một phản ứng chung mà chuyển sang “ con chip Atmega không hoạt động ” trên Arduino. Khi điều này xảy ra, có rất nhiều thứ có thể sai. Dưới đây là một số bước có thể được thực hiện để xóa lỗi này.
1. Đảm bảo không có gì được kết nối với các chân số 0 và 1 trên Arduino (bao gồm cả các tấm chắn).
2. Đảm bảo chọn đúng cổng com và bo mạch trong menu công cụ.
3. Nhấn nút đặt lại trên Arduino vài lần và tải lên lại mã.
4. Ngắt kết nối và kết nối lại Arduino với PC.
5. Khởi động lại Arduino IDE.
Nếu bất kỳ điều nào trong số này không hoạt động, có thể đã đến lúc thử sử dụng bảng Arduino khác với PC hoặc sử dụng bảng Arduino “bị lỗi” với PC khác. Điều này sẽ giúp bạn xác định đâu là nguồn gốc của vấn đề. Nếu bạn phát hiện ra sự cố là với PC, hãy cài đặt lại Arduino IDE. Tuy nhiên, nếu bo mạch Arduino “bị lỗi” là nguồn gây ra sự cố, giải pháp cuối cùng sẽ là flash bo mạch với phần mềm Arduino. Nếu không có cách nào ở trên hoạt động, có thể đã đến lúc bạn phải thay đổi Bảng Arduino.
3. Mã không bắt đầu khi Đặt lại nguồn
Điều này đề cập đến các trường hợp Arduino không chạy bản phác thảo được tải lên nó khi được Bật nguồn và trong hầu hết các trường hợp, chỉ hoàn nguyên trở lại bản phác thảo nhấp nháy được liên kết với bộ nạp khởi động.
Giải pháp
Cũng giống như các vấn đề khác được xử lý, có một số điều có thể gây ra điều này.
Nếu bảng bị treo và không có gì, bạn nên kiểm tra mã của mình để đảm bảo bạn không gửi dữ liệu nối tiếp đến bảng khi nó xuất hiện. Khi Arduino được bật, bộ nạp khởi động, trong vài giây đầu tiên, sẽ lắng nghe máy tính gửi cho nó một bản phác thảo mới để tải lên bảng. Nếu không nhận được bản phác thảo mới nào, sau một thời gian ngắn, bộ nạp khởi động sẽ hết thời gian và chạy bản phác thảo cuối cùng được tải lên bảng. Nếu mã của bạn đang gửi dữ liệu nối tiếp trong vài phút đầu tiên, bộ nạp khởi động sẽ không hết thời gian và bản phác thảo cuối cùng được tải lên bảng sẽ không bắt đầu.
Nếu việc gửi dữ liệu nối tiếp ngay sau khi bo mạch hoạt động là một phần quan trọng trong dự án của bạn, bạn có thể cần phải tìm cách tạo độ trễ cho nó để ngăn dữ liệu nối tiếp đến ngay lập tức Arduino hoạt động. Nếu việc điều chỉnh sẽ ảnh hưởng đến nhiệm vụ mà dự án phải thực hiện, thì bạn có thể phải tải bản phác thảo của mình lên bảng bằng lập trình viên bên ngoài, vì bộ nạp khởi động có thể bị họ bỏ qua.
Nếu bảng không bị treo nhưng quay trở lại bản phác thảo nhấp nháy Arduino (Đèn Led trên chân 13 nhấp nháy liên tục), một cách khắc phục đơn giản sẽ là nhấp nháy bảng bằng bộ nạp khởi động Arduino, vì bộ nạp khởi động trên bảng có thể đã bị hỏng.
4. Lỗi chữ ký thiết bị không hợp lệ
Lỗi này được hiển thị khi cố gắng tải mã lên bảng, khác với lỗi được chọn trong danh sách công cụ> bảng trên Arduino IDE. Lỗi này thường xảy ra do chữ ký thiết bị trên bảng đích khác với chữ ký của bảng được chọn trên IDE.
Giải pháp
Giải pháp cho lỗi này đơn giản là đảm bảo chọn đúng bo mạch trên Arduino IDE. Nếu điều này không hoạt động, có thể cần phải cài đặt bộ vi điều khiển bằng phiên bản mới nhất của bộ nạp khởi động Arduino.
5. Lỗi Launch4j
Arduino IDE đôi khi mất một khoảng thời gian trước khi tải và khi tải, nếu bạn nhấp vào bất cứ thứ gì, nó sẽ hiển thị lỗi Launch4J như hình trên. Launch4j là một công cụ được sử dụng để gói các ứng dụng Java (lọ) trong tệp thực thi gốc của Windows, cho phép chúng được sử dụng như một chương trình Windows thông thường.
Bản thân Arduino IDE được viết bằng JAVA và lỗi này xảy ra do sự không tương thích của thư viện Java Run Time Environment (JRE) được cung cấp cùng với Arduino IDE.
Giải pháp
Theo kinh nghiệm, lỗi này có thể được xóa bằng cách đơn giản như tắt Kết nối Bluetooth hoặc WiFi của PC. Tuy nhiên, một giải pháp hoàn chỉnh và lâu dài hơn là thay thế JRE trong gói Arduino bằng một phiên bản gần đây.
6. Cổng nối tiếp đã được sử dụng
Đây có lẽ là một trong những lỗi dễ giải quyết nhất. Nó thường xảy ra khi bạn cố gắng tải mã lên Arduino trong khi màn hình nối tiếp được mở (đây không còn là vấn đề nếu sử dụng các phiên bản IDE gần đây) hoặc khi bạn cố gắng khởi động trình theo dõi nối tiếp khi Arduino đang nói chuyện với phần mềm hoặc thiết bị khác thông qua cổng nối tiếp. Về cơ bản, nó xảy ra khi bạn cố gắng sử dụng cổng nối tiếp Arduino cho hai việc khác nhau cùng một lúc.
Giải pháp
Giống như IDE đã đề xuất, hãy đóng mọi phần mềm / công cụ khác (bao gồm cả màn hình / máy vẽ nối tiếp) có thể đang sử dụng cổng com. Nếu bạn không chắc chắn về phần mềm cụ thể, hãy rút phích cắm Arduino. Nó sẽ sẵn sàng hoạt động vào thời điểm bạn cắm lại.
7: Tải lên Sketch thành công nhưng không có gì xảy ra
Lỗi này tương tự như một số lỗi khác đã được xử lý ở trên. Đối với lỗi này, Arduino IDE sẽ đề xuất mã đã được tải lên thành công, nhưng bảng không làm gì cả.
Giải pháp
- Đảm bảo bảng được chọn trong IDE giống với bảng mục tiêu.
- Điều này có thể là do kích thước bản phác thảo lớn hơn dung lượng của bảng. Kiểm tra kích thước phác thảo và sử dụng một số phương pháp đã đề cập ở trên để giảm kích thước.
- Cuối cùng, lỗi này có thể xảy ra khi sử dụng nguồn điện ồn ào. Đảm bảo nguồn điện đủ ổn định.
8. Lỗi liên kết không hài lòng
Đây có lẽ là lỗi hiếm hoi duy nhất lọt vào danh sách này. Điều này xảy ra khi bạn có một phiên bản cũ của thư viện giao tiếp trên PC, rất có thể là từ bản cài đặt trước đó.
Giải pháp
Để giải quyết lỗi này, hãy tìm kiếm comm.jar hoặc jcl.jar trong /System/Library/Frameworks/JavaVM.framework/ hoặc trong các thư mục trên biến môi trường CLASSPATH hoặc PATH của PC của bạn.
9. Phác thảo quá lớn
Lỗi này xảy ra khi mã của bạn lớn hơn bộ nhớ flash của bảng Arduino cụ thể đó. Ví dụ: kích thước của bộ nhớ flash của Arduino Uno là 32Kb với 2KB đã được sử dụng bởi bộ nạp khởi động Arduino. Nếu bạn tải lên mã có kích thước cao hơn 32Kb, Arduino sẽ hiển thị cảnh báo này.
Giải pháp
Như đã đề cập ở trên, điều này xảy ra khi bản phác thảo của bạn lớn hơn bộ nhớ flash của bảng cụ thể mà bạn đang sử dụng, do đó, để giải quyết điều này, bạn phải tìm cách giảm dung lượng bị chiếm dụng bởi mã của bạn. Một số mẹo để đạt được điều này bao gồm;
- Nếu có thể, hãy sử dụng kiểu dữ liệu số nguyên thay cho số thực.
- Nếu có thể, hãy sử dụng định tính “const” khi khai báo các biến.
- Chỉ bao gồm các thư viện cần thiết. Nếu có thể, hãy sử dụng phiên bản nhẹ của các thư viện quan trọng nhất.
- Cải thiện mã nói chung. Phát triển các thuật toán có thể giúp làm cho mã của bạn ngắn hơn và thường nhẹ.
Một giải pháp triệt để hơn sẽ là chuyển dự án sang một bảng khác, như Arduino Mega, có bộ nhớ flash lớn hơn so với Uno.
10. java.lang.StackOverflowError
Khi xử lý bản phác thảo, Arduino sử dụng một số biểu thức chính quy để xử lý và đôi khi bị nhầm lẫn khi gặp một số lỗi liên quan đến chuỗi nhất định như thiếu dấu ngoặc kép.
Giải pháp
Lỗi này được giải quyết bằng cách xem lại mã, đặc biệt là các phần mà trình tự chuỗi được sử dụng. Đảm bảo các dấu ngoặc kép hoàn chỉnh, dấu gạch chéo ngược được sử dụng đúng cách, v.v.
Có một giới hạn về số lượng lỗi mà người ta có thể phù hợp với một hướng dẫn duy nhất và vì lý do đó, chúng tôi sẽ dừng ở đây. Tuy nhiên, danh sách này chứa một số lỗi phổ biến nhất mà người mới bắt đầu gặp phải khi sử dụng Arduin o. Bạn có đang chiến đấu với một lỗi cụ thể nào không, đừng ngại để lại bình luận, hy vọng chúng ta có thể giải quyết vấn đề đó cùng nhau.
Lần tới.