Mẹo nhỏ khi làm việc với Arduino

Bài viết có thể bạn quan tâm: Lỗi của Arduino? Và các lỗi thường gặp khi lập trình Arduino

Bài viết đầu tay của mình trên diễn đàn arduino.vn, mời các bạn đón đọc: Cách xuất file .HEX từ Arduino IDE và mô phỏng Arduino trên phần mềm Proteus.

Mẹo I: Báo lỗi nạp

Trường hợp 1: Báo lỗi "avrdude: stk500_getsync(): not in sync: resp=0x00"

Nguyên nhân: Lỗi này là do bạn chọn Board hoặc Port kết nối không đúng. Có nhiều nguyên nhân dẫn đến lỗi này:

  • Do bạn mới tiếp xúc với Arduino nên thiếu kinh nghiệm, quên mất bỏ qua bước quan trọng là Board và Port đã khớp chưa. (Lúc mới làm quen với Arduino mình cũng hay mắc phải lỗi này devil)
  • Do bạn đang sử dụng board Arduino này nhưng vì lý do nào đó lại chuyển qua sử dụng board Arduino khác dẫn đến sự thay đổi thông số của Board hoặc Port mà bạn lại quên điều chỉnh lại. Lỗi này người có kinh nghiệm mà sơ ý cũng mắc phải và thường gặp ở những người "giàu" có tiền mua nhiều board khác nhau laugh

Mẹo: Các bạn mở Manage lên bằng cách chuột phải vào Computer chọn Manage. Tại cửa sổ Computer Management bạn chọn Tab Divice Manage. Nhìn qua phải thì trong phần Ports (COM & LPT) đã có những thông số cần thiết để bạn cài đặt cho Arduino IDE: Arduino Uno (COM5) (nhớ là những thông số này chỉ xuất hiện khi bạn kết nối board Arduino với máy tính thôi nhé). Cách này rất thích hợp khi ta có một board Arduino mới mà không biết nó thuộc loại board gì. Mời bạn xem hình nếu chưa rõ:

Vào Start - chuột phải vào Computer     hoặc       hoặc vào trực tiếp My Computer

Cửa số Management

Sau đó các bạn mở Arduino IDE lên, kiểm tra lại xem đã khớp chưa, nếu chưa khớp thì vào Tools - Board/Port để chỉnh lại cho đúng. Một mẹo nhỏ nữa là các bạn cũng có thể nhìn hàng chữ nhỏ mép dưới của Arduino IDE để xem nhanh thông tin đã thiết lập.

Trường hợp 2: Báo lỗi "avrdude: ser_open(): can't open device "\\.\COM5": The system cannot find the file specified.​"

Nguyên nhân: Lỗi này thường xảy ra khi bạn lập trình nút nhấn. Do quên pinMode nút nhấn là pinMode(nut_nhan, INPUTPULLUP) dẫn đến pin nút nhấn là mức cao mà khi bạn ấn nút nhấn sẽ kéo xuống mass và điều gì xảy ra, bạn biết đấy - ngắn mạch (bạn có thể xem bài viết này để hiểu hơn về lập trình nút nhấn). Cũng tương tự như vậy chỉ cần bạn nối pin 5V với pin GND cũng có thể tạo ra hiện tượng ngắn mạch (để có được hình ảnh trên mình đã phải "hi sinh" chập 5V với GND đấy crying - tuy nhiên mình không khuyến khích bạn thử, bạn đọc qua bài viết này sẽ rõ). Khi xảy ra hiện tượng ngắn mạch máy tính của bạn sẽ lập tức ngắt kết nối giữa board Arduino và máy tính, dẫn đến bạn không thấy cổng COM5 hồi nãy ở đâu.

Khắc phục: Nhiều bạn theo quán tính sẽ rút cổng USB ra khỏi máy tính, đợi một lúc và gắn lại xem có nhận cổng USB không, tuy nhiên sẽ thất vọng. Bạn khác cao thủ hơn thì sẽ Reset máy. OK tất nhiên là được rồi. Tuy nhiên nếu chẳng may bị 3-4 lần thì bạn sẽ "ức chế" cho mà xem. Có một mẹo nho nhỏ sẽ tiết kiệm rất nhiều thời gian và công sức của bạn khi gặp tình trạng này. Mời bạn đọc mẹo.

Mẹo: Thay vì Reset máy bạn có thể mở cửa sổ Computer Management mà phần trên mình đã nói đến, trong phần Universal Serial Bus controllers bạn tìm đến cái cổng USB nào bị cảnh báo  - có thể bị nhiều cái. Sau đó bạn làm theo các bước như trong hình sau: (Đối với WIN XP, VISTA, WIN8 các bạn cũng tìm và làm tương tự nhé, các hệ điều hành khác như Lux, Ubuntu...thì mình không rõ lắm nhưng mình nghĩ chắc nó cũng tương tự nhau thôi :D)

Chọn Disable

Ấn Yes

Chọn Enable

Sau khi làm xong các bước trên thì chắc chắn cổng USB của bạn sẽ hoạt động trở lại và bạn có thể tiếp tục công việc lập trình của mình.

Mẹo II: Làm thế nào để tạo nhanh một thư viện .h?

 Mẹo: Bạn hãy ấn Ctrl + Shift + N. Sau đó nhập tên thư viện vào khung Name for new file sau đó ấn OK. Ví dụ: gõ "test.h" vào khung. Bạn cũng có thể tạo 1 file khác bất kì .c, .cpp chẳng hạn. Bạn xem bài Bài 12: Phát nhạc bằng Arduino với một cái loa hoặc buzzer sẽ thấy được ứng dụng của nó :D

Mẹo III: Add thư viện mà báo lỗi hoài :(

Nguyên nhân: thường là do Arduino không chấp nhận tên thư viện có khoảng trắng " " hoặc kí tự lạ.

Mẹo: Ta chỉ cần sửa lại tên thư viện một chút là được ấy mà :D

Ví dụ trong bài viết Infrared remote control (điều khiển bằng hồng ngoại) với Arduino có đoạn như sau:

Đoạn mã này dùng để đọc tín hiệu từ remote. Các bạn vào link sau để tải thư viện hỗ trợ IR remote nhé:  https://github.com/shirriff/Arduino-IRremote/

Sau khi tải thư viện về, bạn mở cửa sổ Arduino, chọn Sketch--->Import Library...---> Add Library....sau đó chọn file .zip mà bạn vừa tải về để có thể sử dụng thư viện.

Bạn làm theo y chang luôn nhưng add xong nó sẽ báo lỗi như thế này: 

Báo lỗi

Bây giờ bạn hãy giải nén file .zip đó ra, sau đó ấn F2 để Rename lại tên thư mục vừa giải nén. Bạn hãy thay những dấu "-" thành "_" hoặc bỏ luôn hoặc thay bằng một tên ngắn gọn khác nhưng không chứa khoảng trắng và kí tự lạ. Ví dụ: mình đổi thành: "Arduino_IRremote_master". Rồi! Bây giờ bạn lại chuột phải chọn chức năng nén tập tin lại với file .zip (cái này cũng đòi hỏi bạn phải có chút ít kiến thức về sử dụng máy tính cơ bản đấy - nếu có thắc mắc về phần này thì đừng ngại để lại bình luận phía dưới), tham khảo các bước trong hình bạn sẽ làm được thôi:

Chọn "Thêm vào tập tin nén..."

Vậy là cơ bản chỉnh sửa xong, giờ thì bạn add file Arduino_IRremote_master.zip này là sẽ không còn báo lỗi nữa :D.

Mẹo IV: Để tiến bộ hơn trong lập trình Arduino?

Mẹo: Bạn nên:

  • Bỏ một chút thời gian mỗi tối để tìm hiểu về ngôn ngữ C cơ bản. Chỉ cần chút kiến thức về C cơ bản là bạn đã có thể lập trình Arduino rồi đấy.
  • Đọc qua Ngôn ngữ lập trình trên Arduino
  • Tích cực ghé thăm arduino.vn để đọc được những bài viết bổ ích, "địa" được những thuật toán, giải thuật hay :D
  • Có điều kiện thì hãy mua một board Arduino thực tế để "vọc" và làm. Nếu không có điều kiện thực hành thực tế thì bạn có thể mô phỏng trên máy tính, thông qua bài viết của mình chắc chắn bạn sẽ làm được: Cách xuất file .HEX từ Arduino IDE và mô phỏng Arduino trên phần mềm Proteus
  • Cùng tham gia viết bài, đăng bài, thảo luận và chia sẻ trên  arduino.vn. Share link arduino.vn cho bạn bè cùng biết để  arduino.vn quy tụ nhiều PRO hơn, chúng ta sẽ học hỏi được rất nhiều kinh nghiệm quý báu từ PRO.

Mẹo V: Sau một thời gian việc khởi động Arduino bị chậm và những thứ khác cũng chậm luôn?

Cảm ơn bạn hoàng quốc phương đã gửi nội dung hướng dẫn vào Thứ sáu, 14 Tháng 11, 2014 - 17:38

Chào các bạn, sau một thời gian sử dụng chắc nhiều bạn sẽ cảm thấy chương trình arduino IDE của mình chạy chậm hơn rất nhiều so với lúc mới cài đặt. Những biểu hiện của nó như khởi động chậm, load chậm, chạy thử chậm, nạp vào rất chậm, mở cổng serial cũng chậm nốt. Qua tìm hiểu thì cách khắc phục rất đơn giản như sau.     Vào link sau: http://k1.arduino.vn/img/2014/11/14/0/861_123450-1415962849-0-rxtxserial.zip   và tải về file rxtxSerial.dll . Sau đó bạn copy đè file này vào thư mục gốc cài đặt của arduino IDE. Như vậy là bạn có thể khắc phục được sự chậm chạp của chương trình không rõ nguyên nhân sau một thời gian sử dụng.

17:55 14/10/2014 Rất hân hạnh khi bạn đón đọc bài viết!   (To be Continued...)

lên
14 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Cách xuất file .HEX từ Arduino IDE và mô phỏng Arduino trên phần mềm Proteus

Xin chào các bạn!
Bài viết dưới đây mình sẽ giới thiệu đến các bạn làm thế nào để lấy được file .hex từ trình biên dịch Arduino IDE. (Chắc hẳn những bạn nào đã từng lập trình 8051 trên Keil C hoặc AVR trên Code Vision, Studio...đều đã quá quen thuộc với file .hex này). 
Kế đó là sơ lược về phần mềm mô phỏng mạch Proteus và cách mô phỏng Arduino trên Proteus.  
lên
32 thành viên đã đánh giá bài viết này hữu ích.

Tổng quan về cách làm mạch in bằng phương pháp ủi thủ công

Xin Chào Các Bạn!

Bài viết này sẽ giúp các bạn hình dung một cách tổng quan những bước cơ bản để có thể tạo ra một mạch điện bằng phương pháp thủ công. Đồng thời đây cũng là bài viết cơ sở nền tảng giúp các bạn có thể dễ dàng tiếp cận những bài viết Tutorial Shield Board for Arduino sau này. Mình sẽ giới thiệu một cách chi tiết theo ngôn ngữ bình dị nhất có thể để các bạn không chuyên về điện tử vẫn có thể dễ dàng tiếp cận và làm theo được.

Mong mọi người đón đọc! 

lên
22 thành viên đã đánh giá bài viết này hữu ích.