1. Chú ý: Các bạn nên tham khảo Nội quy trước khi viết bài (click vào liên kết bên dưới).
    * Nội quy và Thông báo diễn đàn CNCProVN.com
    * Nếu bạn thấy hứng thú với bài viết. Hãy dùng chức năng Share to facebook để chia sẻ bài viết lên facebook.

          
Kết quả 1 đến 11 của 11

Chủ đề: Dùng Arduino điều khiển step driver vexta AKD514L

  1. #1
    Học việc
    Ngày tham gia
    Jul 2016
    Bài viết
    6
    Cám ơn
    1
    Được cám ơn 0 lần
           ở 0 bài viết

    Question Dùng Arduino điều khiển step driver vexta AKD514L

    tình hình là do em được giao làm máy khoan tự động nhưng trước giờ chưa chạm vào cnc lần nào nên nhiều cái mơ hồ quá,tìm tài liệu thì không thấy hoặc nói không rõ
    hiện giờ em đang được giao sử dụng driver AKD514L-c (hoặc AKD514H-C) và steper UPH569
    em đã kết nối steper vào driver rồi và đã điều khiển được nó bằng arduino bằng cách chân CW+ và CCW+ nối 5v arduino còn chân CW- và CCW- em dùng để điều khiển chiều động cơ
    câu 1: em đấu nối điều khiển như thế đúng chưa ạ,em cấp xung 0 vào CW thì nó quay chiều thuận,xung 0 vào CCW thì nó sẽ quay chiều ngược lại
    câu 2: tuy điều khiển được nhưng nó quay rất chậm,em muốn điều khiển nó quay nhanh hơn thì phải như thế nào(lập trình ra sao),động cơ step này thì 500 xung 1 vòng nhưng driver nó chỉnh sẳn trước khi e sử dụng là 5000xung 1 vòng,nếu em muốn chỉnh xung full step thì chỉnh lại như nào
    câu 3: sao động cơ và driver em nó nóng khi không chạy lắm,em phải chỉnh như nào,em đọc thì thấy chỉnh stop nhưng chỉnh như nào là đúng ạ
    câu 4: các thông số trên driver phải chỉnh như thế nào để phù hợp với step này bác các
    Click vào ảnh để xem ảnh lớn hơn. 

Name:	images.jpg 
Views:	273 
Size:	6.5 KB 
ID:	22800

    Click vào ảnh để xem ảnh lớn hơn. 

Name:	s-l300.jpg 
Views:	277 
Size:	15.6 KB 
ID:	22801

    em điều khiển nó bằng arduino uno R3
    mấy bác thông não giúp em với
    code em test nó đây ạ :

    #define CW 3
    #define CCW 4
    int i;
    int j;
    int timer;
    void setup() {
    Serial.begin(9600);
    digitalWrite(CW,HIGH);
    pinMode(CW,OUTPUT);
    digitalWrite(CCW,HIGH);
    pinMode(CCW,OUTPUT);

    }

    void loop() {
    j=5000;

    for(i=0;i<j;i++)
    { Serial.println(i);
    digitalWrite(CW,LOW);
    digitalWrite(CCW,HIGH);
    delayMicroseconds(1);
    digitalWrite(CW,HIGH);
    digitalWrite(CCW,HIGH);
    delayMicroseconds(1);
    }
    delay(2000);
    }

  2. #2
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,680
    Cám ơn
    1,733
    Được cám ơn 5,321 lần
           ở 2,595 bài viết
    Chắc bạn đã đọc qua nanual rồi, nếu chưa thì đọc qua cái này.

    http://www.et-guenther.de/PDF/5/eng/RK-Series.pdf

    câu 1: bạn đã làm nó chạy được thì phần đấu nối Ok rồi còn gì?
    câu 2: bạn xem và chỉnh DATA1/DATA2, mức 0 (500ppr), mức 1 (1000ppr) v.v...
    câu 3: có thử bật chức năng OFF/E.S -> On.
    câu 4: chỉnh RUN/STOP là chỉnh dòng lúc chạy và lúc dừng. Từ nhỏ tới lớn tương đương 0-F.

    Arduino mà chạy với thư viện thì hơi bị chậm. Cụ thể chậm đến mức nào thì... phải thực tế mới biết được.
    Theo code thì tần số phát ra chỉ khoảng 200Hz
    DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
    17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM

  3. Thành viên đã cám ơn CKD cho bài viết hữu ích này:


  4. #3
    Học việc
    Ngày tham gia
    Jul 2016
    Bài viết
    6
    Cám ơn
    1
    Được cám ơn 0 lần
           ở 0 bài viết
    đúng thật là khoảng chậm e rất ức chế,em đã băm rất nhanh nhưng vẫn không nhanh nổi,driver và step đó dùng với mach3 thì ok,nhưng khổ là bị yêu cầu làm với arduino
    trục x chạy tới lui,và thêm 1 step điều khiển đĩa tròn xoay để spindle hạ khoan lổ
    à lúc chiều này e có chỉnh stop về 0 thì có hiện tượng khựng sau mỗi 100 step

  5. #4
    Thợ cả
    Ngày tham gia
    Feb 2014
    Bài viết
    2,370
    Cám ơn
    669
    Được cám ơn 1,423 lần
           ở 846 bài viết
    Bác không viết các hàm accel và deaccel mà xuất một phát tần số cao ngay thì motor dễ mất bước lắm.

    Chưa kể một chip thực hiện nhiều tác vụ, interupt búa xua nữa thì phát xung nhiều jitter, motor chạy không mượt và nguy cơ mất bước còn tăng nữa.
    Tốt nhất và đơn giản nhất nhưng hơi tốn một chút là bác mà từng module điều khiển 1 kênh phát xung, nhận lệnh từ master và chạy xong lệnh rồi chờ tiếp.

    Thanks.

  6. #5
    Học việc
    Ngày tham gia
    Jul 2016
    Bài viết
    6
    Cám ơn
    1
    Được cám ơn 0 lần
           ở 0 bài viết
    Trích dẫn Gửi bởi Ga con Xem bài viết
    Bác không viết các hàm accel và deaccel mà xuất một phát tần số cao ngay thì motor dễ mất bước lắm.

    Chưa kể một chip thực hiện nhiều tác vụ, interupt búa xua nữa thì phát xung nhiều jitter, motor chạy không mượt và nguy cơ mất bước còn tăng nữa.
    Tốt nhất và đơn giản nhất nhưng hơi tốn một chút là bác mà từng module điều khiển 1 kênh phát xung, nhận lệnh từ master và chạy xong lệnh rồi chờ tiếp.

    Thanks.
    ý bác nói là sử dụng thư viện accel cho arduino phải không bác
    như link này :http://arduino.vn/bai-viet/685-huong...n-dong-co-buoc
    em cứ nghĩ nó không dùng được cho AKD514hc chứ
    mà nếu viết theo như bác nói step nó có chạy nhanh được không bác,cái thằng arduino này nó có đáp ứng kịp không bác

  7. #6
    Thợ bậc 4
    Ngày tham gia
    May 2016
    Bài viết
    100
    Cám ơn
    12
    Được cám ơn 11 lần
           ở 10 bài viết
    Trong cái code của bác có cái delay 2000ms thì sao nó nhanh được Bác chủ thớt

  8. #7
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,680
    Cám ơn
    1,733
    Được cám ơn 5,321 lần
           ở 2,595 bài viết
    Trích dẫn Gửi bởi Echchum Xem bài viết
    Trong cái code của bác có cái delay 2000ms thì sao nó nhanh được Bác chủ thớt
    Delay sau vòng lặp for mà. Nội dung của cái đoạn code đó nôm na thế này.

    Khởi tạo.
    Phát 5000 xung đồng thời báo cáo số xung qua RS232
    Chờ 2000ms
    Lăp lại quá trình.


    Có nhiều nguyên nhân gây chậm trong chương trình này.
    - Arduino không phải không thể chạy nhanh hơn (vì nó vẫn dùng atmega32 16MHz như nhiều ứng dụng đơn giản khác). Nhưng các lệnh của nó đều chạy qua thư viện, nên in/out của nó đều phải tra qua pin map. Do đó nó mất nhiều thời gian mới thay đổi trạng thái của 1 in/out được.
    - Mỗi khi thay đổi trạng thái, đều phải báo cáo qua RS232, làm mất thêm một khoảng thời gian chờ thực hiện xong việc này.
    - Ngay cả delayMicroseconds(1) nó cũng ngốn mất khá thời gian, thực hiện riêng lệnh đã mất đâu hơn 10us.

    Để cải thiện.
    - Tăng tốc tối đa cho giao tiếp RS232, hoặc bỏ luôn, chỉ báo cáo khi hoàn tất 5000 xung.
    - Thay vì dùng các lệnh như digitalWrite thì dùng bitwise (như bitRead, bitWrite v.v...) để truy cập trực tiếp lên pin/port của vxl sẽ cải thiện nhiều về tốc độ. Tất nhiên khi truy cập trực tiếp lên pin/port thì ta phải nắm rỏ pinout của vxl, vì lúc đó output nó không theo pin number của arduino nữa.
    DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
    17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM

  9. #8
    Học việc
    Ngày tham gia
    Jul 2016
    Bài viết
    6
    Cám ơn
    1
    Được cám ơn 0 lần
           ở 0 bài viết
    Trích dẫn Gửi bởi CKD Xem bài viết
    Delay sau vòng lặp for mà. Nội dung của cái đoạn code đó nôm na thế này.

    Khởi tạo.
    Phát 5000 xung đồng thời báo cáo số xung qua RS232
    Chờ 2000ms
    Lăp lại quá trình.


    Có nhiều nguyên nhân gây chậm trong chương trình này.
    - Arduino không phải không thể chạy nhanh hơn (vì nó vẫn dùng atmega32 16MHz như nhiều ứng dụng đơn giản khác). Nhưng các lệnh của nó đều chạy qua thư viện, nên in/out của nó đều phải tra qua pin map. Do đó nó mất nhiều thời gian mới thay đổi trạng thái của 1 in/out được.
    - Mỗi khi thay đổi trạng thái, đều phải báo cáo qua RS232, làm mất thêm một khoảng thời gian chờ thực hiện xong việc này.
    - Ngay cả delayMicroseconds(1) nó cũng ngốn mất khá thời gian, thực hiện riêng lệnh đã mất đâu hơn 10us.

    Để cải thiện.
    - Tăng tốc tối đa cho giao tiếp RS232, hoặc bỏ luôn, chỉ báo cáo khi hoàn tất 5000 xung.
    - Thay vì dùng các lệnh như digitalWrite thì dùng bitwise (như bitRead, bitWrite v.v...) để truy cập trực tiếp lên pin/port của vxl sẽ cải thiện nhiều về tốc độ. Tất nhiên khi truy cập trực tiếp lên pin/port thì ta phải nắm rỏ pinout của vxl, vì lúc đó output nó không theo pin number của arduino nữa.

    thanks anh CKD,em đã bỏ cái rs232 và cải thiện tốc độ rất nhiều
    mỗi chu kì 40us thì mất bước 50us trở lên thì ổn rồi
    nhưng có vấn đề là toàn bộ quá trình máy chạy nếu cứ để mặc định tốc độ như vậy cho dù về home thì cũng chạm cử rất mạnh,rung cả máy
    em định dùng bộ thư viện accelstepper,do thư viện có gia tốc
    nhưng e tìm tài liệu thì không thấy nói rõ phải sử dụng thư viện ntn,em không biết làm sao để chỉnh tốc độ,tọa độ bước,gia tốc,code mẫu e thấy toàn random...chiều quay nữa,vì thằng vexta cấp xung CW quay thuận CCW lại quay ngược
    a có tài liệu hay code mẫu nào cho em tham khảo với ạ,tiếng anh cũng được

  10. #9
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,680
    Cám ơn
    1,733
    Được cám ơn 5,321 lần
           ở 2,595 bài viết
    Tài liệu thì chịu thôi.
    Mình hiểu sơ về Arduino vì trước đó có tìm hiểu sơ qua PIC & AVR. Nên Arduino phát triển trên nền AVR thì có vọc qua tí chút về nó. Cũng có tìm hiểu lý do nó chạy chậm và may mắn xem qua vài giải thích của mấy anh tây nên biết được nguyên nhân.

    Thư viện accelstepper cũng có biết chút chút, nhưng chưa thực hành với nó bao giờ nên cũng không biết phải nói gì về nó.

    Để tìm hiểu thì chịu khó tìm google, các bài tập có nội dung gần giống mình rồi tìm hiểu cách dùng. Đồng thời đọc thêm các ghi chú của thư viện để hiểu thêm.

    Driver thì có thể chuyển qua chế độ 1P, dùng input pulse/dir.

    Có một dự án xuất xung cho step mà mình thấy rất Ok, tuỳ biến cực mạnh là GRBL. Tuy nhiên nếu mới bắt đầu mà mò code của GRBL thì quả thật.. mò xong mà hiểu thì cũng thành trùm mất rồi.
    Đơn giản hơn thì có thể kết hợp GRBL để xuất xung, kết hợp SD card để chứa chương trình, kết hợp thêm 1 arduino để đọc và truyền dữ liệu. Khi đó có thể lập trình chạy step hiệu quả hơn với G-Code. Hình như GRBL quản lý được tới 4 axis cùng lúc.

    Cách khác nữa là tìm hiểu về RepRap để xuất xung. Cái này thì cũng như GRBL nhưng được cái tích hợp & đọc SD card & có LCD luôn. Không cần phải truyền chi hết. Mặc định nó phải dùng tới Aduino MEGA, nhưng cũng có người mod lại để chạy được với UNO thì phải.
    DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
    17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM

  11. #10
    Học việc
    Ngày tham gia
    Jul 2016
    Bài viết
    6
    Cám ơn
    1
    Được cám ơn 0 lần
           ở 0 bài viết
    Trích dẫn Gửi bởi CKD Xem bài viết
    Tài liệu thì chịu thôi.
    Mình hiểu sơ về Arduino vì trước đó có tìm hiểu sơ qua PIC & AVR. Nên Arduino phát triển trên nền AVR thì có vọc qua tí chút về nó. Cũng có tìm hiểu lý do nó chạy chậm và may mắn xem qua vài giải thích của mấy anh tây nên biết được nguyên nhân.

    Thư viện accelstepper cũng có biết chút chút, nhưng chưa thực hành với nó bao giờ nên cũng không biết phải nói gì về nó.

    Để tìm hiểu thì chịu khó tìm google, các bài tập có nội dung gần giống mình rồi tìm hiểu cách dùng. Đồng thời đọc thêm các ghi chú của thư viện để hiểu thêm.

    Driver thì có thể chuyển qua chế độ 1P, dùng input pulse/dir.

    Có một dự án xuất xung cho step mà mình thấy rất Ok, tuỳ biến cực mạnh là GRBL. Tuy nhiên nếu mới bắt đầu mà mò code của GRBL thì quả thật.. mò xong mà hiểu thì cũng thành trùm mất rồi.
    Đơn giản hơn thì có thể kết hợp GRBL để xuất xung, kết hợp SD card để chứa chương trình, kết hợp thêm 1 arduino để đọc và truyền dữ liệu. Khi đó có thể lập trình chạy step hiệu quả hơn với G-Code. Hình như GRBL quản lý được tới 4 axis cùng lúc.

    Cách khác nữa là tìm hiểu về RepRap để xuất xung. Cái này thì cũng như GRBL nhưng được cái tích hợp & đọc SD card & có LCD luôn. Không cần phải truyền chi hết. Mặc định nó phải dùng tới Aduino MEGA, nhưng cũng có người mod lại để chạy được với UNO thì phải.
    cảm ơn đóng góp quá nhiệt tình hữu ích của anh
    có thể làm cái sườn kiến thức cho em nghiên cứu
    mà ngặt ngừoi giao dự án cho em lại bắt làm arduino thôi
    trước kia có một ông làm bên này,em chỉ chuyên bên lập trình điện tử dân dụng khoảng điều khiển thiết bị,nay lão đó nghĩ em lãnh xô,nên phải tìm hiểu lấn qua luôn

  12. #11
    Thợ phụ bậc 1
    Ngày tham gia
    Oct 2016
    Bài viết
    10
    Cám ơn
    3
    Được cám ơn 0 lần
           ở 0 bài viết

    Bác đã làm được chưa ah, cho xin cách làm và chỉnh choẹt như thế nào

    cùng 1 câu hỏi nhưng chưa biết cách làm và chương trình thế nào, bác chỉ em và cho xin chương trình được không ah.

Các Chủ đề tương tự

  1. [ Xin hỏi SLA7044 ] Về mạch điều khiển step này.
    Bởi kenshido1231 trong diễn đàn Driver Step motor
    Trả lời: 0
    Bài viết cuối: 21-02-2016, 08:56:43 PM
  2. Thanh lý cuối năm bán 30 con driver đa năng điều khiển DC servo, Step 3 phase, Liner
    Bởi chetaocnc trong diễn đàn Gian hàng hết hiệu lực
    Trả lời: 63
    Bài viết cuối: 25-01-2016, 03:37:10 PM
  3. xây dựng bộ điều khiển step 3 phase
    Bởi nhatson trong diễn đàn Driver Step motor
    Trả lời: 19
    Bài viết cuối: 06-11-2014, 09:20:24 PM
  4. Xin chỉ dẫn mạch điều khiển step đơn giản bằng con 555
    Bởi ABCNC trong diễn đàn Break Out Board, Controller
    Trả lời: 42
    Bài viết cuối: 31-10-2014, 11:21:46 PM
  5. điều khiển cnc với arduino và tablet
    Bởi anhxco trong diễn đàn Break Out Board, Controller
    Trả lời: 10
    Bài viết cuối: 18-09-2014, 07:30:17 AM

Tag của Chủ đề này

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •