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 20 của 68

Chủ đề: CKD - Arduino DC motor PID position controller DEMO Ver

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Thợ cả
    Ngày tham gia
    Nov 2013
    Bài viết
    5,894
    Cám ơn
    2,195
    Được cám ơn 3,269 lần
           ở 2,043 bài viết
    Trích dẫn Gửi bởi CKD Xem bài viết
    motion profile có phải là giản đồ vận tốc không bác Gamo?
    Thấy cái servo xịn nào nó cũng có tham số gia tốc hết. Mà muốn gắn vào cái PID thì phải làm thế nào.. cái này mới nghĩ tới nhưng chưa hiện thực được, nên cụ thể không biết.
    - analog control vẫn là PWM đó bác. Ý em là analog -> ADC -> PWM -> motor. Là mô hình kiểm tra. Khi dùng thì cứ PWM - Motor thôi.

    Cái mô hình của em thì chưa xác định rỏ nguyên nhân. Em có test trên 2 con motor.
    - con của anh có vẻ moment khá tốt, encoder sau khi vệ sinh cũng good, nhưng lực từ nó mạnh nên khi dừng.. lực từ tự quay motor về vị trí cân bằng từ.. nên nó không ổn định. Tự bản thân nó.. khi error = 0, PWM = 0.. thì motor tự quay theo từ trường stator . Vậy là PID lại nhảy vào sửa .. rồi lố nên nó cứ hunting.
    - con của em thì nó chạy chậm rất smooth, chạy và dừng đúng, ít hunting, turning Ok. Nhưng mỗi tội khi chạy nhanh thì PID nó khùng luôn. Chắc do encoder nó khùng vì xuất hiện lỗi khi đếm. Con Arduino UNO thì em đánh giá nó vẫn đủ tốc độ làm việc vì nó liên tục report thông tin về máy tính qua dường UART, nhưng pid thì nó liệt vụ này cũng chưa có time để kiểm tra.
    Uno xài atmeg328, con này ko có module đọc encoder AB, cụ đọc encoder theo pp nào ah?

    b.r

  2. #2
    Thợ bậc 6 CKD's Avatar
    Ngày tham gia
    Nov 2013
    Bài viết
    6,681
    Cám ơn
    1,737
    Được cám ơn 5,330 lần
           ở 2,595 bài viết
    Trích dẫn Gửi bởi nhatson Xem bài viết
    Uno xài atmeg328, con này ko có module đọc encoder AB, cụ đọc encoder theo pp nào ah?
    Dùng ngắt ngoài bác ạ. Để hạn chế số lần đọc nên chỉ dùng ngắt cho kênh A, xử lý khi tín hiệu chuyển từ 0->1.

    Dùng ngắt để đọc cạnh lên kênh A, gọi hàm doEncoder.
    Hàm so sánh trạng thái kênh A & B để so sánh chiều quay, tính ra vị trí.
    A <> B -> count + 1; (CW)
    A == B -> count - 1; (CCW)

    Code trên arduino.
    Mã:
    ..
    void doEncoder()
    {
      if (digitalRead(encoderPinA) != digitalRead(encoderPinB))
      {
        Input ++;
      }
      else
      {
        Input --;
      }
    }
    DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
    17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM

  3. #3
    Thợ cả
    Ngày tham gia
    Nov 2013
    Bài viết
    5,894
    Cám ơn
    2,195
    Được cám ơn 3,269 lần
           ở 2,043 bài viết
    to cụ gamo, lão tiền bối của DC servo, cái này mới gọi là bậc thày, chia sẽ từ những ngày thông tin còn hạn chế, sử dụng linh kiện ở mức thấp nhất
    http://www.elm-chan.org/works/smc/report_e.html
    Lần sửa cuối bởi nhatson, ngày 22-12-2014 lúc 04:36:29 PM.

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

  1. DIY - Arduino LCD shield
    Bởi CKD trong diễn đàn Arduino
    Trả lời: 11
    Bài viết cuối: 28-04-2016, 04:55:31 PM
  2. Demo Step Driver DRV8711 [ Hunter_dt]
    Bởi hunter_dt trong diễn đàn Driver Step motor
    Trả lời: 24
    Bài viết cuối: 29-06-2014, 02:34:58 PM
  3. Controller 4 trục
    Bởi hadenki trong diễn đàn Break Out Board, Controller
    Trả lời: 5
    Bài viết cuối: 31-12-2013, 10:22:18 PM
  4. Step motor Controller/Driver
    Bởi hadenki trong diễn đàn Driver Step motor
    Trả lời: 0
    Bài viết cuối: 27-12-2013, 11:11:25 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
  •