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 55

Chủ đề: Arduino - Mỗi ngày một ví dụ, từ dễ tới khó - Arduino UNO R3

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    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
    Mà cụ Gà.. cái lão elm-chan đó bảo có kỹ thuật đọc encoder với tốc độ x2 lần tần số quét là thế nào nhỉ.. trình tiếng anh gà quá, đọc cái http://elm-chan.org/works/smc/report_e.html của lão không hiểu hết ý được.
    Làm cách nào đọc được encoder tới 52kHz.. trong khi chu kỳ tính PID đã mất 92us, chạy với thạch anh 10MHz

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

Name:	smc.png 
Views:	2 
Size:	19.1 KB 
ID:	6410

    Chơi DC servo dù biết là nó cũ, khã năng ứng dụng so với giá có thể mua được cũng không được khã thi cho lắm. Nhưng DC servo có cái lợi là không cần thuật toán điều khiển gì cả. Rất đơn giản, dễ tiếp cận.. muốn điều khiển được DC motor chỉ cần làm được mấy chuyện:
    - Chiều dòng điện cấp cho motor ---> sẽ quyết định chiều quay của motor.
    - Cường độ dòng điện (đương nhiên phải dính tới áp).. quyết định tốc độ và moment.
    * mọi thông số phải <= định mức của motor.. nếu không muốn nó chạy xíu rồi xì khói.

    Ngoài ra.. em tạm ngưng vì tạm thời đã hiểu sơ sơ thế nào là PID.. cũng như các tham số và tác động của nó.
    DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
    17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM

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


  3. #2
    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
    Mà cụ Gà.. cái lão elm-chan đó bảo có kỹ thuật đọc encoder với tốc độ x2 lần tần số quét là thế nào nhỉ.. trình tiếng anh gà quá, đọc cái http://elm-chan.org/works/smc/report_e.html của lão không hiểu hết ý được.
    Làm cách nào đọc được encoder tới 52kHz.. trong khi chu kỳ tính PID đã mất 92us, chạy với thạch anh 10MHz

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

Name:	smc.png 
Views:	2 
Size:	19.1 KB 
ID:	6410

    Chơi DC servo dù biết là nó cũ, khã năng ứng dụng so với giá có thể mua được cũng không được khã thi cho lắm. Nhưng DC servo có cái lợi là không cần thuật toán điều khiển gì cả. Rất đơn giản, dễ tiếp cận.. muốn điều khiển được DC motor chỉ cần làm được mấy chuyện:
    - Chiều dòng điện cấp cho motor ---> sẽ quyết định chiều quay của motor.
    - Cường độ dòng điện (đương nhiên phải dính tới áp).. quyết định tốc độ và moment.
    * mọi thông số phải <= định mức của motor.. nếu không muốn nó chạy xíu rồi xì khói.

    Ngoài ra.. em tạm ngưng vì tạm thời đã hiểu sơ sơ thế nào là PID.. cũng như các tham số và tác động của nó.

    ;----------------------------------------------------------;
    ; 83kHz Position capture and servo operation interrupt

    background:
    push T0L
    pushw Z
    in T0L, SREG ;Save flags

    mov ZL, _PvEnc ;ZL[1:0] = previous A/B signal
    in _PvEnc, PIND ;Sample A/B signal into _PvEnc[1:0]
    swap _PvEnc ;/
    ldi ZH, 1 ;Convert it to sequencial number.
    sbrc _PvEnc, 1 ;
    eor _PvEnc, ZH ;/
    sub ZL, _PvEnc ;Decode motion
    andi ZL, 3 ;/
    breq enc_zr ;-> Not moved
    cpi ZL, 3 ;
    breq enc_rev ;-> -1 count
    cpi ZL, 1 ;
    breq enc_fwd ;-> +1 count
    mov ZL, _PvDir ;-> Missing code recovery:
    mov ZH, _PvDir ; double count for previous direction
    lsl ZL ;
    asr ZH ;/
    rjmp enc_add
    enc_rev:ldiw Z, -1
    rjmp PC+3
    enc_fwd:ldiw Z, 1
    mov _PvDir, ZL
    enc_add:addw _Pos, Z
    adc _PosX, ZH
    enc_zr:
    dec _CtDiv ;Decrement 1/83 divider
    rjne bgnd_exit ;If not overflow, exit interrupt routine.

    em chưa check code, nhưng khả năng là encoder có 4 trạng thái cho 1 chu kì, ta có thể bắt xung ở trạng thái thứ 1 và thứ 4 = +4 > tương đương bắt được xung gấp 2 lần tần số quét
    Lần sửa cuối bởi nhatson, ngày 07-03-2015 lúc 08:22:36 AM.

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

    CKD

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

  1. DIY - Arduino tiny board
    Bởi CKD trong diễn đàn Arduino
    Trả lời: 22
    Bài viết cuối: 23-09-2016, 04:22:51 AM
  2. CKD - Fun - Hãy thư giản sau mỗi ngày làm việc.
    Bởi CKD trong diễn đàn Góc nhiếp ảnh
    Trả lời: 137
    Bài viết cuối: 16-06-2016, 02:30:16 PM
  3. 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
  4. CKD - Arduino DC motor PID position controller DEMO Ver
    Bởi CKD trong diễn đàn Arduino
    Trả lời: 67
    Bài viết cuối: 04-09-2015, 08:02:08 PM
  5. Trả lời: 5
    Bài viết cuối: 06-01-2015, 01:27:36 PM

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
  •