- Các phương thức hoạt động trong Động cơ bước
- Tạo Giao diện người dùng đồ họa MATLAB để điều khiển Động cơ bước
- Mã MATLAB để điều khiển Động cơ bước với Arduino
- Vật liệu cần thiết
- Sơ đồ mạch
- Điều khiển động cơ bước với MATLAB
Động cơ bước là động cơ DC không chổi than quay theo các bước rời rạc và là sự lựa chọn tốt nhất cho nhiều ứng dụng điều khiển chuyển động chính xác. Ngoài ra, động cơ bước rất tốt để định vị, kiểm soát tốc độ và các ứng dụng yêu cầu mô-men xoắn cao ở tốc độ thấp.
Trong các bài hướng dẫn trước của MATLAB, chúng tôi đã giải thích cách sử dụng MATLAB để điều khiển động cơ DC, động cơ Servo và Thiết bị gia dụng. Hôm nay chúng ta sẽ học cách điều khiển Động cơ bước bằng MATALB và Arduino. Nếu bạn chưa quen với MATLAB thì bạn nên bắt đầu với chương trình nhấp nháy đèn LED đơn giản với MATLAB.
Các phương thức hoạt động trong Động cơ bước
Trước khi bắt đầu viết mã cho động cơ bước, bạn nên hiểu khái niệm làm việc hoặc quay của động cơ bước. Vì stator của chế độ bước được chế tạo từ các cặp cuộn dây khác nhau, mỗi cặp cuộn dây có thể được kích thích theo nhiều phương pháp khác nhau, điều này cho phép các chế độ được điều khiển ở nhiều chế độ khác nhau. Sau đây là các phân loại rộng
Chế độ toàn bước
Ở chế độ kích thích theo bước đầy đủ, chúng ta có thể quay được 360 ° đầy đủ với số lần quay (bước) tối thiểu. Nhưng điều này dẫn đến quán tính kém hơn và vòng quay cũng sẽ không được trơn tru. Có hai phân loại khác trong Kích thích Toàn bước, chúng là một bước sóng theo pha và hai chế độ bật pha.
1. Bước một pha hoặc Bước sóng: Trong chế độ này, chỉ một đầu cuối (pha) của động cơ sẽ được cấp điện tại bất kỳ thời điểm nào. Điều này có số bước ít hơn và do đó có thể đạt được xoay 360 ° đầy đủ. Vì số bước ít hơn nên dòng điện tiêu thụ theo phương pháp này cũng rất thấp. Bảng sau đây cho thấy trình tự bước sóng cho động cơ bước 4 pha
Bươc | Giai đoạn 1 (Xanh lam) | Giai đoạn 2 (Hồng) | Giai đoạn 3 (Vàng) | Giai đoạn 4 (Màu cam) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Bước hai giai đoạn: Như tên nói trong phương pháp này, hai giai đoạn sẽ là một. Nó có cùng số bước với bước sóng, nhưng vì hai cuộn dây được cấp điện tại một thời điểm nên nó có thể cung cấp mô-men xoắn và tốc độ tốt hơn so với phương pháp trước. Mặc dù một mặt trái của nó là phương pháp này cũng tiêu tốn nhiều điện năng hơn.
Bươc |
Giai đoạn 1 (Xanh lam) |
Giai đoạn 2 (Hồng) |
Giai đoạn 3 (Vàng) |
Giai đoạn 4 (Màu cam) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Chế độ nửa bước
Chế độ Half Step là sự kết hợp của chế độ bật một pha và hai pha. Sự kết hợp này sẽ giúp chúng ta khắc phục được nhược điểm nêu trên của cả hai chế độ.
Như bạn có thể đoán vì chúng tôi đang kết hợp cả hai phương pháp, chúng tôi sẽ phải thực hiện 8 bước trong phương pháp này để có được một vòng quay hoàn chỉnh. Trình tự chuyển mạch cho động cơ bước 4 pha được hiển thị bên dưới
Bươc |
Giai đoạn 1 (Xanh lam) |
Giai đoạn 2 (Hồng) |
Giai đoạn 3 (Vàng) |
Giai đoạn 4 (Màu cam) |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
số 8 |
1 |
0 |
0 |
0 |
Do đó, bạn có thể lựa chọn lập trình động cơ bước của mình ở bất kỳ chế độ nào, nhưng tôi thích Chế độ Toàn bước hai pha theo bước. Bởi vì phương pháp này cung cấp tốc độ nhanh hơn so với phương pháp một pha và so với chế độ một nửa, phần mã hóa ít hơn do số bước ít hơn trong phương pháp hai pha.
Tìm hiểu thêm về động cơ bước và các chế độ của nó tại đây
Tạo Giao diện người dùng đồ họa MATLAB để điều khiển Động cơ bước
Sau đó, chúng ta phải xây dựng GUI (Giao diện người dùng đồ họa) để điều khiển động cơ bước. Để khởi chạy GUI, hãy nhập lệnh dưới đây vào cửa sổ lệnh
hướng dẫn
Một cửa sổ bật lên sẽ mở ra, sau đó chọn GUI trống mới như được hiển thị trong hình ảnh bên dưới,
Bây giờ hãy chọn hai nút bật tắt để xoay Động cơ bước Theo chiều kim đồng hồ và Ngược chiều kim đồng hồ, như được hiển thị bên dưới,
Để thay đổi kích thước hoặc thay đổi hình dạng của nút, chỉ cần nhấp vào nó và bạn sẽ có thể kéo các góc của nút. Bằng cách nhấp đúp vào nút bật tắt, bạn có thể thay đổi màu, chuỗi và thẻ của nút cụ thể đó. Chúng tôi đã tùy chỉnh hai nút như thể hiện trong hình dưới đây.
Bạn có thể tùy chỉnh các nút theo sự lựa chọn của mình. Bây giờ khi bạn lưu nó, một mã sẽ được tạo trong cửa sổ Editor của MATLAB. Để viết mã Arduino để thực hiện bất kỳ tác vụ nào liên quan đến dự án của bạn, bạn luôn phải chỉnh sửa mã được tạo này. Vì vậy, dưới đây chúng tôi đã chỉnh sửa mã MATLAB. Bạn có thể tìm hiểu thêm về Cửa sổ lệnh, cửa sổ trình soạn thảo, v.v. trong hướng dẫn Bắt đầu với MATLAB.
Mã MATLAB để điều khiển Động cơ bước với Arduino
Mã MATLAB hoàn chỉnh, để điều khiển động cơ Bước, được đưa ra ở cuối dự án này. Hơn nữa, chúng tôi đang bao gồm tệp GUI (.fig) và tệp mã (.m) tại đây để tải xuống (nhấp chuột phải vào liên kết sau đó chọn 'Lưu liên kết thành…')), sử dụng mà bạn có thể tùy chỉnh các nút theo yêu cầu của mình. Dưới đây là một số điều chỉnh chúng tôi đã thực hiện để xoay Động cơ bước theo chiều kim đồng hồ và ngược chiều kim đồng hồ bằng cách sử dụng hai nút bật tắt.
Sao chép và dán đoạn mã dưới đây vào dòng số. 74 để đảm bảo rằng Arduino đang nói chuyện với MATLAB mỗi khi bạn chạy m-file.
Làm sạch tất cả; toàn cầu a; a = arduino ();
Khi cuộn xuống, bạn sẽ thấy có hai chức năng được tạo cho cả hai Nút trong GUI. Bây giờ viết mã trong cả hai chức năng theo tác vụ bạn muốn thực hiện khi nhấp chuột.
Trong chức năng của nút Clockwise , sao chép và dán đoạn mã dưới đây ngay trước khi kết thúc chức năng để quay động cơ theo chiều kim đồng hồ. Để liên tục quay động cơ bước theo chiều kim đồng hồ, chúng tôi đang sử dụng vòng lặp while để lặp lại hai bước chế độ bước đầy đủ theo pha cho chiều kim đồng hồ.
while get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); tạm dừng (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); tạm dừng (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); tạm dừng (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); tạm dừng (0,0002); kết thúc
Bây giờ trong chức năng của nút Ngược chiều kim đồng hồ , hãy dán đoạn mã dưới đây vào chức năng để xoay động cơ theo hướng ngược chiều kim đồng hồ. Để liên tục quay động cơ bước theo hướng ngược chiều kim đồng hồ, chúng tôi đang sử dụng vòng lặp while để lặp lại hai bước chế độ bước đầy đủ pha bật cho hướng ngược chiều kim đồng hồ.
while get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); tạm dừng (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); tạm dừng (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); tạm dừng (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); tạm dừng (0,0002); kết thúc
Vật liệu cần thiết
- Máy tính xách tay đã cài đặt MATLAB (Tùy chọn: phiên bản R2016a trở lên)
- Arduino UNO
- Động cơ bước (28BYJ-48, 5VDC)
- ULN2003 - Trình điều khiển động cơ bước
Sơ đồ mạch
Điều khiển động cơ bước với MATLAB
Sau khi thiết lập phần cứng theo sơ đồ mạch, chỉ cần nhấp vào nút chạy để chạy mã đã chỉnh sửa trong tệp.m
MATLAB có thể mất vài giây để phản hồi, không nhấp vào bất kỳ nút GUI nào cho đến khi MATLAB hiển thị thông báo bận ở phía dưới góc trái như hình dưới đây,
Khi mọi thứ đã sẵn sàng, hãy nhấp vào nút theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ để xoay động cơ. Khi chúng ta đang sử dụng nút bật tắt, động cơ bước sẽ liên tục di chuyển theo chiều kim đồng hồ cho đến khi chúng ta nhấn lại nút. Tương tự, bằng cách nhấn nút bật tắt ngược chiều kim đồng hồ, động cơ bắt đầu quay theo hướng ngược chiều kim đồng hồ cho đến khi chúng ta nhấn lại nút.