- Động cơ bước
- Quay động cơ bước VỚI ARM7-LPC2148
- Thành phần bắt buộc
- Động cơ bước (28BYJ-48)
- Trình điều khiển động cơ bước ULN2003
- Sơ đồ mạch
- Lập trình ARM7-LPC2148 cho Động cơ bước
Trong thế giới tự động hóa ngày nay, động cơ bước và động cơ servo là hai động cơ được sử dụng phổ biến nhất trong các hệ thống nhúng. Cả hai đều được sử dụng trong các máy tự động hóa khác nhau như cánh tay robot, máy CNC, máy ảnh, v.v. Trong hướng dẫn này, chúng ta sẽ thấy cách giao diện Động cơ bước với ARM7-LPC2148 và cách điều khiển tốc độ của nó. Nếu bạn chưa quen với ARM7 thì hãy bắt đầu bằng cách tìm hiểu về ARM7-LPC2148 và các công cụ lập trình của nó.
Độ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. Chúng ta có thể quay động cơ bước từng bước bằng cách đưa xung kỹ thuật số vào các chân của nó. Động cơ bước không đắt và có thiết kế chắc chắn. Tốc độ của động cơ có thể được kiểm soát bằng cách thay đổi tần số của xung kỹ thuật số.
Có hai loại động cơ bước có sẵn dựa trên loại cuộn dây stato: UNIPOLAR và BIPOLAR. Ở đây chúng tôi đang sử dụng động cơ bước UNIPOLAR là động cơ bước được sử dụng phổ biến nhất . Để quay động cơ bước, chúng ta cần cung cấp năng lượng cho các cuộn dây của động cơ bước theo trình tự. Dựa trên hoạt động quay, chúng được phân loại thành hai chế độ:
- Chế độ Toàn bước: (Trình tự 4 bước)
- Một giai đoạn trên bước (BƯỚC SÓNG)
- Hai giai đoạn trên bước
- Chế độ nửa bước (Trình tự 8 bước)
Để biết thêm về động cơ bước và hoạt động của nó, hãy theo liên kết.
Quay động cơ bước VỚI ARM7-LPC2148
Ở đây chúng tôi sẽ sử dụng chế độ FULL STEP: ONE PHASE ON hoặc WAVE STEPPING để xoay Động cơ bước với ARM7-LPC2148
Trong phương pháp này, chúng tôi sẽ chỉ cấp điện cho một cuộn dây (một chân của LPC2148) tại một thời điểm. Tức là nếu cuộn dây đầu tiên A được cung cấp năng lượng trong một thời gian nhỏ, trục sẽ thay đổi vị trí của nó và sau đó cuộn dây B được cung cấp năng lượng trong cùng một thời gian và trục lại thay đổi vị trí của nó. Tương tự như vậy, cuộn C và sau đó cuộn D được cung cấp năng lượng để chuyển động trục xa hơn. Điều này làm cho trục của động cơ bước quay từng bước một bằng cách cung cấp năng lượng cho từng cuộn dây tại một thời điểm.
Bằng phương pháp này, chúng tôi quay trục từng bước bằng cách cung cấp năng lượng cho cuộn dây theo trình tự. Đây được gọi là trình tự bốn bước vì nó có bốn bước.
Bạn có thể xoay Động cơ bước bằng phương pháp HALF STEP (phương pháp 8-Trình tự) theo các giá trị được đưa ra bên dưới.
Bươc |
Cuộn dây A |
Cuộn dây B |
Cuộn dây C |
Cuộn dây D |
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 |
Thành phần bắt buộc
Phần cứng:
- ARM7-LPC2148
- IC điều khiển động cơ ULN2003
- LED - 4
- ĐỘNG CƠ STEPPER (28BYJ-48)
- BẢNG BÁNH MÌ
- KẾT NỐI DÂY
Phần mềm:
- Keil uVision5
- Flasic Magic Tool
Động cơ bước (28BYJ-48)
Động cơ bước 28BYJ-48 đã được hiển thị trong hình trên. Nó là một động cơ bước đơn cực yêu cầu nguồn cung cấp 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ỳ bộ vi điều khiển nào như Arduino, Raspberry Pi, STM32, ARM, v.v.
Nhưng chúng ta cần một IC điều khiển động cơ như ULN2003 để điều khiển nó, bởi vì động cơ bước tiêu thụ dòng điện cao và nó có thể làm hỏng vi điều khiển.
Thông số kỹ thuật của 28BYJ-48 đượ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
- Giao diện động cơ bước với MSP430G2
Độ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.
Trình điều khiển động cơ bước ULN2003
Hầu hết các động cơ bước sẽ chỉ hoạt động với sự trợ giúp của mô-đun trình điều khiển. Điều này là do mô-đun bộ điều khiển (Trong trường hợp của chúng tôi là LPC2148) sẽ không thể cung cấp đủ dòng điện từ các chân I / O của nó để động cơ hoạt động. Vì vậy, chúng tôi sẽ sử dụng một mô-đun bên ngoài như mô-đun ULN2003 làm trình điều khiển động cơ bước.
Trong dự án này, chúng tôi sẽ sử dụng IC điều khiển động cơ ULN2003. Sơ đồ chân của IC được đưa ra dưới đây:
Các chân (IN1 đến IN7) là các chân đầu vào để kết nối đầu ra của vi điều khiển và OUT1 đến OUT7 là các chân đầu ra tương ứng để kết nối đầu vào của động cơ bước. COM được cung cấp Điện áp nguồn dương cần thiết cho các thiết bị đầu ra và cho nguồn đầu vào công suất bên ngoài.
Sơ đồ mạch
Sơ đồ mạch để giao tiếp Động cơ bước với ARM-7 LPC2148 được đưa ra bên dưới
ARM7-LPC2148 với IC điều khiển động cơ ULN2003
Các chân GPIO của LPC2148 (P0.7 đến P0.10) được coi là các chân đầu ra được kết nối với các chân đầu vào (IN1-IN4) của IC ULN2003.
Ghim LPC2148 |
PIN CỦA IC ULN2003 |
P0.7 |
TRONG 1 |
P0.8 |
TRONG 2 |
P0.9 |
TRONG 3 |
P.10 |
IN4 |
5V |
COM |
GND |
GND |
Kết nối của IC ULN2003 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 (Xanh lam, Hồng, Vàng và Cam).
ULN2003 IC PINS |
PIN CỦA ĐỘNG CƠ STEPPER |
HẾT1 |
MÀU XANH DA TRỜI |
HẾT 2 |
HỒNG |
HẾT 3 |
MÀU VÀNG |
HẾT 4 |
TRÁI CAM |
COM |
ĐỎ (+ 5V) |
Đèn LED có IN1 đến IN4 của ULN2003
Bốn chân cực dương của LED (LED1, LED2, LED4, LED 4) được kết nối với các chân IN1, IN2, IN3 và IN4 tương ứng của ULN2003 và cực âm của đèn LED được kết nối với GND để chỉ ra các xung từ LPC2148. Chúng ta có thể lưu ý mô hình của các xung được cung cấp. Mô hình được hiển thị trong video trình diễn đính kèm ở cuối.
Lập trình ARM7-LPC2148 cho Động cơ bước
Để lập trình ARM7-LPC2148, chúng ta cần công cụ keil uVision & Flash Magic. Chúng tôi đang sử dụng Cáp USB để lập trình Thanh ARM7 qua cổng micro USB. Chúng tôi viết mã bằng Keil và tạo một tệp hex và sau đó tệp HEX được chuyển sang thanh ARM7 bằng Flash Magic. Để biết thêm về cách cài đặt keil uVision và Flash Magic cũng như cách sử dụng chúng, hãy truy cập liên kết Bắt đầu với Vi điều khiển ARM7 LPC2148 và Lập trình bằng Keil uVision.
Mã hoàn chỉnh để điều khiển Động cơ bước với ARM 7 được đưa ra ở cuối hướng dẫn này, ở đây chúng tôi sẽ giải thích một vài phần của nó.
1. Để sử dụng phương thức FULL STEP-ONE PHASE ON, chúng ta cần bao gồm lệnh dưới đây. Vì vậy, chúng tôi sử dụng dòng sau trong chương trình
không dấu char theo chiều kim đồng hồ = {0x1,0x2,0x4,0x8}; // Các lệnh quay theo chiều kim đồng hồ unsigned char ngược chiều kim đồng hồ = {0x8,0x4,0x2,0x1}; // Các lệnh xoay ngược chiều kim đồng hồ
2. Các dòng sau được sử dụng để khởi tạo các chân PORT0 làm đầu ra và đặt chúng thành THẤP
PINSEL0 = 0x00000000; // Đặt chân PORT0 IO0DIR - = 0x00000780; // Cài đặt các chân P0.7, P0.8, P0.9, P0.10 là OUTPUT IO0CLR = 0x00000780; // Đặt các chân P0.7, P0.8, P0.9, P0.10 OUTPUT thành LOW
3. Đặt các chân PORT (P0.7 đến P0.10) HIGH theo các lệnh Chiều kim đồng hồ bằng cách sử dụng vòng lặp for có độ trễ này
for (int j = 0; j
Tương tự cho Anti-clock Wise
for (int z = 0; z
4. Thay đổi thời gian trễ để thay đổi tốc độ quay của động cơ bước
độ trễ (0x10000); // Thay đổi giá trị này để thay đổi tốc độ quay (0x10000) -Full speed (0x50000) -Get slow (0x90000) -Gets slow hơn trước. Vì vậy, bằng cách tăng độ trễ, chúng tôi giảm tốc độ quay.
5. Có thể thay đổi số bước cho một vòng quay hoàn chỉnh bằng đoạn mã dưới đây
int no_of_steps = 550; // Thay đổi giá trị này cho số bước xoay được yêu cầu (550 cho một lần xoay hoàn toàn)
Đối với động cơ bước của tôi, tôi có 550 bước để quay hoàn toàn và 225 bước cho nửa vòng quay. Vì vậy, thay đổi nó theo yêu cầu của bạn.
6. Chức năng này dùng để tạo thời gian trễ.
void delay (unsigned int value) // Hàm tạo delay { unsigned int z; cho (z = 0; z
Mã hoàn chỉnh với video minh họa được đưa ra bên dưới.