- Vật liệu thiết yếu
- Động cơ bước (28BYJ-48)
- IC điều khiển động cơ ULN2003
- Sơ đồ mạch và kết nối
- Động cơ bước quay với STM32F103C8
- LẬP TRÌNH STM32 cho Động cơ bước
Động cơ bước là động cơ điện một chiều không chổi than, có thể quay được các góc nhỏ, các góc này gọi là bước. Nói chung động cơ bước sử dụng 200 bước để hoàn thành vòng quay 360 độ, nghĩa là xoay 1,8 độ mỗi bước. Động cơ bước được sử dụng trong nhiều thiết bị cần chuyển động quay chính xác như rô bốt, ăng-ten, ổ cứng, v.v. Chúng tôi có thể xoay động cơ bước theo bất kỳ góc độ cụ thể nào bằng cách đưa ra hướng dẫn thích hợp. Chủ yếu có hai loại động cơ bước, Đơn cực và Lưỡng cực. Đơn cực dễ vận hành, kiểm soát hơn và cũng dễ lấy hơn. Ở đây trong hướng dẫn này, chúng tôi đang giao tiếp Động cơ bước với bảng STM32F103C8 (Viên thuốc màu xanh).
Vật liệu thiết yếu
- STM32F103C8 (Viên màu xanh lam)
- Động cơ bước (28BYJ-48)
- IC ULN2003
- Chiết áp 10k
- Breadboard
- Dây nhảy
Động cơ bước (28BYJ-48)
28BYJ-48 là động cơ bước đơn cực yêu cầu nguồn điện 5V. Động cơ có bố trí 4 cuộn dây đơn cực và mỗi cuộn dây được đánh giá là + 5V, do đó nó tương đối dễ điều khiển với bất kỳ vi điều khiển nào như Arduino, Raspberry Pi cũng STM32. tiêu thụ dòng điện cao và nó có thể làm hỏng vi điều khiển.
Một dữ liệu quan trọng khác cần lưu ý là Stride Angle: 5.625 ° / 64. Điều này có nghĩa là động cơ khi hoạt động theo trình tự 8 bước sẽ di chuyển 5.625 độ cho mỗi bước và sẽ mất 64 bước (5.625 * 64 = 360) để hoàn thành một vòng quay đầy đủ. Các thông số kỹ thuật khác được cung cấp trong biểu dữ liệu dưới đây:
Đồng thời kiểm tra giao tiếp của Động cơ bước với các Bộ vi điều khiển khác:
- Giao diện động cơ bước với Arduino Uno
- Điều khiển động cơ bước với Raspberry Pi
- Giao diện động cơ bước với vi điều khiển 8051
- Giao diện động cơ bước với vi điều khiển PIC
Động cơ bước cũng có thể được điều khiển mà không cần bất kỳ Vi điều khiển nào, hãy xem Mạch điều khiển động cơ bước này.
IC điều khiển động cơ ULN2003
Nó được sử dụng để điều khiển động cơ theo các xung nhận được từ vi điều khiển. Dưới đây là sơ đồ hình ảnh của ULN2003:
Các chân (IN1 đến IN7) là các chân đầu vào và (OUT 1 đến OUT 7) là các chân đầu ra tương ứng. COM được cung cấp Điện áp nguồn dương cần thiết cho các thiết bị đầu ra. Các kết nối khác cho động cơ bước được đưa ra bên dưới trong phần sơ đồ mạch.
Sơ đồ mạch và kết nối
Dưới đây là giải thích kết nối cho sơ đồ mạch trên.
STM32F103C8 (Viên thuốc màu xanh lam)
Như chúng ta có thể thấy trong sơ đồ bên dưới, các chân PWM được biểu thị ở dạng sóng (~), có 15 chân như vậy có thể được sử dụng để xuất xung cho động cơ bước. Chúng tôi chỉ cần bốn pin, chúng tôi sử dụng (PA0 toPA3).
STM32F103C8 với IC điều khiển động cơ ULN2003
Chân (PA0 đến PA3) được coi là chân đầu ra được nối với chân đầu vào (IN1-IN4) của IC ULN2003.
PIN CỦA STM32F103C8 |
PIN CỦA IC ULN2003 |
PA0 |
TRONG 1 |
PA1 |
TRONG 2 |
PA2 |
TRONG 3 |
PA3 |
IN4 |
5V |
COM |
GND |
GND |
ULN2003 IC với động cơ bước (28BYJ-48)
Các chân đầu ra (OUT1-OUT4) của IC ULN2003 được kết nối với các chân của động cơ bước (Cam, Vàng, Hồng và Xanh lam).
PIN CỦA IC ULN2003 |
PIN CỦA ĐỘNG CƠ STEPPER |
HẾT1 |
TRÁI CAM |
HẾT 2 |
MÀU VÀNG |
HẾT 3 |
HỒNG |
HẾT 4 |
MÀU XANH DA TRỜI |
COM |
ĐỎ |
STM32F103C8 với chiết áp
Một chiết áp được sử dụng để cài đặt tốc độ của động cơ bước.
CHIẾT ÁP |
STM32F103C8 |
TRÁI (ĐẦU VÀO) |
3,3 |
TRUNG TÂM (ĐẦU RA) |
PA4 |
QUYỀN (GND) |
GND |
Động cơ bước quay với STM32F103C8
Dưới đây là một số bước để vận hành Động cơ bước:
- Đặt tốc độ của động cơ bước bằng cách thay đổi chiết áp.
- Sau đó, nhập thủ công các bước để xoay theo chiều kim đồng hồ (+ giá trị) hoặc ngược chiều kim đồng hồ (-giá trị) thông qua SERIAL MONITER có trong ARDUINO IDE (Công cụ-> Màn hình nối tiếp) hoặc CTRL + SHIFT + M.
- Theo giá trị đầu vào được đưa ra trong màn hình nối tiếp, các bước quay nhất định diễn ra trong động cơ bước.
Ví dụ
GIÁ TRỊ ĐƯA RA TRONG MỖI LẦN DÙNG |
VÒNG XOAY |
2048 |
(360) CLK WISE |
1024 |
(180) CLK WISE |
512 |
(90) CLK WISE |
-2048 |
(-360) ANTI CLK WISE |
-1024 |
(-180) ANTI CLK WISE |
-512 |
(-90) ANTI CLK WISE |
LẬP TRÌNH STM32 cho Động cơ bước
Giống như hướng dẫn trước, chúng tôi đã lập trình STM32F103C8 với Arduino IDE thông qua cổng USB mà không cần sử dụng bộ lập trình FTDI. Để tìm hiểu về lập trình STM32 với Arduino IDE, hãy làm theo liên kết. Chúng ta có thể tiến hành lập trình nó giống như Arduino. Mã hoàn chỉnh được đưa ra ở cuối dự án.
Trước tiên, chúng ta phải bao gồm các tệp thư viện bước #include
#include
Sau đó, chúng tôi xác định không. của các bước cần hoàn thành khi xoay, ở đây chúng ta sử dụng 32 vì chúng ta đang sử dụng Full-Step (4 Step-sequence) nên (360/32 = 11,25 độ). Vì vậy, trong một bước, trục di chuyển 11,25 độ là góc sải chân. Trong chuỗi 4 bước, 4 bước được yêu cầu cho một lần quay hoàn chỉnh.
#define CÁC BƯỚC 32
Chúng ta cũng có thể sử dụng chế độ Nửa bước trong đó có 8 bước trình tự (360/64 = 5.625) góc sải chân.
Số bước mỗi vòng quay = 360 / BƯỚC ANGLE
Vì chúng ta đang cài đặt tốc độ, chúng ta phải lấy giá trị tương tự từ PA4 được kết nối với chiết áp. Vì vậy, chúng ta phải khai báo mã pin cho điều đó
const int speedm = PA4
Sau đó, chúng tôi đã chuyển đổi giá trị tương tự thành kỹ thuật số bằng cách lưu trữ các giá trị đó trong biến kiểu số nguyên, sau đó chúng tôi phải ánh xạ các giá trị ADC cho tốc độ cài đặt vì vậy chúng tôi sử dụng câu lệnh dưới đây. Tìm hiểu thêm về cách sử dụng ADC với STM32 tại đây.
int adc = analogRead (speedm); int result = map (adc , 0, 4096, 1, 1023);
Để thiết lập tốc độ, chúng tôi sử dụng stepper.setSpeed (result); Chúng tôi có phạm vi tốc độ là (1-1023).
Chúng ta phải tạo instance như bên dưới để đặt các chân được kết nối với động cơ. Hãy cẩn thận trong các bước này vì hầu hết chúng đều mắc lỗi ở đây trong mẫu này. Họ đưa ra mô hình sai và do đó các cuộn dây không thể được cung cấp năng lượng.
Bước bước (STEPS, PA0, PA2, PA1, PA3);
Câu lệnh dưới đây được sử dụng để lấy giá trị của các bước từ màn hình nối tiếp. Ví dụ, chúng ta cần 2048 giá trị cho một vòng quay đầy đủ (32 * 64 = 2048), 64 sẽ là tỷ số truyền và 32 sẽ là chuỗi nửa bước cho một vòng quay.
xoay = Serial.parseInt ();
Mã dưới đây được sử dụng để gọi phiên bản và chạy động cơ. Nếu giá trị xoay là 1, nó sẽ gọi hàm bước một lần và một lần di chuyển được thực hiện.
stepper.step (xoay);
Mã hoàn chỉnh với Video trình diễn được đưa ra bên dưới. Ngoài ra, hãy kiểm tra tất cả các dự án liên quan đến động cơ bước tại đây, với giao diện với nhiều bộ vi điều khiển khác