Hướng dẫn Điều khiển động cơ bước với IC driver a4988

vandepnguyen

Học sinh phổ thông
#11
bạn ơi. cho m ình hỏi tý.
mình có motor bước 6 dây, mính xác nhận được 2 dây chung của 2 pha rồi. nhưng đấu vào mạch A4988 thế nào vậy bạn. mình không biết dây chung đó vào đâu.
với lại mình dùng PLC s7-200 để kích tính hiệu cho ngõ STEP ĐƯỢC KHÔNG VẬY BẠN. TÍN HIỆU Ở ĐÂY LÀ ON OFF ĐƯỢC KHÔNG VẬY BẠN.
NHỜ BẠN GIÚP ĐỠ.
THANKS BẠN NHIỀU. BẠN CHO MÌNH SỐ ĐIỆN THOẠI MÌNH GỌI BẠN ĐƯỢC KHÔNG VẬY.
 

DoanhDoanh

Học sinh trung cấp
#12
trên kìa có sơ đồ nối mà. Bạn dùng 4 dây để điều khiển thôi, nối hai đầu của hai cuộn dây vào chân 1A, 1B, 2A, 2B.
Còn mình nghĩ dùng PLC vẫn có thể điều khiển được. Dùng timer tạo xung ra để cấp cho chân step.
Bạn làm thử đi.
Nếu đã có động cơ và PLC thì sao ko làm luôn?
 

thanhquy1988

Học sinh phổ thông
#13
chào các bạn! các bạn co ai hiểu về động cơ bước trên các máy xúc công trình không có thê giải thich nguyên lí hoạt động của nó cho mingf hiểu được không ah.nó dùng để kéo ga cho động cơ ấy.được điều khiển bằng hộp controller,xin cam ơn ah
 

stonelion

Học sinh phổ thông
#14
làm sao để biết được điện áp ra là bao nhiêu khi chỉnh biến trở hả bác
 

tjonjumy

Học sinh phổ thông
#15
trên kìa có sơ đồ nối mà. Bạn dùng 4 dây để điều khiển thôi, nối hai đầu của hai cuộn dây vào chân 1A, 1B, 2A, 2B.
Còn mình nghĩ dùng PLC vẫn có thể điều khiển được. Dùng timer tạo xung ra để cấp cho chân step.
Bạn làm thử đi.
Nếu đã có động cơ và PLC thì sao ko làm luôn?
topic này đây bác,ngõ ra plc là 24v, còn tín hiệu điều khiển của modul là 5v, vậy mình phải mắc thêm trở ah. bấc có làm thử modul a4988 này với PLC chưa.
 

Sad Prince

Học sinh phổ thông
#16
Mình vừa làm cái mạch điều khiển động cơ bước với IC driver a4988 nên muốn chia sẻ với mọi người
  1. Các loại động cơ bước thông dụng và Các cách điều khiển động cơ bước.
  • Động cơ bước có nhiều loại như động cơ biến trở từ, động cơ đơn cực, động cơ lưỡng cực.
  • Về step thì có loại là 0.36 độ/ 1step là nhỏ nhất mình từng biết, loại 0.72/1step là loại nhỏ nhất mình từng có. Và thông dụng nhất là loại 1.8 độ/ 1 step. Tức là 200 step sẽ được 1 vòng
  • Trên thị trường chúng ta hay gặp nhất là động cơ đơn cực và lưỡng cực. Khi đi mua thì hay gặp động cơ 4 dây, 5 dây, 6 dây, 8 dây. Trong đó 4 dây là 6 dây là gặp thường xuyên nhất. Dưới đây là sơ đồ dây của hãng Oriental
  • Động cơ bước có nhiều cách điều khiển. Có thể điều khiển các dây trực tiếp qua 4 cổng qua MCU thông qua driver đệm công suất. cách này hơi phức tạp một chút, cần phải hiểu rõ bên trong động cơ và thường chỉ điều khiển được full bước
  • Cách thông dụng nhất là dùng các IC chuyên dụng điều khiển động cơ bước. Các IC hay gặp nhất là TB6560, TB6600, L297, A4988, DRV8825, MA860H... Việc lựa chọn dùng loại driver nào phụ thuộc vào loại động cơ và công suất động cơ định điều khiển. Ví dụ như A4988, DRV8825 dùng để điều khiển các loại động cơ nhỏ có công suất bé ví dụ như trong máy photo hoặc máy in 3d, TB6560 hoặc TB6600 thì lại dùng để điều khiển các loại động cơ lớn hơn một chút ví dụ như trong các loại máy cnc mini. Các loại động cơ to thì người ta hay dùng MA860H hoặc các driver khủng hơn nữa
  • Nhìn chung cách giao tiếp với các module Driver này tương đối giống nhau. Chúng đều có 3 port cơ bản là DIR ( để điểu khiển hướng quay động cơ), EN ( để điều khiển bật tắt động cơ), CLK ( xuất xung để dịch chuyển từng step). Một số loại module như tb6560 tb6600 hoặc MA860H thì mỗi port đều có 2 pin. Ví dụ như EN+ EN- CW+ CW- CLK+ CLK-. vì thế người dùng có thể tùy chọn điều khiển theo mức 0 hoặc mức 1. Mình thường kéo 3 chân xuống thấp và điều khiển bằng 3 chân còn lại
  • Điều quan trọng nhất là các module này là chúng có thể điều khiển được vi bước như 1/16 step, 1/8 step, 1/2 step và full step. nếu full step thì bạn cần 200 step để quay hết 1 vòng đối với loại 1.8 độ 1step. Còn nếu dùng chế độ vi bước 1/16 step thì một xung động cơ chỉ dịch chuyển 1,8/16 độ. Tức là bạn phải cần 200*16=3200 xung để quay hết một vòng. điều này làm tăng độ phân giải và tăng độ chính xác cho step
  • Cách kết nối: với động cơ 4 dây thì bạn tìm các dây xem dây nào là kênh A- A+ B- B+ và nối vào driver. với động cơ 5 dây 6 dây hoặc 8 dây thì bạn cắt bỏ hết những dây chung đi và chỉ sử dụng 4 dây ở 2 đầu cuộn dây để điều khiển
2. Giới thiệu module Driver A4988
  • Mình biết đến IC này qua việc tìm hiểu máy in 3d. Khá ngạc nhiên là hầu hết các máy in 3d đều dùng con IC này điều khiển vì máy in 3d tải trọng nhỏ
  • Đến khi được cầm con này trên tay thì lại khá ngạc nhiên nữa vì nó quá nhỏ, nhỏ hơn 10 lần so với tb6560 hoặc 20 lần so với MA860H :D Nó chỉ to hơn móng tay một chút xíu :)
  • Tính năng:
Điều khiển đơn giản
Điều khiển được động cơ hoạt động với điện áp lên tới 35V dòng lên tới 2A
Có 5 chế độ: full bước, 1/2 bước, 1/4 bước, 1/8 bước, 1/16 bước
Điểu chỉnh dòng ra bằng triết áp (bé xíu) nằm bên trên Current Limit = VREF × 2.5
Tự động Shutdown thì quá nóng
....​
  • Sơ đồ kết nối
  • Lựa chọn chế độ full hay 1/2 hay 1/4.. sẽ được thông qua 3 pin MS1 MS2 MS3. Mình thường nối thẳng 3 pin này với công tắc bit 3p để dễ thiết lập từ trên phần cứng. Lưu ý là nếu thả nổi 3 pin này tức là mode full step.
  • Bật tắt động cơ thì thông qua pin ENABLE, mức LOW là bật module, mức HIGH là tắt module
  • Điều khiển chiều quay của động cơ thông qua pin DIR
  • Điều khiển bước của động cơ thông qua pin STEP, mỗi xung là tương ứng với 1 bước ( hoặc vi bước)
  • Hai chân Sleep với Reset nối với nhau luôn . (Tại sao thì xem datasheet đính kèm)
3. Điều khiển động cơ bước qua A4988 bằng AVR
Sơ đồ nguyên lý: Mạch của mình dùng at8 có thêm lcd và keypad
Code: ở đây mình viết một file .h, bạn có thể add vào project của mình
Mã:
/*
/*
* StepMotor.h
*
* Created: 17/11/2014 2:57:30 SA
*  Author: ThanhTung
*/


#ifndef STEPMOTOR_H_
#define STEPMOTOR_H_
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#define EN PC0
#define STEP PC1
#define DIR PB5
#define ENSTEP_PORT PORTC
#define ENSTEP_DDR  DDRC
#define DIR_PORT PORTB
#define DIR_DDR DDRB
void Init_motor()
{
    ENSTEP_DDR |= ((1<<EN)|(1<<STEP));
    DIR_DDR |= (1<<DIR);
    ENSTEP_PORT |=(1<<EN); //stop motor
}
/*
angle: goc quay
dir: 1 hoac 0
mode: 1 hoac 2 hoac 4 hoac 8 hoac 16
*/
void Motor(uint16_t angle, uint8_t dir, uint8_t mode)
{
    uint16_t step;
    uint16_t time;
    time = (int) 16/mode;
    step = (int) (angle*mode)/1.8;
    /*start*/
    ENSTEP_PORT &=~(1<<EN);  //EN =0
    /*direction*/
    if (dir==1)
    {
        DIR_PORT |=(1<<DIR);
    }
    else if(dir==0)
    {
        DIR_PORT &= ~(1<<DIR);
    }
    /*pulse Step*/
    for (uint16_t i = 0; i<step;i++)
    {
        //TODO:: Please write your application code
        ENSTEP_PORT|=(1<<STEP);
        for (uint16_t j = 0;j<time;j++) {_delay_us(100);}
        ENSTEP_PORT &= ~ (1<<STEP);
        for (uint16_t j = 0;j<time;j++) {_delay_us(100);}
    }
    /*stop*/
    ENSTEP_DDR |=(1<<EN);
    ENSTEP_PORT |= (1<<EN);
  
}





#endif /* STEPMOTOR_H_ */
Có thể dùng file này cho module TB6560.
Kết nối như sau. EN+ CLK- CW- nối xuống đất. Điều khiển bằng 3 pin EN- CLK+ CW+.
Thay đổi một chút ở code là khi bật module thì chân EN- phải là HIGH và ngược lại với khi tắt module

PCB
Mạch Thật:

Tài liệu đính kèm:
  1. Tài liệu về động cơ bước
  2. Datasheet của A4988
  3. File altium của mạch trên
  4. file EAGLE của module a4988

P/s: Mua động cơ ở đâu?
Xin trả lời các bạn là mua ở chợ trời. Khá là rẻ. khoảng 40k là mua đc con cỡ NEMA14 NEMA17 rồi.
hôm trước mình còn hên mua được cái step có hộp giảm tốc với giá 100k trong khi đó giá used của amazon là 120$ :D
Em đang làm đồ án môn học về điều khiển động cơ bước quay thuận, nghịch, nhanh, chậm. Thầy không hướng dẫn mà phải về làm mạch, em không biết bắt đầu từ đâu hết, em có mua 1 con động cơ bước 6 dây, mà không biết có lắp vào mạch của anh được ko? Tks anh
 

DoanhDoanh

Học sinh trung cấp
#17
Mình chưa làm với PLC bạn.
topic này đây bác,ngõ ra plc là 24v, còn tín hiệu điều khiển của modul là 5v, vậy mình phải mắc thêm trở ah. bấc có làm thử modul a4988 này với PLC chưa.
Mình chưa làm về PLC bạn à. Ngõ ra PLC là 24 V luôn à, khi tạo xung thì biên độ điện áp của nó cũng 24 V luôn à bạn? ( mình không biết về PLC lắm) vậy không thể nối trực tiếp với driver trên được rồi. Bạn có thể tự thiết kế mạch cầu H dùng FET để điều khiển cũng được. Hoặc không cũng có thể nối ngõ ra của PLC qua transistor để đóng mở opto (loại transistor).
Mình thấy cũng có nhiều bài viết liên quan PLC với động cơ bước, tại search rồi nghiên cứu thử.
 
Sửa lần cuối:

DoanhDoanh

Học sinh trung cấp
#18
Đây mình có sơ đồ mạch điều khiển động cơ bước. Ở đây với ngõ ra PLC là 24v bạn cần chọn các giá trị điện trở khác cho thíc hợp. ( Dòng kích dẫn opto khoảng 30mA, bạn xem lại datasheet để chọn giá trị trở cho đúng).
 

Đính kèm

tjonjumy

Học sinh phổ thông
#19
Đây mình có sơ đồ mạch điều khiển động cơ bước. Ở đây với ngõ ra PLC là 24v bạn cần chọn các giá trị điện trở khác cho thíc hợp. ( Dòng kích dẫn opto khoảng 30mA, bạn xem lại datasheet để chọn giá trị trở cho đúng).
ok. cảm ơn bạn nhiều nha.
 

Quảng cáo Google