(Mikro C) Điều khiển động cơ bước dùng PIC 16F887 (step motor code Mikro C)

Mô phỏng điều khiển động cơ bước
Mạch sử dụng IC PIC 16f887, động cơ bước, uln2003, LCD và một số nút nhấn để điều khiển.
Nguyên lý hoạt động
có hai phương pháp để điều khiển động cơ bước, đó là điều khiển nửa bước (half step) và đủ bước (full step).

Link download this project (code + altium) :
google drive: project MikroC

Code trên chỉ đúng với mô phỏng, để đúng với thực tế, tùy theo số góc bước của động cơ bước, tùy theo phương pháp điều khiển (đủ bước, nửa bước) các bạn chỉnh lại cho phù hợp.
vd : mình dùng động cơ có góc bước là : 7,5*
Bạn hãy tưởng tượng động cơ bước là 2 bánh răng được ghép với nhau, bánh răng nhỏ quay được một vòng, thì bánh răng lớn sẽ quay được 7,5 độ (số góc bước của động cơ). Tức là mình kích 1 vòng như hình trên :
      // chế độ quay thuận, quay nghịch thì ngược lại nhé!
       PORTD=0x08;
       Delay_ms(100);
       PORTD=0x0C;
       Delay_ms(100);
       PORTD=0x04;
       Delay_ms(100);
       PORTD=0x06;
       Delay_ms(100);
       PORTD=0x02;
       Delay_ms(100);
       PORTD=0x03;
       Delay_ms(100);
       PORTD=0x01;
       Delay_ms(100);
       PORTD=0x09;
       Delay_ms(100);
thì động cơ sẽ quay được 7.5 độ, muốn quay đủ một vòng thì mình chỉnh lại vòng for lặp lại  48 lần (360/7.5).
Điều khiển động cơ bước
Trên đây là cách điều khiển động cơ bước đơn giản, dùng để điều khiển động cơ bước theo số vòng. Còn khác một vòng thì các bạn phát triển thêm nhé!

60 nhận xét:

  1. Trả lời
    1. có nha bạn, để lại mail mình sẽ gửi cho! ^^

      Xóa
    2. wicon.95@gmail.com
      gửi mình sơ đồ nguyên lý với code quay thuận, nghịch đi bạn

      Xóa
    3. mình đã gửi link cho bạn rồi đó!^^

      Xóa
    4. bạn ơi làm ơn gửi cho mình với nguyenminhtu4895@gmail.com

      Xóa
    5. bạn ơi gửi cho mình với nguyenphuocdung99@gmail.com.vn

      Xóa
    6. bạn ơi cho mình xin code với canhsang8332@gmail.com

      Xóa
  2. Phatlam1304@gmail.com
    Cho mình xin nguyên lý hoạt động với code quay thuận nghịch nha bạn.

    Trả lờiXóa
    Trả lời
    1. nếu bạn làm quay thuận được rồi, thì bạn chỉ cần đảo ngược thứ tự lại là động cơ sẽ quay nghịch được.
      project mình có up link ở phía trên nha banj1 ^^

      Xóa
  3. Nhận xét này đã bị quản trị viên blog xóa.

    Trả lờiXóa
  4. cho mình xin facebook của bạn hỏi vài cái về động cơ bước được không

    Trả lờiXóa
  5. cho em xin cai mạch in ik a. trungthanh06102001@gmail.com gmail của e đó

    Trả lờiXóa
    Trả lời
    1. đây nha e https://drive.google.com/file/d/0B8M03qY0MbsIRmx2aVFxc1VneDQ/view?usp=sharing

      Xóa
  6. cho minh xin code voi ban oi ^^ mail minh a: baobao22022@gmail.com

    Trả lờiXóa
    Trả lời
    1. Code minh để trên phần bài viết nha bạn :D

      Xóa
    2. CHO MÌNH HỎI LÀ SAO TRÊN ĐÂY LÀ CON 16F887 MÀ SAO TRONG PROJECT LẠI LÀ CON 16F877A VẬY? 2 CON NÀY CÓ KHÁC GÌ KHÔNG BẠN?

      Xóa
    3. cho mình xin nguyên bài code được không bạn? mình không rành code lắm mà thích làm để chơi :D

      Xóa
    4. code mình để trên phần bài viết r mà bạn, bạn lên nhìn sẽ thấy.
      còn về pic16f887 và 877a thì bản chất 2 con này thì lập trình như nhau, chỉ khác một số thanh ghi thôi thì phải. Nên code nạp ok á bạn :D

      Xóa
    5. chỉ cần copy code trên vào là chạy hay sao bạn? không cần khai báo gì hết hả? tại mình thấy a mình làm bên 18f có khai báo thư viện gì đó nhiều lắm

      Xóa
    6. Code này đơn giản không cần dùng thêm thư viện nha bạn :D
      chú ý: dùng phần mềm mikro C nha.

      Xóa
    7. mình chỉ biết dùng proteus còn cái đó mình bó tay :((

      Xóa
    8. :D, tập làm quen đi bạn, mà bạn học ngành gì v?

      Xóa
    9. mình còn đang học phổ thông bạn ơi. thích làm mà dở phần code lắm :((

      Xóa
    10. Bỏ ít thời gian tìm hiểu là làm được thôi bạn, có gì không biết thì có thể hỏi mình, nếu giúp đc mình sẽ giúp :D

      Xóa
  7. bạn có thể chỉ cho mình code này viết bằng ccs dk ko ạ

    Trả lờiXóa
    Trả lời
    1. ccs thì mình chưa dùng thử nữa bạn. Nhưng căn bản là chỉ điều khiển gpio theo 1 cách tuần tự là có thể điều khiển được động cơ bước đó bạn!

      Xóa
  8. bạn cho mình xin code đc k bạn?

    Trả lờiXóa
    Trả lời
    1. code mình để ở trên nhé bạn! Bạn xem lại thử ik

      Xóa
  9. Anh ơi cho em xin facebook gấp với ạ, em làm bài về cái này mà tìm hiểu hoài chưa thông.

    Trả lờiXóa
    Trả lời
    1. nếu đước thì anh pm cho em luôn với ạ, fb em là https://www.facebook.com/MrNMT4895

      Xóa
  10. Anh ơi anh giúp em về con pic 18f4520 được không vậy

    Trả lờiXóa
  11. anh ơi , a có code C k có em xin với ạ gmail của em : levanvu.cdt@gmail.com

    Trả lờiXóa
    Trả lời
    1. code mình để trong bài viết nha bạn. Bạn xem lại thử xem!

      Xóa
  12. Anh ơi, nếu mình dùng chế độ lập vĩnh viễn sau khi set thì dùng hàm gì ạ, ví dụ sau khi set số vòng, thì thực hiện đủ số vòng rồi delay x giây sau đó thực hiện lại cho đến khi mình stop thôi ấy ạ.

    Trả lờiXóa
    Trả lời
    1. bạn tạo một hàm dùng để điều khiển đủ số vòng của động cơ bước mong muốn. Xong rồi bạn đặt hàm đó trong vòng lặp while, dowhile hoặc for là được.

      Xóa
  13. Bác cho mình xin Code được không bác? minh tải về mở bằng Mikro C không được. Cho mình xin File txt hay world ha excel gì cũng được bác ơi!

    Trả lờiXóa
    Trả lời
    1. bạn tải file nén đó về. Vào thư mục code có file stepper_motor.c (code là file này).

      Xóa
  14. bác cho mình xin file code được không ạ

    Trả lờiXóa
    Trả lời
    1. CODE mình có đính kèm trong bài viết nha bạn.
      https://drive.google.com/file/d/0Bwyne6IdQzTVZFp6eThwdm0tV3c/view?usp=sharing

      Xóa
  15. Mong admin có thể hướng dẫn em lập trình điều khiển động cơ step trên phần mềm CCS với ạ.
    Gmail: p.hoahp@gmail.com
    Tks admin !!

    Trả lờiXóa
    Trả lời
    1. mình đã inbox qua email bạn.

      Xóa
    2. sr admin ạ,em gửi nhầm mail ạ!!!
      Em xin gửi lại:p.hoahp@gmail.com

      Xóa
  16. Dạ bạn có Lưu đồ thuật toán không ạ ?

    Trả lờiXóa
  17. trong file code có file STEP2 mà e mở ra là phần mềm altium có code gì đấy ạ

    Trả lờiXóa
  18. Xin code với nguyên lí với ạ

    Trả lờiXóa
  19. Có thể cho em xin code đc k trungdong9977@gmail.com

    Trả lờiXóa
  20. Có thể cho em xin code k trungdong9977@gmail.com

    Trả lờiXóa
    Trả lời
    1. https://drive.google.com/file/d/0Bwyne6IdQzTVZFp6eThwdm0tV3c/view?usp=sharing

      Xóa
  21. cho mình xin code của 16f887 được không
    email: hoangcuong260201@gmail.com

    Trả lờiXóa
  22. Anh ơi cho em xin code C với
    Email: thuanthai.11092001@gmail.com

    Trả lờiXóa
  23. cho e xin code với ạ.tvdk20c2@gmail.com

    Trả lờiXóa
  24. cho em xin code mới ạ

    Trả lờiXóa
  25. cho em xin code mới ạ

    Trả lờiXóa
  26. Cho e xin code với a
    dohuyhoang07082001@gmail.com

    Trả lờiXóa

Được tạo bởi Blogger.