Thông báo

Collapse
No announcement yet.

Điều khiển động cơ bước bằng AVR

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Em muốn trích nguyên văn bài của ai đó, rùi trả lời thì làm thế nào vậy?
    Cảm ơn cả nhà!!!

    Comment


    • #17
      Nguyên văn bởi pavo_lusa Xem bài viết
      Tôi thấy có nhiều bạn hỏi tôi về lập trình điều khiển động cơ bước bằng AVR. Nên tôi xin post lên đây 1 project đơn giản để cùng thảo luận:
      Các bạn xem file mô phỏng và kết quả ở kế dưới:
      cảm ơn bạn nhiều

      Comment


      • #18
        Nguyên văn bởi trch Xem bài viết
        Thấy bạn pavo_lusa hăng hái quá mình cũng xin post project của mình lên cho các bạn thêm nhiều tư liệu. Ở đây mình điều khiển vi bước qua máy tính.
        http://mega.1280.com//file/M81U4GY2/
        http://mega.1280.com//file/0ZIDKK2A/
        http://mega.1280.com//file/B1MEIWVL/
        yêu cầu máy tính cài VC++2005,labview8.5
        chúc thành công, bảo trọng.
        Mọi người đã down được các link này rồi thì up lại cho em với. Thanks!
        WS:
        Blog:

        Comment


        • #19
          Nguyên văn bởi pavo_lusa Xem bài viết
          Code C cho chương trình được viết trên CodeVisionAVR như sau:

          /**********************************************
          Project : Stepper-motor
          Version : 1.0
          Date : 26.03.2009
          Author : Pavo_lusa

          Chip type : ATmega16
          Program type : Application
          Clock frequency : 1,000000 MHz
          Memory model : Small
          External SRAM size : 0
          Data Stack size : 256
          ************************************************** ***/


          #include <mega16.h>
          #include <io.h>
          #include <delay.h>

          #define BLUE PORTB.0
          #define BLACK PORTB.1
          #define RED PORTB.2
          #define YELLOW PORTB.3

          void main(char a)
          {
          DDRB = 0xFF;
          PORTB = 0x00;

          DDRD = 0xFF;
          PORTD = 0xFF;
          while (1)
          {
          unsigned int i = 0;

          if(a==0) //dich sang trai 1 na^c
          {
          for(i=0;i<=8;i++)
          {
          PORTB = BLUE;
          BLUE = 1;
          delay_ms(100);
          BLUE = 0;

          BLACK = 1;
          delay_ms(100);
          BLACK = 0;

          RED = 1;
          delay_ms(100);
          RED = 0;

          YELLOW = 1;
          delay_ms(100);
          YELLOW = 0;

          PORTD = PORTD&(PORTD<<1);
          }
          a=1;
          }

          else { //dich sang phai 1 na^c
          for(i=8;i>=1;i--)
          {
          YELLOW = 1;
          delay_ms(100);
          YELLOW = 0;

          RED = 1;
          delay_ms(100);
          RED = 0;

          BLACK = 1;
          delay_ms(100);
          BLACK = 0;

          BLUE = 1;
          delay_ms(100);
          BLUE = 0;

          if(PORTD == 0x00)
          {
          PORTD = PORTD|(0x80);
          }
          else
          PORTD = PORTD|(PORTD>>1);
          };
          a=0;
          };


          };
          }

          Download Code trong file kèm dưới đây
          chương trình của bạn thế này thì mô-tơ chạy chậm lắm nhỉ, 100ms/bước. các bạn ơi có mô-tơ bước nào mô men xoắn cỡ 50kgf.cm không nhỉ.
          Chuyên thiết kế mạch điều khiển, lắp đặt cơ khí, ĐT: 0913059995.

          Comment


          • #20
            a pavo_lusa cho e hỏi cái nhé: a có làm điều khiển motor-pwmservo or motor-servo thì post lên e tham khảo với

            Comment


            • #21
              Thanks ! Mình đang cần code để tham khảo

              Comment


              • #22
                các bạn ơi,mình đang rất cần những tài liệu để thiết kế điều khiển RObot 6 bậc tự do.Mình là dân cơ khí chế tạo,chưa bao giờ động đến mấy thứ này nên chẳng biết gì hết.Kỳ này làm đồ án tốt nghiệp dính vào Robot,đang mắc phần điều khiển.Rất mong được cả nhà trợ giúp.hihi

                Comment


                • #23
                  Ai điều khiển đc vi bước rồi nhỉ ???

                  Comment


                  • #24
                    Nguyên văn bởi pavo_lusa Xem bài viết
                    Code C cho chương trình được viết trên CodeVisionAVR như sau:

                    /**********************************************
                    Project : Stepper-motor
                    Version : 1.0
                    Date : 26.03.2009
                    Author : Pavo_lusa

                    Chip type : ATmega16
                    Program type : Application
                    Clock frequency : 1,000000 MHz
                    Memory model : Small
                    External SRAM size : 0
                    Data Stack size : 256
                    ************************************************** ***/


                    #include <mega16.h>
                    #include <io.h>
                    #include <delay.h>

                    #define BLUE PORTB.0
                    #define BLACK PORTB.1
                    #define RED PORTB.2
                    #define YELLOW PORTB.3

                    void main(char a)
                    {
                    DDRB = 0xFF;
                    PORTB = 0x00;

                    DDRD = 0xFF;
                    PORTD = 0xFF;
                    while (1)
                    {
                    unsigned int i = 0;

                    if(a==0) //dich sang trai 1 na^c
                    {
                    for(i=0;i<=8;i++)
                    {
                    PORTB = BLUE;
                    BLUE = 1;
                    delay_ms(100);
                    BLUE = 0;

                    BLACK = 1;
                    delay_ms(100);
                    BLACK = 0;

                    RED = 1;
                    delay_ms(100);
                    RED = 0;

                    YELLOW = 1;
                    delay_ms(100);
                    YELLOW = 0;

                    PORTD = PORTD&(PORTD<<1);
                    }
                    a=1;
                    }

                    else { //dich sang phai 1 na^c
                    for(i=8;i>=1;i--)
                    {
                    YELLOW = 1;
                    delay_ms(100);
                    YELLOW = 0;

                    RED = 1;
                    delay_ms(100);
                    RED = 0;

                    BLACK = 1;
                    delay_ms(100);
                    BLACK = 0;

                    BLUE = 1;
                    delay_ms(100);
                    BLUE = 0;

                    if(PORTD == 0x00)
                    {
                    PORTD = PORTD|(0x80);
                    }
                    else
                    PORTD = PORTD|(PORTD>>1);
                    };
                    a=0;
                    };


                    };
                    }

                    Download Code trong file kèm dưới đây
                    Cho mình hỏi.Nếu muốn quay motor bước quay 1 góc nhất định theo tín hiệu cảm biết thì code viết thế nào ( giúp mình với vì đang làm đồ án )
                    Ví dụ tín hiệu cảm biến vào là tín hiệu điện 0 - 5V
                    nếu điện nhỏ hơn 0.5 v thi ở góc 0 độ
                    nếu điện lớn hơn 0.5v thì 180 độ sau đó dừng
                    nếu điện vào nhỏ hơn 0.5V thi lại quay về 0 độ

                    Comment


                    • #25
                      Nguyên văn bởi truongnbjh Xem bài viết
                      Cho mình hỏi.Nếu muốn quay motor bước quay 1 góc nhất định theo tín hiệu cảm biết thì code viết thế nào ( giúp mình với vì đang làm đồ án )
                      Ví dụ tín hiệu cảm biến vào là tín hiệu điện 0 - 5V
                      nếu điện nhỏ hơn 0.5 v thi ở góc 0 độ
                      nếu điện lớn hơn 0.5v thì 180 độ sau đó dừng
                      nếu điện vào nhỏ hơn 0.5V thi lại quay về 0 độ
                      Vì điều khiển động cơ bước bằng xung cấp vào cho động cơ, nên việc đầu tiên là xác định số bước của động cơ quay hết 1 vòng là bao nhiêu. Sau đó thì viết các chương trình con khác nhau như: Chương trình con phát xung để động cơ quay thuận góc 180 độ, chương trình con quay ngược góc 180 độ...Khi xử lý tín hiệu vào từ cảm biến xong, tùy theo đó mà gọi các chương trình con tương ứng.
                      Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
                      http://diencongnghiep360.com/
                      http://tudienhathe.vn/

                      Comment


                      • #26
                        Nguyên văn bởi vietthanh123 Xem bài viết
                        Vì điều khiển động cơ bước bằng xung cấp vào cho động cơ, nên việc đầu tiên là xác định số bước của động cơ quay hết 1 vòng là bao nhiêu. Sau đó thì viết các chương trình con khác nhau như: Chương trình con phát xung để động cơ quay thuận góc 180 độ, chương trình con quay ngược góc 180 độ...Khi xử lý tín hiệu vào từ cảm biến xong, tùy theo đó mà gọi các chương trình con tương ứng.
                        ĐOng cơ của e 24 bước.Bác giúp em code luôn đc không. em yếu lập trình quá ( em dung ATmega8)
                        Last edited by truongnbjh; 03-10-2013, 13:16.

                        Comment


                        • #27
                          Nguyên văn bởi pavo_lusa Xem bài viết
                          Lưu ý :khi thiết kế mạch thực tế: Cần cách ly mạch logic khỏi mạch công suất.
                          Lý do: Mạch logic làm việc với tín hiệu dưới 5V, trong khi đó mạch công suất của động cơ có thể làm việc với 12V, 15V hay 32V ... Điện áp này và dòng dội ngược của động cơ có thể làm hỏng mạch logic.
                          Giải pháp: Bạn có thể lắp mạch cách ly động cơ dùng L297 và L298 như hình kế dưới. (trong thư viện ví dụ của Proteus cũng có 1 ví dụ về phần này).Bạn có thể download file mô phỏng kế dưới
                          nếu dung chỉ L298 có được không anh ơi.nếu có thi đấu từ ATmega8 ra ntn chỉ e với

                          Comment


                          • #28
                            Nguyên văn bởi truongnbjh Xem bài viết
                            nếu dung chỉ L298 có được không anh ơi.nếu có thi đấu từ ATmega8 ra ntn chỉ e với
                            Tất nhiên là được bạn ah, nhưng không nên vì bộ L297 còn có xung chopper tạo ra lực hãm nưa -> cái này khá phức tạp nhe. nên theo đồng bộ thì hơn.
                            Mình trước dùng nhiều L297-L298 nhưng giờ mình chủ yếu chuyển sang module THB7128 rồi, dòng 3A, Chạy ngon không ồn!
                            Mình cũng dùng atmega8 nhé!

                            Comment

                            Về tác giả

                            Collapse

                            pavo_lusa Tìm hiểu thêm về pavo_lusa

                            Bài viết mới nhất

                            Collapse

                            • mèomướp
                              Trả lời cho Công thức điện tử
                              bởi mèomướp
                              Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
                              hôm nay, 21:21
                            • mèomướp
                              Trả lời cho Xin hỏi về màn hình laptop
                              bởi mèomướp
                              Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
                              hôm nay, 20:31
                            • yname11
                              Trả lời cho Xin hỏi về màn hình laptop
                              bởi yname11
                              Ok , thanks bác đã chỉ...
                              hôm nay, 15:06
                            • nguyendinhvan
                              Công thức điện tử
                              bởi nguyendinhvan
                              Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

                              Chập thì thay. Cháy thì tháo
                              Làm thì láo. Báo thì hay
                              May thì khoe. Rủi thì bỏ
                              Thành tích nhỏ. Báo thành to
                              Làm cho có. Báo chi li
                              Sai cả li. Báo
                              ...
                              hôm nay, 00:35
                            • yname11
                              Trả lời cho Xin hỏi về màn hình laptop
                              bởi yname11
                              có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
                              Hôm qua, 22:31
                            • mèomướp
                              Trả lời cho Xin hỏi về màn hình laptop
                              bởi mèomướp
                              Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
                              Hôm qua, 22:14
                            • bactho
                              Trả lời cho Tự làm máy đo Cuộn cảm
                              bởi bactho
                              Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
                              Hôm qua, 21:48
                            • yname11
                              Trả lời cho Xin hỏi về màn hình laptop
                              bởi yname11
                              màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
                              Hôm qua, 21:43
                            • bactho
                              Trả lời cho các bạn giúp mình về file HEX với!!!
                              bởi bactho
                              Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
                              Hôm qua, 21:21
                            • mèomướp
                              Trả lời cho Xin hỏi về màn hình laptop
                              bởi mèomướp
                              Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
                              Hôm qua, 20:43
                            Đang tải...
                            X