Điều khiển tốc độ trình điều khiển động cơ với Arduino

Trong ví dụ này, chúng tôi sẽ kiểm soát tốc độ của bộ truyền động tuyến tính với bộ điều khiển động cơ và Arduino.

Lưu ý: Hướng dẫn này giả định có kiến ​​thức trước về các nguyên tắc điện tử cơ bản, phần cứng và phần mềm Arduino. Nếu đây là lần đầu tiên bạn sử dụng Arduino, chúng tôi khuyên bạn nên học những kiến ​​thức cơ bản từ một trong nhiều hướng dẫn tuyệt vời dành cho người mới bắt đầu có sẵn thông qua các tìm kiếm trên Google và YouTube. Xin lưu ý rằng chúng tôi không có tài nguyên để cung cấp hỗ trợ kỹ thuật cho các ứng dụng tùy chỉnh và sẽ không gỡ lỗi, chỉnh sửa, cung cấp mã hoặc sơ đồ đi dây bên ngoài các hướng dẫn có sẵn công khai này.

Các thành phần

Đấu dây

Điều khiển tốc độ trình điều khiển động cơ với Arduino

Tổng quan về phần cứng và phần mềm

Động cơ DC trong bộ truyền động tuyến tính yêu cầu dòng điện cao (lên đến 5A), nếu chúng tôi kết nối bộ truyền động tuyến tính trực tiếp với Arduino, dòng điện cao này sẽ phá hủy các chân kỹ thuật số Arduino vì chúng chỉ được đánh giá cho 40mA mỗi chân. Do đó, chúng tôi sử dụng trình điều khiển động cơ có thể lấy tín hiệu PWM (điều chế độ rộng xung) dòng điện thấp từ bảng Arduino và xuất tín hiệu PWM dòng cao tới bộ truyền động tuyến tính.

Trình điều khiển động cơ được kết nối với hai chân kỹ thuật số PWM (chân 10 và 11 trên Arduino Uno). Bằng cách đặt một trong các chân này THẤP và chân kia CAO (xem dòng 18 và 19 trong mã bên dưới), chúng ta có thể mở rộng bộ truyền động ở tốc độ tối đa. Để dừng bộ truyền động, chúng ta đặt cả hai chân thành LOW (xem dòng 21 và 22 trong mã bên dưới) và để đảo ngược hướng chuyển động, chúng ta có thể đảo ngược thứ tự của các chân CAO và THẤP (xem dòng 24 và 25 trong mã bên dưới). Chúng ta cũng có thể điều chỉnh tốc độ bằng cách thay đổi biến “Tốc độ” thành bất kỳ giá trị nào trong phạm vi [0, 255]; xem dòng 17 trong mã bên dưới.

https://gist.github.com/Will-Firgelli/c0ef0871dc1946d75257e0c29dccae2a

Điều khiển tốc độ đa dạng với một chiết áp

Trong ví dụ trên, chúng tôi đặt tốc độ theo cách thủ công ở dòng 17 của mã. Tuy nhiên, các tình huống có thể phát sinh khi chúng ta muốn thay đổi tốc độ của bộ truyền động theo thời gian. Phương pháp dễ nhất để đạt được điều này là sử dụng một chiết áp. A chiết áp làmột biến trở ba đầu cuối có thể hoạt động như một bộ phân áp. Bằng cách xoay núm của chiết áp, điện áp đầu ra sẽ thay đổi và chúng ta có thể kết nối chân này với chân analog trên Arduino để đặt tốc độ thay đổi.

Đấu dây

Điều khiển tốc độ trình điều khiển động cơ với Arduino

Tổng quan về phần cứng và phần mềm

Như đã nói ở trên, chiết áp là một thiết bị quay, thay đổi điện trở khi núm xoay. Bằng cách kết nối hai chân bên ngoài của chiết áp với 5V và GND, và chân giữa với chân tương tự Arduino, A0, một bộ chia điện áp được tạo ra. Khi núm xoay được xoay, Arduino sẽ đọc các số đọc tương tự từ [0, 1023].

Đối với các giá trị trong phạm vi [512, 1023], chúng tôi muốn bộ truyền động mở rộng và đối với các giá trị [0, 511], chúng tôi muốn bộ truyền động rút lại, điều này có thể đạt được bằng câu lệnh if () / else đơn giản ở dòng 22 và 28 in mã bên dưới. Sau đó, sử dụng hàm map () (dòng 23 và 29 trong đoạn mã bên dưới), chúng ta có thể chuyển nó thành tín hiệu PWM sẽ điều khiển cả tốc độ và hướng của cơ cấu chấp hành.

https://gist.github.com/Will-Firgelli/d2cdf69edc829974885984b3fb8e4856

Share This Article
Tags: