Điều khiển động cơ bước bằng mạch cầu H

I. Giới thiệu

Hôm nay, mình sẽ hướng dẫn các bạn điều khiển động cơ bước cực kỳ đơn giản với mạch cầu H thông thường, sử dụng thư viện chuẩn của Arduino. Thay vì sử dụng những Driver điều khiển động cơ bước như những bài trước!!! 

II. Chuẩn bị

III. Động cơ bước là gì?

Trước tiên, để hiểu rõ hơn về động cơ bước. Các bạn tham khảo lại bài của bạn Tôi Yêu Arduino trong bài Hướng dẫn điều khiển động cơ bước với thư viện Accel Stepper và driver điều khiển động cơ bước A4988 hoặc DRV8825Nôm na, động cơ bước là một loại động cơ mà ở đó bạn sẽ có thể quy định chính xác số góc quay và động cơ bước sẽ phải quay. Không giống như Servo, động cơ bước có thể quay bao nhiêu độ tùy ý và mỗi lần quay nó sẽ quay được 1 step, 1 step ở đây là bao nhiêu còn phụ thuộc vào động cơ bước của bạn. Ví dụ, động cơ bước của bạn có 72 step thì nó sẽ cần quay 72 step để hoàn thành một vòng quay. Số step này là hằng số, nhưng bạn có thể dùng công nghệ micro step để "cải thiện" số vòng quay động cơ bước của bạn. 

IV. Tiến hành:

a. Nối dây

 

Arduino UNO          L298          Động cơ bước
8 IN1  
9 IN2  
10 IN3  
11 IN4  
  OUT1 A
  OUT2 A-
  OUT3 B
  OUT4 B-

Như sơ đồ sau:

Lưu ý: Nếu động cơ bước loại 4 dây thì nối đủ dây là ok r. Nhưng nếu gặp loại 6 dây...cứ nối như sơ đồ, thừa dây thì kệ nhé (2 dây còn lại là dây Common - dùng cho công nghệ cũ, không cần quan tâm)

b. Code

Để điều khiển được động cơ bước thì các bạn dùng thư viện Stepper.h nhé. À mà, thư viện này là thư viện chuẩn của Arduino nên khi cài Arduino IDE nó có sẵn rồi á...không cần tải đâu!! hihe

 

#include <Stepper.h>

//Khai báo các chân để điều khiển Step...tạo đối tượng myStepper
Stepper myStepper(stepsPerRevolution, 8,9,10,11);            

void setup() {
  // Tốc độ 100rpm
  myStepper.setSpeed(100);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
   Serial.println("Quay theo chiều kim đồng hồ");
  myStepper.step(250);//Max Step của động cơ bước trong đầu DVD/CD là 250..hihe
  delay(500);
  
   // step one revolution in the other direction:
  Serial.println("Quay ngược chiều kim đồng hồ");
  myStepper.step(-250);
  delay(500); 
}

V. Lời kết

Chúc các bạn thành công, nếu các bạn có dự án hay hãy share lên cộng đồng để mọi người học hỏi và góp ý nhé. Thấy bài này hay thì cho mình  một Rate node động viên để tháng 8 có lúa kỳ 1 nha haha. laugh

 

Youtube: 
lên
53 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Chạy đa nhiệm trên Arduino với FreeRTOS

Khi chúng ta làm 1 project lớn, bạn sẽ phải viết chương trình thực hiện nhiều chức năng. Và khi đó, bạn sẽ gặp nhiều vấn đề phức tạp : làm như thế nào để chương trình hoạt động ổn định khi kết hợp nhổi nhét nhiều đoạn code đơn giản thành 1 khối thống nhất?. Ở bài viết này, chúng ta cùng đi giải quyết vấn đề trên. Trên Arduino.vn cũng đã có nhiều bài viết về xử lý bất đồng bộ rất hay. Các bạn có thể xem tại đây. Vậy mục đích viết bài của mình hôm nay là gì? Hôm nay mình sẽ giới thiệu một thư viện đa nhiệm mới khác, đó chính là FreeRTOS

lên
14 thành viên đã đánh giá bài viết này hữu ích.

Kết nối tay game PlayStation với Arduino

Bài viết trước mình đã giới thiệu với các bạn về Joystick, đó chính là phím di chuyển trên tay PlayStation. Nhưng các bạn hãy quan sát trong các kỳ thi robocon, hầu hết các thí sinh đều dùng tay PlayStation để điều khiển robot. Vậy làm sao để sử dụng tay PlayStation ??

lên
22 thành viên đã đánh giá bài viết này hữu ích.