Điều khiển động cơ servo

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • KDD04
    Nhập môn đệ tử
    • Mar 2007
    • 2

    #1

    Điều khiển động cơ servo

    Ai biết thì giúp mình với. Mình đang cần code để điều khiển động cơ theo yêu cầu sau:
    Mạch điều khiển động cơ servo:
    Nhấn nút ON mở động cơ (coi như đây là nút nhấn cho phép động cơ hoạt động hay điều chỉnh tốc độ).
    Nhấn nút OFF động cơ đang quay thì dừng lại.
    Nhấn FOR động cơ quay thuận (led đầu tiên hiển thị số 1).
    Nhấn REV động cơ quay ngược(led đầu tiên hiển thị số 0).
    (Khi chuyển giữa hai chế độ thuận ngược: có thể nhấn trực tiếp không cần phải tắt động cơ (không cần nhấn nút OFF) ).
    Các nút số dùng để nạp tốc độ động cơ. Khi nạp tốc độ thì hiển thị lên 3led 7 đoạn.
    Đồng thời khi động cơ đang hoạt động ổn định thì cũng hiển thị tốc độ lên 3 led.
    Sau khi nạp tốc độ cho động cơ thì nhấn OK động cơ mới hoạt động.
    (Mình có sơ đồ nguyên lý mà không biết làm sao post lên).

    Falleaf:
    http://dientuvietnam.net/forums/showthread.php?t=1419
    Xem bài này để biết cách post hình lên diễn đàn
    Attached Files
    Last edited by KDD04; 02-04-2008, 12:56 AM.
  • KDD04
    Nhập môn đệ tử
    • Mar 2007
    • 2

    #2
    Cảm ơn anh Falleaf nhiều.Mong anh chỉ em thêm

    Comment

    • hezman1987
      Nhập môn đệ tử
      • Mar 2009
      • 4

      #3
      Hix đúng cái mình cần . lâu quá rồi ko biết bạn có thể share tài liệu nghiên cứu cho mình được ko . email :hezman1987@gmail.com
      thx

      Comment

      • thichtatca
        Nhập môn đệ tử
        • Jun 2009
        • 1

        #4
        bạn KDD04 và hezman1987 có bài này không cho mình tham khảo với cám ơn 2 bạn nhìu

        Comment

        • Vo Hoang SOn
          Nhập môn đệ tử
          • Jun 2005
          • 10

          #5
          Hi Ban,

          Minh thay trang web nay rat hay .Mach dieu khien DC servo motor .Rat tiec la minh chua thu lam no bao gio.Hy vong anh em dien dan lam duoc no!
          http://elm-chan.org/works/smc/report_e.html

          Comment

          • LeDuc
            Đệ tử 6 túi
            • Mar 2007
            • 150

            #6
            truoc day toi da lam xong cai driver cho dc servo , dieu khien vi tri hay toc do gi cung duoc ..
            Ban can gi cu lien he voi toi : Thuyhu_letinh@yahoo.com
            _________________________________________________
            Le Trung Duc
            Industry Research & Application Center
            NTT Institute of Hi_technolog
            ltduc@ntt.edu.vn
            leduc_cktd@yahoo.com.vn
            http://www.nttc.edu.vn
            CNC DIY : http://quangcaosanpham.com/shop/driverservo
            0909300332

            Comment

            • Vo Hoang SOn
              Nhập môn đệ tử
              • Jun 2005
              • 10

              #7
              Con mot trang web chi cach thuc hien lam mach DC servo cung rat hay Minh xin gioi thieu den cac Ban.neu Ban nao lam thanh cong thi chia se nhe

              Rat tiec la minh phai mua source cua Tac gia.Con mach PCB thi no cho minh layout roi.

              Chuc cac Ban thanh cong

              Comment

              • loanmapdit
                Đệ tử 1 túi
                • Jun 2009
                • 13

                #8
                cảm ơn bạn .mình đang nghiên cứu về nó!
                Linh kiện điện tử biên hòa.Ngã 4 Amta -500m - đối diện bệnh viện nhi Đồng Nai đi tiếp 100m
                547/7 tổ 4 khu phố 1 Long Bình .099.50979.68 or 0917 277148

                Comment

                • congson36
                  Nhập môn đệ tử
                  • Nov 2010
                  • 2

                  #9
                  thanks các bác rất nhiều

                  Comment

                  • dtbamboo36
                    Nhập môn đệ tử
                    • Oct 2010
                    • 2

                    #10
                    điều khiển động cơ dc dung pic (băm xung)...!

                    xin các bác giúp đỡ....!
                    em đang làm đề tài vi xử lý dùng pic16f877a điều khiển động cơ dc như sau:
                    +dùng bàn phím ma trận để nhập giá trị để băm xung (từ 000-255).
                    +dùng lcd hiển thị giá trị từ bàn phím.
                    +sau khi nhập 3 số,so sánh vói giá trị 256 nếu nhỏ hơn thì xuất ra băm xung điều khiển động cơ;nếu vượt quá thì nhập lại.
                    em dùng ngôn ngữ probasic để viết,biên dịch thành công nhưng ko chạy đúng yêu cầu,em đã kiểm tra kỹ (nhưng ko pit tai em dốt hay sao nữa) mà ko tim được lỗi...!
                    mong các bác giúp đỡ..!thành thật cám ơn mọi người
                    dưới đây là code và mạch mô phỏng của em,xin các bác cho ý kiến...!
                    nếu chị nào có thể thành ý muốn giúp đỡ cũng được lun...!hi
                    Attached Files
                    Last edited by dtbamboo36; 21-11-2010, 05:31 PM. Lý do: thêm mạch mô phỏng

                    Comment

                    • anhtuhaui0512
                      Nhập môn đệ tử
                      • Oct 2011
                      • 1

                      #11
                      thank anh nhieu a.

                      Comment

                      • tungoctran
                        Nhập môn đệ tử
                        • Jun 2013
                        • 1

                        #12
                        dc servo

                        chào các anh các chị
                        Em đang dùng 4 dc servo MG946R để điểu khiển cánh tay máy như clip bên dưới .còn mấy ngày nữa báo cáo rồi mà chưa chạy mong anh chị giúp em
                        em dung con 16f877a qua mach nap big kit2 va driver starter1 [mua ở thiên minh]
                        đây là đoạn code: tan so 16MHZ
                        #include <16f877A.h>
                        #include <def_877a.h>
                        #device *=16 ADC=8
                        #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
                        #use rs232(baud=9600,Xmit=PIN_C6,rcv=PIN_C7)
                        #use rs232
                        #use msdelay(clock=160000000)
                        #INT_RA
                        #INT_RB;
                        #INT_RC;
                        #INT_RD;
                        char dem;
                        char value,value1,value2,value3;
                        #INT_TIMER0
                        Void set_servo() {
                        set_timer0(164);
                        dem++; //bien dem tang thêm 1 giá tri moi 0,1ms
                        if (dem >= 200) // 200*0,1=20ms (xung 50Hz)
                        {
                        dem=0; //
                        output_high(PIN_A1);
                        output_high(PIN_B1);
                        output_high(PIN_C1);
                        output_high(PIN_D1);
                        msdelay(5000);
                        }
                        if (dem >= value)output_LOW(PIN_A1);
                        if (dem >= value1)output_LOW(PIN_B1);
                        if (dem >= value2)output_LOW(PIN_C1);
                        if (dem >= value3)output_LOW(PIN_D1);
                        msdelay(5000);
                        }


                        void main()
                        {
                        set_tris_a(0);
                        OUTPUT_A(0xff);
                        set_tris_b(0x00);
                        OUTPUT_B(0xff;
                        set_tris_c(0x00);
                        OUTPUT_C(0xff);
                        set_tris_d(0x00);
                        OUTPUT_D(0xff);
                        enable_interrupts(int_timer0); //cho phép ng?t timer0
                        enable_interrupts(global);
                        setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); //chon t?n s? cho timer0 t? clock chính (16MHz)
                        set_timer0(156); //cài ??t timer ?? timer0 tràn m?i 0,1ms
                        while(true) //vòng lap
                        {
                        value=12;
                        value1=12;
                        value2=12;
                        value3=13;
                        }
                        }

                        Comment

                        • mr.spkt
                          Nhập môn đệ tử
                          • May 2010
                          • 6

                          #13
                          Nguyên văn bởi tungoctran View Post
                          chào các anh các chị
                          Em đang dùng 4 dc servo MG946R để điểu khiển cánh tay máy như clip bên dưới .còn mấy ngày nữa báo cáo rồi mà chưa chạy mong anh chị giúp em
                          em dung con 16f877a qua mach nap big kit2 va driver starter1 [mua ở thiên minh]
                          đây là đoạn code: tan so 16MHZ
                          #include <16f877A.h>
                          #include <def_877a.h>
                          #device *=16 ADC=8
                          #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
                          #use rs232(baud=9600,Xmit=PIN_C6,rcv=PIN_C7)
                          #use rs232
                          #use msdelay(clock=160000000)
                          #INT_RA
                          #INT_RB;
                          #INT_RC;
                          #INT_RD;
                          char dem;
                          char value,value1,value2,value3;
                          #INT_TIMER0
                          Void set_servo() {
                          set_timer0(164);
                          dem++; //bien dem tang thêm 1 giá tri moi 0,1ms
                          if (dem >= 200) // 200*0,1=20ms (xung 50Hz)
                          {
                          dem=0; //
                          output_high(PIN_A1);
                          output_high(PIN_B1);
                          output_high(PIN_C1);
                          output_high(PIN_D1);
                          msdelay(5000);
                          }
                          if (dem >= value)output_LOW(PIN_A1);
                          if (dem >= value1)output_LOW(PIN_B1);
                          if (dem >= value2)output_LOW(PIN_C1);
                          if (dem >= value3)output_LOW(PIN_D1);
                          msdelay(5000);
                          }


                          void main()
                          {
                          set_tris_a(0);
                          OUTPUT_A(0xff);
                          set_tris_b(0x00);
                          OUTPUT_B(0xff;
                          set_tris_c(0x00);
                          OUTPUT_C(0xff);
                          set_tris_d(0x00);
                          OUTPUT_D(0xff);
                          enable_interrupts(int_timer0); //cho phép ng?t timer0
                          enable_interrupts(global);
                          setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); //chon t?n s? cho timer0 t? clock chính (16MHz)
                          set_timer0(156); //cài ??t timer ?? timer0 tràn m?i 0,1ms
                          while(true) //vòng lap
                          {
                          value=12;
                          value1=12;
                          value2=12;
                          value3=13;
                          }
                          }
                          sao tớ ko thấy clip nào hết vậy?

                          Comment

                          Working...