Trong bài viết này, tôi sẽ hướng dẫn chúng ta điều khiển hộp động cơ bước lưỡng cực bằng cách sử dụng Arduino UNO. Động cơ bước là 1 trong loại động cơ điện một chiều không thanh hao than sử dụng để thay đổi các tín hiệu tinh chỉnh dưới dạng những xung điện rời rạc kế tiếp nhau thành các vận động góc quay, tức là trục của bộ động cơ bước quay theo quá trình rời rạc. Lúc một máy tính được sử dụng để điều khiển công việc này, chúng ta có thể điều khiển đúng đắn vị trí và tốc độ của bộ động cơ bước.

Bạn đang xem: Điều khiển động cơ bước dùng arduino

Do tính chất rời rốc này của chuyển động quay theo bước của động cơ bước, bọn chúng thường được sử dụng trong những hệ thống auto hóa công nghiệp, CNC, v.v., địa điểm yêu cầu hoạt động chính xác.


Nội dung bài xích viết

Sơ đồ mạch điều khiển và tinh chỉnh động cơ bước dùng Arduino

Giới thiệu về hộp động cơ bước

Như đang đề cập trước đó, bộ động cơ bước là 1 loại động cơ DC cù theo công việc rời rạc. Vì thiết kế lạ mắt của bọn chúng mà hộp động cơ bước hoàn toàn có thể được điều khiển và tinh chỉnh để định vị đúng đắn mà không cần ngẫu nhiên phản hồi nào.

Một động cơ bước điển hình có không ít cuộn dây được phân thành các pha. Khi những pha được cung cấp điện theo thiết bị tự, rotor của động cơ bước đang quay theo từng bước.

*

Hình 2: những loại bộ động cơ bước.

Chúng ta sẽ không đi vào chi tiết các loại bộ động cơ bước dẫu vậy điều đặc biệt quan trọng là phải xác minh xem động cơ bước mà bọn họ sử dụng là bộ động cơ lưỡng rất hay đơn cực. Điều này đặc trưng là bởi vì phương pháp điều khiển cho mỗi động cơ đoạn này là không giống nhau.

Ví dụ, mạch điều khiển và tinh chỉnh của động cơ bước 1-1 cực rất có thể được thực hiện với mạch đơn giản dễ dàng dùng transistor hoặc IC transistor Darlington như ULN2003A. Tuy nhiên trong ngôi trường hợp bộ động cơ bước lưỡng cực, bọn họ cần áp dụng bộ điều khiển kiểu mong H như IC điều khiển động cơ L293D.

Hình hình ảnh dưới đây cho biết một bộ động cơ bước lưỡng cực (Bipolar Stepper Motor), một bộ động cơ bước 1-1 cực (Unipolar Stepper Motor) 5 dây, 6 dây với 8 dây.

*
Hình 4: Mạch tinh chỉnh và điều khiển động cơ cách dùng Arduino.

Xem thêm: Tế Bào Cà Chua Dưới Kính Hiển Vi, Tế Bào Ớt Dưới Kính Hiển Vi

Hoạt hễ của mạch

Động cơ bước được sử dụng trong bài hướng dẫn này là loại hộp động cơ bước lai nam châm hút từ vĩnh cửu (Permanent Magnet Hybrid). Vị là hộp động cơ lưỡng cực nên chỉ có 4 dây tương xứng với những đầu cuối của hai cuộn dây. 4 dây này được kết nối với các chân ngõ ra của IC tinh chỉnh động cơ L293D.

Để tinh chỉnh động cơ bước, chúng ta sẽ áp dụng một chuyên môn được điện thoại tư vấn là “điều khiển cách đủ – Full Step”. Động cơ được sử dụng trong bài hướng dẫn này có 200 bước đếm. Với hộp động cơ bước kích thích hợp một pha, có nghĩa là tại 1 thời điểm chỉ cấp điện cho 1 pha, chúng ta có thể đạt được vòng xoay 200 bước thông thường với mức tiêu thụ điện năng không nhiều nhất.

Động cơ cách được kích ham mê hai pha là một trong kỹ thuật khác trong số ấy hai pha được cung cấp điện trên cùng một thời điểm. Với kỹ thuật này, số bước không đổi khác so với kích thích hợp một pha tuy vậy mô-men xoắn và vận tốc được tạo thêm đáng kể. điểm yếu kém của nghệ thuật này là nó yên cầu năng lượng vội vàng đôi.

Hình hình ảnh sau đây mang đến thấy buổi giao lưu của động cơ cách với 4 bước/1 vòng quay, sử dụng phương thức kích say mê một pha cùng hai pha.

*

Hình 6: Điều khiển nửa bước.

Như đang đề cập trước đó, góc cách của bộ động cơ được sử dụng trong bài bác hướng dẫn này là 1,80, có nghĩa là động cơ bắt buộc 200 cách để quay hết một vòng. Để tăng độ phân giải (gấp đôi độ phân giải), họ sẽ sử dụng phương pháp điều khiển nửa cách và vị vậy bắt buộc 400 cách để quay được một vòng.

Chúng ta sẽ áp dụng serial monitor nhằm kiểm soát vận động quay của đụng cơ. Trong chương trình, cam kết hiệu ‘+’ được áp dụng để cho biết thêm động cơ bước quay theo chiều kim đồng hồ, cùng ngược lại, khi hộp động cơ quay ngược hướng kim đồng hồ, vết ‘-’ sẽ tiến hành sử dụng.

Sau khi lựa chọn hướng, bạn có thể nhập trực tiếp số bước ngẫu nhiên từ 1 mang đến 400.

Chương trình

const int out1 = 4;

const int out2 = 3;

const int out3 = 5;

const int out4 = 2;

int i=0;

int negative=0;

int positive=0;

char temp_print=0;

char temp_print1=0;

int led=13;

void setup()

pinMode(out1, OUTPUT);

pinMode(out2, OUTPUT);

pinMode(out3, OUTPUT);

pinMode(out4, OUTPUT);

pinMode(led,OUTPUT);

digitalWrite(out1,LOW);

digitalWrite(out2,LOW);

digitalWrite(out3,LOW);

digitalWrite(out4,LOW);

digitalWrite(led,LOW);

Serial.begin(9600);

 

void loop()

if(temp_print1==1)

Serial.println(“.”);

delay(1000);

Serial.println(“.”);

delay(1000);

Serial.println(“.”);

delay(1000);

Serial.println(“.”);

delay(1000);

Serial.println(“.”);

delay(1000);

Serial.println(“.”);

delay(1000);

Serial.println(“.”);

Serial.println(“Hoan tat hieu chinh……”);

Serial.println(“Dong co buoc san sang”);

temp_print1=temp_print1+1;

if(temp_print==0)

Serial.println(“Nhap HUONG va BUOC de hieu chinh”);

temp_print=temp_print+1;

temp_print1=temp_print1+1;

abc:

Serial.print(“Chieu quay = “);

while(Serial.available()==false);

char temp = Serial.read();

if(temp==’+’)

Serial.println(temp);

Serial.print(“So buoc = “);

while(Serial.available()==false)

digitalWrite(led,HIGH);

delay(50);

digitalWrite(led,LOW);

delay(50);

int val = Serial.parseInt();

Serial.println(val);

if(val>=0 && val0;a–)

if(negative==1)

if(i==7)

i=0;

else

a=a+1;

i=i+1;

negative=0;

positive=1;

if(i==0) digitalWrite(out1,HIGH);digitalWrite(out2,LOW);digitalWrite(out3,LOW);digitalWrite(out4,LOW);delay(60);

else if(i==1) digitalWrite(out1,HIGH);digitalWrite(out2,HIGH);digitalWrite(out3,LOW);digitalWrite(out4,LOW);delay(60);

else if(i==2) digitalWrite(out1,LOW);digitalWrite(out2,HIGH);digitalWrite(out3,LOW);digitalWrite(out4,LOW);delay(60);

else if(i==3) digitalWrite(out1,LOW);digitalWrite(out2,HIGH);digitalWrite(out3,HIGH);digitalWrite(out4,LOW);delay(60);

else if(i==4) digitalWrite(out1,LOW);digitalWrite(out2,LOW);digitalWrite(out3,HIGH);digitalWrite(out4,LOW);delay(60);

else if(i==5) digitalWrite(out1,LOW);digitalWrite(out2,LOW);digitalWrite(out3,HIGH);digitalWrite(out4,HIGH);delay(60);

else if(i==6) digitalWrite(out1,LOW);digitalWrite(out2,LOW);digitalWrite(out3,LOW);digitalWrite(out4,HIGH);delay(60);

else if(i==7) digitalWrite(out1,HIGH);digitalWrite(out2,LOW);digitalWrite(out3,LOW);digitalWrite(out4,HIGH);delay(60);

if(i==7)

i=0;continue;

i++;

else

goto abc;

digitalWrite(out1,LOW);digitalWrite(out2,LOW);digitalWrite(out3,LOW);digitalWrite(out4,LOW);delay(50); 

val=0;

else if(temp==’-‘)

Serial.println(temp);

Serial.print(“So buoc = “);

while(Serial.available()==false)

digitalWrite(led,HIGH);

delay(50);

digitalWrite(led,LOW);

delay(50);

int val = Serial.parseInt();

Serial.println(val);

if(val>=0 && val0;a–)

 

if(positive==1)

i=i-1;

positive=0;

a=a+1;

negative=1;

if(i==0) digitalWrite(out1,HIGH);digitalWrite(out2,LOW);digitalWrite(out3,LOW);digitalWrite(out4,LOW);delay(60);

else if(i==1) digitalWrite(out1,HIGH);digitalWrite(out2,HIGH);digitalWrite(out3,LOW);digitalWrite(out4,LOW);delay(60);

else if(i==2) digitalWrite(out1,LOW);digitalWrite(out2,HIGH);digitalWrite(out3,LOW);digitalWrite(out4,LOW);delay(60);

else if(i==3) digitalWrite(out1,LOW);digitalWrite(out2,HIGH);digitalWrite(out3,HIGH);digitalWrite(out4,LOW);delay(60);

else if(i==4) digitalWrite(out1,LOW);digitalWrite(out2,LOW);digitalWrite(out3,HIGH);digitalWrite(out4,LOW);delay(60);

else if(i==5) digitalWrite(out1,LOW);digitalWrite(out2,LOW);digitalWrite(out3,HIGH);digitalWrite(out4,HIGH);delay(60);

else if(i==6) digitalWrite(out1,LOW);digitalWrite(out2,LOW);digitalWrite(out3,LOW);digitalWrite(out4,HIGH);delay(60);

else if(i==7) digitalWrite(out1,HIGH);digitalWrite(out2,LOW);digitalWrite(out3,LOW);digitalWrite(out4,HIGH);delay(60);

if(i==0)

i=7;continue;

i–;

else

goto abc;

digitalWrite(out1,LOW);digitalWrite(out2,LOW);digitalWrite(out3,LOW);digitalWrite(out4,LOW);delay(50); 

val=0;

}

else

goto abc;

}

Ứng dụng

Bài viết mang đến thấy hoạt động vui chơi của động cơ bước và điều khiển và tinh chỉnh động cơ bước bởi Arduino. Động cơ cách thường được thực hiện trong robot, đồ vật CNC, auto hóa công nghiệp, những thiết bị bé dại như trang bị in, v.v.Do độ đúng mực cao và mô-men xoắn lớn, động cơ bước được sử dụng ở đa số nơi cần điều khiển và tinh chỉnh chính xác.