Làm thế nào để bạn điều khiển một Bộ truyền động tuyến tính với Arduino?

Arduino là gì?

Arduino là một nền tảng tạo mẫu điện tử nguồn mở dựa trên phần cứng và phần mềm linh hoạt, dễ sử dụng. Nó dành cho các dự án DIY, nghệ sĩ, nhà thiết kế, người có sở thích và bất kỳ ai quan tâm đến việc tạo các dự án tương tác. Arduino là bảng vi điều khiển chứa mọi thứ bạn cần để dễ dàng giao tiếp với vi điều khiển. Một bộ vi điều khiển giống như một máy tính mini dành cho các hệ thống nhúng và loại vi điều khiển đi kèm sẽ phụ thuộc vào kiểu dáng của Arduino. Arduino có phạm vi từ lớn hơn Arduino Mega đến cỡ trung bình Arduino Uno đến cái nhỏ hơn Arduino Pro Mini. Các bo mạch có kích thước khác nhau sẽ cung cấp số lượng chân I/O ngày càng tăng và các tính năng bổ sung và loại bo mạch phổ biến nhất trong số này là Uno. Arduino cũng cung cấp IDE mã nguồn mở miễn phí để lập trình cho bộ vi điều khiển của bạn. Arduino IDE sử dụng ngôn ngữ lập trình dễ hiểu và do tính phổ biến của Arduino, bạn có thể tìm thấy nhiều ví dụ hữu ích trực tuyến để giúp bạn viết mã cho ứng dụng cụ thể của mình. Nếu đây là dự án Arduino đầu tiên của bạn, Bộ Arduino sẽ cung cấp cho bạn mọi thứ bạn cần từ cáp nhảy, cảm biến đến rơle và bao gồm cả Arduino Uno để giúp bạn bắt đầu.

Làm thế nào để bạn điều khiển một bộ truyền động tuyến tính bằng Arduino?

Tại sao nên sử dụng Arduino để điều khiển bộ truyền động tuyến tính?

Một trong những lợi thế lớn nhất của việc sử dụng Arduino hoặc bất kỳ bộ vi điều khiển nào để điều khiển thiết bị truyền động tuyến tính là bạn có quyền kiểm soát tốt hơn đối với bộ truyền động tuyến tính của mình. Bộ vi điều khiển cho phép bạn sử dụng các đầu vào phức tạp hơn từ cảm biến hoặc các thiết bị khác để điều khiển bộ truyền động tuyến tính của mình. Chúng cho phép bạn thực hiện các phép tính theo thời gian thực để định vị vị trí của bạn thiết bị truyền động ở vị trí lý tưởng hoặc triển khai bộ hẹn giờ để tự động thay đổi vị trí của bộ truyền động. Bộ vi điều khiển cũng có thể nhận phản hồi từ bộ truyền động của bạn để cung cấp khả năng kiểm soát tốc độ và vị trí chính xác hơn cũng như điều khiển nhiều bộ truyền động cùng một lúc. Nói một cách đơn giản, bộ vi điều khiển cung cấp cho bạn khả năng kiểm soát và tính linh hoạt cao hơn, đồng thời với thiết kế dễ sử dụng và mức độ phổ biến rộng rãi của Arduino, mức độ phức tạp bổ sung là tối thiểu.

Điều khiển bộ truyền động tuyến tính bằng Arduino

Bạn sẽ không thể giao tiếp trực tiếp bộ truyền động tuyến tính của mình với Arduino như bạn có thể làm bằng một công tắc vì điện áp hoạt động của Arduino chỉ là 5V và có giới hạn dòng điện rất nhỏ. Bạn sẽ cần sử dụng một thành phần trung gian để điều khiển bộ truyền động tuyến tính. Việc này có thể được thực hiện bằng cách sử dụng rơle hoặc trình điều khiển động cơ.

Rơle

Như đã thảo luận đây, rơle là các công tắc điện từ được điều khiển bằng cách cấp điện và ngắt điện một cuộn dây để mở và đóng công tắc. Arduino có thể được sử dụng để điều khiển rơle bằng cách cấp điện và ngắt điện cuộn dây bằng một chân I/O. Tùy thuộc vào loại rơle bạn sử dụng sẽ thay đổi mức độ kiểm soát của bạn đối với bộ truyền động tuyến tính của mình, nhưng việc giao tiếp với Arduino khá đơn giản, chỉ cần cấp điện cho cuộn dây bằng chân I/O. Bạn cần đảm bảo rằng điện áp định mức của cuộn dây xung quanh điện áp hoạt động của Arduino (5V), nếu không Arduino sẽ không thể cấp điện cho cuộn dây đủ để khiến công tắc đóng lại.

Rơle SPDT được điều khiển bằng Arduino

Trên đây là một ví dụ về giao tiếp Arduino với cấu hình hai rơle SPDT. Trong cấu hình này, được mô tả ở đây, hai rơle được sử dụng để đảo cực điện áp sang bộ truyền động tuyến tính cũng như ngắt kết nối nguồn với bộ truyền động. Trong ví dụ mã được hiển thị bên dưới, Arduino sẽ cấp năng lượng cho rơle trên cùng để kéo dài bộ truyền động trong 2 giây bằng cách đặt chân 7 xuống mức thấp, sau đó dừng bộ truyền động trong 2 giây bằng cách ngắt điện cho rơle trên bằng cách đặt cả hai chân ở mức cao. Để rút bộ truyền động, Arduino sẽ cấp điện cho rơle thứ hai trong 2 giây bằng cách đặt chân 8 ở mức thấp, sau đó dừng bộ truyền động trong 2 giây bằng cách đặt lại tất cả các chân ở mức cao. Vì mã này nằm trong phần vòng lặp của chương trình nên Arduino sẽ tiếp tục lặp đi lặp lại mã này. Rõ ràng, bạn có thể triển khai giải pháp mã hóa tinh tế hơn cho ứng dụng của mình, nhưng nếu bạn đang tìm kiếm khả năng kiểm soát nhiều hơn nữa, bạn sẽ muốn sử dụng trình điều khiển động cơ.

https://gist.github.com/OMikeGray/6bf644b6cda85bfe8c898ccd44ec6d78

Trình điều khiển động cơ

MỘT người lái xe máy là một thiết kế mạch tích hợp đặc biệt để điều khiển động cơ DC, dẫn động các bộ truyền động tuyến tính DC. Người điều khiển động cơ thường sử dụng cầu H để cho phép điều khiển cả hướng và tốc độ. Cách kết nối chính xác Arduino của bạn với trình điều khiển động cơ sẽ phụ thuộc vào trình điều khiển động cơ chính xác nhưng sẽ yêu cầu ít nhất hai chân I/O để thực hiện điều đó và một trong số chúng sẽ là tín hiệuPWM. Điều chế độ rộng xung hoặc xung là phương pháp thay đổi tín hiệu giữa các giá trị bật và tắt để cung cấp hiệu quả mức điện áp hoạt động thấp hơn. Người điều khiển động cơ sau đó có thể sử dụng tín hiệu này để điều chỉnh tốc độ chạy của động cơ.

Arduino điều khiển trình điều khiển động cơ 

Trên đây là một ví dụ của chúng tôi Ổ đĩa động cơ DC hiện tại cao giao tiếp với Arduino. Đối với trình điều khiển động cơ này, bạn phải gửi hai tín hiệuPWM, một tín hiệu để mở rộng bộ truyền động và tín hiệu còn lại để rút lại. PWM được cung cấp dưới dạng byte không dấu, nghĩa là nó nằm trong khoảng từ 0, không có điện áp, đến 255, điện áp tối đa (5V), tỷ lệ này sẽ tỷ lệ thuận với tốc độ của động cơ. VìPWM không phải là giá trị nhị phân nên chúng ta cần sử dụng các chânPWM của Arduino và sử dụng chức năng ghi tương tự, như trong ví dụ bên dưới. Các chân PLC sẽ được biểu thị trên Arduino bằng dấu ~ hoặc được dán nhãn đơn giản là các chân PLC.

https://gist.github.com/OMikeGray/c4e0196704a4d62db5507ad8297708f4

Trong ví dụ mã ở trên, Arduino sẽ mở rộng bộ truyền động ở tốc độ tối đa trong hai giây bằng cách gửi bộ điều khiển động cơ toàn bộ 5V từ chân 10 đến chân LPWM trên bộ điều khiển động cơ. Sau đó, Arduino dừng bộ truyền động bằng cách không gửi bất kỳ tín hiệu nào đến chân đầu vào của trình điều khiển động cơ. Sau đó, Arduino sẽ rút bộ truyền động ở tốc độ một nửa bằng cách gửi tín hiệu điều khiển động cơ đang bật và tắt một nửa từ chân 11 đến chân RPWM trên trình điều khiển động cơ. Sau đó dừng bộ truyền động lại. Vì mã này nằm trong phần vòng lặp của chương trình nên Arduino sẽ tiếp tục lặp đi lặp lại mã này. Một lần nữa, bạn có thể triển khai giải pháp mã hóa tinh tế hơn phù hợp với ứng dụng của mình, đặc biệt nếu bạn thêm đầu vào để điều khiển bộ truyền động của mình. 

Thêm đầu vào

Khi bạn có thể điều khiển bộ truyền động của mình bằng Arduino, bạn có thể triển khai đầu vào cho Arduino để tự động hóa và kiểm soát tốt hơn. Những đầu vào này có thể được công tắc, một loạt các cảm biến hoặc thậm chí phản hồi từ chính bộ truyền động. Vì có nhiều lựa chọn về đầu vào nên cách triển khai chúng sẽ khác nhau nhưng có một số điểm chung mà bạn nên biết. Nếu đầu vào cung cấp đầu vào nhị phân, như công tắc, bạn sẽ muốn sử dụng các chân kỹ thuật số trên Arduino, sẽ được dán nhãn trên bảng mạch hoặc trong biểu dữ liệu và sử dụng hàm digitalRead() trong Arduino IDE. Nếu thiết bị đầu vào của bạn cung cấp tín hiệu tương tự, bạn sẽ cần sử dụng các chân tương tự sẽ được dán nhãn trên bảng hoặc trong biểu dữ liệu và sử dụng hàm AnalogRead().


 

Share This Article
Tags: