Giới thiệu
Động cơ bước
Động cơ bước là một động cơ không chổi than DC chia góc quay 360 ° hoàn toàn thành số bước bằng nhau.
Động cơ được xoay bằng cách áp dụng chuỗi tín hiệu điều khiển nhất định. Tốc độ quay có thể thay đổi bằng cách thay đổi tốc độ tín hiệu điều khiển được áp dụng.
Động cơ bước khác nhau với các góc bước khác nhau và xếp hạng mô-men xoắn có sẵn trên thị trường.
Vi điều khiển có thể được sử dụng để áp dụng các tín hiệu điều khiển khác nhau cho động cơ để làm cho nó xoay theo nhu cầu của ứng dụng.
Giao diện động cơ bước với 8051
- Ở đây chúng ta sẽ giao diện 6 dây Unipolar Stepper Motor với bộ điều khiển 8051.
- Chỉ cần bốn dây để điều khiển động cơ bước.
- Hai dây phổ biến của động cơ bước kết nối với 5V cung cấp.
- Trình điều khiển ULN2003 được sử dụng để điều khiển động cơ bước.
- Lưu ý rằng để biết cuộn dây quanh co và vòi trung tâm của chúng dẫn đến đo điện trở giữa các dây dẫn. Từ trung tâm dẫn chúng ta sẽ nhận được một nửa giá trị kháng của cuộn dây đó.
Thí dụ
Hãy chương trình At89S52 để xoay động cơ bước 360 ° theo chiều kim đồng hồ theo chuỗi bước nửa và 360 ° ngược chiều kim đồng hồ theo trình tự bước đầy đủ.
Chương trình
#include <reg52.h>
#define Stepper_Port P2 /* Define Stepper Motor Port */
/* Function to provide delay of 1ms at 11.0592 MHz */
void delay(unsigned int count)
{
int i,j;
for(i=0; i<count; i++)
for(j=0; j<112; j++);
}
int main(void)
{
int i,period;
period = 100; /* Set period in between two steps of Stepper Motor */
while (1)
{
/* Rotate Stepper Motor clockwise with Half step sequence */
for(i=0; i<12; i++)
{
Stepper_Port = 0x09;
delay(period);
Stepper_Port = 0x08;
delay(period);
Stepper_Port = 0x0C;
delay(period);
Stepper_Port = 0x04;
delay(period);
Stepper_Port = 0x06;
delay(period);
Stepper_Port = 0x02;
delay(period);
Stepper_Port = 0x03;
delay(period);
Stepper_Port = 0x01;
delay(period);
}
/* last one step to acquire initial position */
Stepper_Port = 0x09;
delay(period);
delay(1000);
/* Rotate Stepper Motor Anticlockwise with Full step sequence */
for(i=0; i<12; i++)
{
Stepper_Port = 0x09;
delay(period);
Stepper_Port = 0x03;
delay(period);
Stepper_Port = 0x06;
delay(period);
Stepper_Port = 0x0C;
delay(period);
}
Stepper_Port = 0x09;
delay(period);
delay(1000);
}
}
Code mô phỏng
No comments:
Post a Comment