# Thảo luận chung về máy CNC > Máy in CNC >  Xin các bác chỉ giáo - Bệnh khó hiểu khi kết nối Arduino và TB6560

## ktshung

Mấy hôm nay em gặp một trường hợp rất kỳ quái khi làm con máy in 3D của em. Em dùng board Arduino kết nối với 3 con TB6560 cho ba trục XYZ (chả là em âm mưu làm máy to nên muôn dùng driver lớn này) xong xuôi cho máy chạy, sản phẩm in ra cứ bị đổ nghiêng về 2 phía cả X và Y kiểu như tháp nghiêng Pisa. Mới đầu em nghĩ là mất bước nên đã thử các cách sau:
- Thay luôn mô tơ và driver mới -> Vẫn bị như cũ
- Thay truyền động dây đai bằng visme -> Vẫn bị như cũ
- Thay luôn bo mạch Arduino và RAM 1.4 -> Vũ như cẩn
- Thay cáp kết nối giữa Arduino và TB6560 - Vẫn bị như cũ
- Set lai vi bước từ 1, 1/2, 1/8, 1/16, set dòng 1,5 - 3A  -> Vẫn bị
Cuối cùng hết cách em mới thay con A4988 bé tý teo vào cho trục X thì trục X lai chạy ngon lành. Vây nên em đoán vấn đề tín hiểu kết nối giữa Arduino và TB6560 có vấn đề. Xin hỏi các bác đã có ai gặp trường hợp này chưa ạ?

----------


## ktshung

Xin các bác cho em ít cao kiến với ạ, em muốn khùng với lỗi này thật

----------


## cuibaptiensinh

bác cho em hỏi bác đang xài nguồn nào vậy thử thay nguồn xem nào.

----------

ktshung

----------


## hqkcnc

xưa em cũng bị vụ như thế này, đành hỏi cao kiến một thày giáo về VDK, ông ta trả lời ngắn gọn, do xung của con chíp trên easy driver và TB6560 nó khác nhau, xong cũng chẳng nói gì thêm, thế là em bó tay đến bây giờ và cũng không dủ trình hiểu nổi, vậy chém bừa cái rồi ngồi hóng cao nhân khác

----------

ktshung

----------


## biết tuốt

mạch họ đã cố tình làm để cho các bác chỉ có thể dùng driver  A4988 , bác bình tĩnh đi  :Roll Eyes (Sarcastic):    em nhớ không nhầm có ai đó định làm con máy in khủng trên 4r lâu rồi mà chắc bị vướng chỗ này nên  thôi

----------

ktshung

----------


## nhatson

mach tb6560 có opto ko ah?

----------

ktshung

----------


## ducduy9104

Chắc đấu dây sai, thấy dân chơi chạy ầm ầm mà  :Big Grin:

----------

ktshung

----------


## Mạch Việt

Bác chủ thớt thử nói cách kết nối giữa board và driver xem, em thì thấy với mấy cái modul A4989 thì nối thẳng ko cách ly, còn cái modul tb6560 của bác thì có cách ly thì bác nối nó theo điều khiển âm hay dk dương.

----------

ktshung

----------


## hqkcnc

Xin  lỗi ông thaivh, ông spam thì nó cũng có lý có tình chút, chủ thớt thì đang phát khùng về vấn đề kỹ thuật, ông copy và paste như vậy mà cũng được à.

----------

ktshung

----------


## ktshung

> Bác chủ thớt thử nói cách kết nối giữa board và driver xem, em thì thấy với mấy cái modul A4989 thì nối thẳng ko cách ly, còn cái modul tb6560 của bác thì có cách ly thì bác nối nó theo điều khiển âm hay dk dương.


em đấu chung dây âm và điều khiển dây dương bác ạ. En-, Step-, Dir- gộp lại đấu vào chân GND. Các chân + đâu tương ứng các chân trên Ramp1.4

----------


## ktshung

> bác cho em hỏi bác đang xài nguồn nào vậy thử thay nguồn xem nào.


em cũng đã thử thay nguồn luôn rồi ạ, em cám ơn bác

----------


## ktshung

> mach tb6560 có opto ko ah?


có bác ạ, em thấy nó các tín hiệu nối vào 1 con đen đen 4 chân, hehee

----------


## ktshung

> Chắc đấu dây sai, thấy dân chơi chạy ầm ầm mà


Em đang muốn biết mình sai chổ nào đây bác, bác chi cho em một dân chơi nào đang chạy ầm ầm thể loại này được không ạ. Bời nếu chay mấy con A4988 thì không kể bác nhé vì chỉ ráp là chạy à

----------


## ktshung

> Xin  lỗi ông thaivh, ông spam thì nó cũng có lý có tình chút, chủ thớt thì đang phát khùng về vấn đề kỹ thuật, ông copy và paste như vậy mà cũng được à.


Chắc bác ấy làm thế để bài em nổi lên cho mọi người chú ý đấy ạ. Em cám ơn mọi người

----------


## hqkcnc

chủ thớt thử đấu lại xem, pul+ và Dir+, theo các cổng tương ứng ở mạch arduino, Pul-, và Dir-, đấu với GND, bỏ các chân EN ra, test lại xem có được ko

----------


## nhatson

> có bác ạ, em thấy nó các tín hiệu nối vào 1 con đen đen 4 chân, hehee


lỗi có thể là do opto tốc độ chậm, check cái xung step dir của controller nữa sẽ chắc chắn

----------

Bongmayquathem

----------


## trucnguyen

> xưa em cũng bị vụ như thế này, đành hỏi cao kiến một thày giáo về VDK, ông ta trả lời ngắn gọn, do xung của con chíp trên easy driver và TB6560 nó khác nhau, xong cũng chẳng nói gì thêm, thế là em bó tay đến bây giờ và cũng không dủ trình hiểu nổi, vậy chém bừa cái rồi ngồi hóng cao nhân khác


Thầy mình hồi xưa vẫn hay trả lời kiểu này  :Wink:

----------


## Bongmayquathem

> lỗi có thể là do opto tốc độ chậm, check cái xung step dir của controller nữa sẽ chắc chắn


Nguyên nhân như bác Nhật Sơn nói là có khả năng cao đấy ạ. Hoặc là con oppto trên tb6560 của bác già tuổi rồi, hoặc là hàng đểu nên tốc độ chậm. Con A4988 nó ko có cách ly nên nhận xung trực tiếp. Bác thử mua mấy con oppto cao tốc thay vào tb xem. Hoặc nếu biết dò mạch thì vứt luôn mấy cái oppto đi đấu tín hiệu trực tiếp vào IC TB6560 luôn ạ

----------


## ktshung

> lỗi có thể là do opto tốc độ chậm, check cái xung step dir của controller nữa sẽ chắc chắn


cám ơn bác, em còn một vấn đề là cái firmware Mảlin điều khiển xung của Arduino chỉ cho ra mức thấp, bác có biết dùng nó chỉnh thành mức cao ntn không ạ, em cám ơn

----------


## ducduy9104

> Em đang muốn biết mình sai chổ nào đây bác, bác chi cho em một dân chơi nào đang chạy ầm ầm thể loại này được không ạ. Bời nếu chay mấy con A4988 thì không kể bác nhé vì chỉ ráp là chạy à


Bác xem chú Tây này cũng dùng TB6560 với arduino mà có sao đâu, board 6560 cũng là loại opto.
http://andre.team9.99.org.nz/2012/10...vers-with.html

----------


## katum573

> cám ơn bác, em còn một vấn đề là cái firmware Mảlin điều khiển xung của Arduino chỉ cho ra mức thấp, bác có biết dùng nó chỉnh thành mức cao ntn không ạ, em cám ơn


Theo mình bác nhason nói đúng đấy, không riêng gì firmware Marlin mà GRBL và TinyG cũng hay bị lỗi Pul/Dir với driver dùng opto.
Bác thử config lại firmware và load lại firmware cho arduino thử xem.
để config firmware bác mở file Configuration_adv.h tìm tới dòng nưu sau

// The minimum pulse width (in µs) for stepping a stepper.
// Set this if you find stepping unreliable, or if using a very fast CPU.
#define MINIMUM_STEPPER_PULSE 0 // (µs) The smallest stepper pulse allowed

sửa #define MINIMUM_STEPPER_PULSE 0  số 0 thành từ 15 đến 35 #define MINIMUM_STEPPER_PULSE 15 // (µs) The smallest stepper pulse allowed

còn đổi mức thấp hoặc cao trên chân điều khiển xung thì tìm dòng sau để sửa.

// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false

sửa false thành true ở trục nào bác muốn đổi.

Chúc bác thành công.

----------

hung1706, ktshung, thienha999, VanToan234

----------


## ducduy9104

// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.

Khả năng cao nguyên nhân nó nằm ở chỗ này, pololu nó mức cao, TB6560 thường hay mức thấp.

----------

haignition, ktshung

----------


## ktshung

Cám ơn bác, em sẽ thử ạ

----------


## ktshung

tính hình là sau khi thừ vẫn ko có gì thay đổi ạ, bó tay thật

----------


## nnk

check lại nhiễu tín hiệu thử coi, mình cũng từng mần với bo TB6600, câu dây xong bật nguồn là nó tự kịch kịch ko yên, tiếp địa cho nó thì nó bớt kịch kịch nhưng vẫn bị nên hiện giờ xếp xó luôn

----------


## mylove299

Em cũng bị y như bác chủ thớt đang đau đầu em dùng tb6600

----------


## Tuanlm

> em đấu chung dây âm và điều khiển dây dương bác ạ. En-, Step-, Dir- gộp lại đấu vào chân GND. Các chân + đâu tương ứng các chân trên Ramp1.4


Bác sai chỗ này rồi nè, không cần đổi code, bác đổi dây là đc. E+,S+,D+ =>vcc. các chân còn lại vào board.

vì đơn giản, lỗi này do tín chiệu Dir không ổn định. Nguyên nhân, do board có khả năng phát dòng không ấn tượng lắm, còn khả năng thu dong có thể đạt 100mA ( em nhớ mang máng)

làm máy song mã cũng hay gặp trường hợp này.
Bác ktshung chụp vài hình ảnh và sơ đồ nối dây lên, anh em dễ chém hơn.

----------


## CKD

1. IO của arduino có 40mA max thôi. Và total cho tất cả các IO không quá 200mA. Và điện áp ra trên các IO thường cũng dao động trong khoảng 1-4V à (phụ thuộc vào dòng), không phải là 0-5V như nguồn cấp đâu.
2. Hầu hết các board mở rộng cho 3D như Ramp đều không có buffer. Do đó việc giới hạn dòng cho các IO là phải lưu ý. Chư nói là socket qua 2-3 lớp thì càng không ổn định hơn nữa.

Vậy nên việc đấu nối trực tiếp các IO với thiết bị bên ngoài có lắm rủi ro mà chắc mấy người để ý đến.
Với mấy cái trò này mình chỉ dùng mấy con driver input trực tiếp như DRV, vì dòng vào rất rất là nhỏ, vài mA thôi. Mấy cái driver rời có cách ly thì dòng làm việc phải duy trì cho các opto khoảng 10-15mA nó mới good được. Mấy cái độ chế dùng MCU thì thường mình dùng buffer đầu ra cho nó ổn định hơn.

Tình hình như bác mylove thì cũng là xui và may mắn thôi  :Big Grin:

----------

Gamo, mylove299, Tuanlm

----------


## maxx.side

Để thử lỗi do opto thì chạy tốc độ thấp nhất và chọn tỉ lệ xung 1/1 hoặc 1/2 thử, không thì thử độ chính xác từng trục bằng đồng hồ so xem có bị lệch không, nếu cả 2 không dc thì do phần mềm convert file .STL qua GCode, cái này thì mình đã bị vì xài phần mềm free  :Big Grin:

----------


## CKD

> Để thử lỗi do opto thì chạy tốc độ thấp nhất và chọn tỉ lệ xung 1/1 hoặc 1/2 thử, không thì thử độ chính xác từng trục bằng đồng hồ so xem có bị lệch không, nếu cả 2 không dc thì do phần mềm convert file .STL qua GCode, cái này thì mình đã bị vì xài phần mềm free


Vụ này có thể dòng cấp cho opto ko đủ. Chứ không phải do opto đáp ứng không kịp.

----------

maxx.side

----------


## mylove299

> 1. IO của arduino có 40mA max thôi. Và total cho tất cả các IO không quá 200mA. Và điện áp ra trên các IO thường cũng dao động trong khoảng 1-4V à (phụ thuộc vào dòng), không phải là 0-5V như nguồn cấp đâu.
> 2. Hầu hết các board mở rộng cho 3D như Ramp đều không có buffer. Do đó việc giới hạn dòng cho các IO là phải lưu ý. Chư nói là socket qua 2-3 lớp thì càng không ổn định hơn nữa.
> 
> Vậy nên việc đấu nối trực tiếp các IO với thiết bị bên ngoài có lắm rủi ro mà chắc mấy người để ý đến.
> Với mấy cái trò này mình chỉ dùng mấy con driver input trực tiếp như DRV, vì dòng vào rất rất là nhỏ, vài mA thôi. Mấy cái driver rời có cách ly thì dòng làm việc phải duy trì cho các opto khoảng 10-15mA nó mới good được. Mấy cái độ chế dùng MCU thì thường mình dùng buffer đầu ra cho nó ổn định hơn.
> 
> Tình hình như bác mylove thì cũng là xui và may mắn thôi


Em đã thay driver nhatson cho kết quả mỹ mãn. Kết luận driver tb của chị na ko chơi với ramp đc.

----------


## thucncvt

KHông biết bên in 3d có nhanh bằng cắt , khắc laser không , khách hàng của em chế máy laser ,chơi điều khiển bằng arduino , cho máy laser  ,chạy 2 con M42 ,moto step 57 dài 76 chạy phà phà

 Bài viết hình ảnh 2 máy đó mục KHÁCH HÀNG  trên web mới của em  (laservnn chấm com)

----------


## CKD

Chắc ok thôi, thiết kế phù hợp là chạy được.
Firmware thì nếu chạy chế độ x4 phát xung được tầm 40kHz, nếu chạy GRPL phổ thông thì chỉ tầm 10kHz. Từ đó tính ra vi bước phù hợp với nhu cầu mà chạy.
Về gia tốc thì arduino sợ gia tốc nhỏ, chứ gia tốc lớn thì không sợ đâu.
Vì giới hạn tốc độ này nên nếu làm máy laser chắc phải giảm độ phân giải xuống cho phù hợp.

Chịu chơi + mày mò chắc lấy con raspberry pi chạy chắc ok hơn nhiều.

Máy in thì tùy, tốc độ dao động trong khoảng dưới 300mm/s. Nếu laser thì cũng tầm này đổ lại thôi. Khắc thì còn chạy nhanh chứ cắt thì chạy chạm rì rì ấy mà.

----------

Gamo

----------


## CKD

> Em đã thay driver nhatson cho kết quả mỹ mãn. Kết luận driver tb của chị na ko chơi với ramp đc.


Thì mình mới nói là xui xong rồi hên. Vì thực chất vẫn chưa xác định được nguyên nhân.

Mình nghĩ có nguyên nhân có thể thế này. Opto bọn TB chất lượng kém, cần kích dòng lớn hơn nên lúc làm việc thiếu dòng. Bỏ sót tín hiệu.

----------

Gamo, mylove299, VanToan234

----------


## xuanhoa84

bác cài lại driver cho nó xem

----------

