Thông báo

Collapse
No announcement yet.

Điều khiển Động cơ DC

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

  • Điều khiển Động cơ DC

    Chào anh em.
    Mình đang có 1 vấn đề nhỏ xin thỉnh giáo mọi người.
    1. hiện mình đang tìm hiểu Timer của AVR. Mình cũng chưa hiểu được nhiều lắm trong chế độ fast PWM của Timer. Giá trị đặt Top giả sử là 0xFF thì giá trị tức thời của Timer được lưu trong thanh ghi TCNTn, khi giá trị đặt của chúng ta đặt vào OCnx. Vậy câu hỏi của mình là chu kì xung của chúng ta dc quyết định bởi giá trị Clock đúng ko? Và mình giả sử mình dung thạch anh 8MHz và dùng bộ chia tần số CLK/8 thì chu kì xung của chúng ta kéo dài trong 1/1.10^6= 10^-6(=1micro giay ) đúng ko?khi này mình muốn hỏi nếu mình dùng điều khiển 1 động cơ DC thì liệu có đảm bảo chuyển động êm dịu ko khi mình thay đổi độ rộng xung trong thời gian ngắn?
    2. nhân đây mình cũng xin hỏi luôn các bạn mình đang có 1 project nhỏ về điều khiển 1 động cơ DC. Chắc đây cũng là bài toán kinh điển đối với mồi người mới bắt đầu học VĐK. Yêu cầu bài toán mình đưa ra là điều khiển động co DC đó và hiển thị tốc độ trên máy tính, chúng ta có thể điều khiển Động cơ quay thuận, quay nghịch, tăng tốc cũng như giảm tốc động cơ. Anh em nào đã làm thì xin cho ý kiến (nếu có mạch và code xin post xin để tham khảo). mình đã có 1 phương án giải quyết dùng 4 Transistor nhưng chưa chạy được!!! mong anh em giúp đỡ nhiều. hiện tại mình đang sử dụng C để giao tiếp giữa máy tính và VĐK, nhưng mình đang có dự định chuyển sang dung 1 Tool của Matlab là xây dựng giao diện GUI, anhem nào bit thì chỉ dẫn giúp mình nhé hoặc có thể mail cho mình theo địa chỉ sau :
    vanhungk45@gmail.com

  • #2
    Nguyên văn bởi gtvt45 Xem bài viết
    Chào anh em.
    Mình đang có 1 vấn đề nhỏ xin thỉnh giáo mọi người.
    1. hiện mình đang tìm hiểu Timer của AVR. Mình cũng chưa hiểu được nhiều lắm trong chế độ fast PWM của Timer. Giá trị đặt Top giả sử là 0xFF thì giá trị tức thời của Timer được lưu trong thanh ghi TCNTn, khi giá trị đặt của chúng ta đặt vào OCnx. Vậy câu hỏi của mình là chu kì xung của chúng ta dc quyết định bởi giá trị Clock đúng ko? Và mình giả sử mình dung thạch anh 8MHz và dùng bộ chia tần số CLK/8 thì chu kì xung của chúng ta kéo dài trong 1/1.10^6= 10^-6(=1micro giay ) đúng ko?khi này mình muốn hỏi nếu mình dùng điều khiển 1 động cơ DC thì liệu có đảm bảo chuyển động êm dịu ko khi mình thay đổi độ rộng xung trong thời gian ngắn?
    2. nhân đây mình cũng xin hỏi luôn các bạn mình đang có 1 project nhỏ về điều khiển 1 động cơ DC. Chắc đây cũng là bài toán kinh điển đối với mồi người mới bắt đầu học VĐK. Yêu cầu bài toán mình đưa ra là điều khiển động co DC đó và hiển thị tốc độ trên máy tính, chúng ta có thể điều khiển Động cơ quay thuận, quay nghịch, tăng tốc cũng như giảm tốc động cơ. Anh em nào đã làm thì xin cho ý kiến (nếu có mạch và code xin post xin để tham khảo). mình đã có 1 phương án giải quyết dùng 4 Transistor nhưng chưa chạy được!!! mong anh em giúp đỡ nhiều. hiện tại mình đang sử dụng C để giao tiếp giữa máy tính và VĐK, nhưng mình đang có dự định chuyển sang dung 1 Tool của Matlab là xây dựng giao diện GUI, anhem nào bit thì chỉ dẫn giúp mình nhé hoặc có thể mail cho mình theo địa chỉ sau :
    vanhungk45@gmail.com
    1. "Mịn" là khái niệm tương đối thôi chú Hùng ạ, nếu dùng động cơ 24V cỡ nhỏ như dùng cho Robot với điều kiện Công suất ngon thì tần số này thì quá ổn rồi.
    2. Gặp Nam hoặc Nguyên để lấy shematic nhé!. Còn giao tiếp PC với AVR thì nên dùng VB làm cho dễ, chưa thấy ai dùng C bao giờ - trừ siêu cao thủ!
    Chúc chú thành công!
    Nỏ biết chữ mần răng ký được??!! Thôi nhé.

    Comment


    • #3
      1. Không rõ bác dùng trình dịch nào... CodeVision nó có sẵn công cụ CodeWizard . Bác chỉ cần khai báo Clock của thạch anh rồi trong thẻ Timers/clock value nó chính là clock của Timer mà, chỉ việc chọn thôi. đâu cần tính như 8051
      2. Dùng VB or Delphi xem ra dễ nhất... Theo em bác thử VB đi. tải thư viện Port.ddl về rồi cho vào SYSTEM 32 của Windows... rồi cứ thế chiến thôi !!!
      Cần Pord DDL và code mẫu để giao tiếp thì bác qua xem mấy bài viết của bác Ngô Hải Bắc hoặc YM cho em củng đc ... bk_express2000

      Comment


      • #4
        Hùng đang dùng trình dịch CodeVision AVR.
        anh Thắng à? Nhưng khổ lỗi em lại chưa ghé qua dc VB, và em đã giao tiếp thành công bằng C giữa PC và VDK rùi mà.

        Comment


        • #5
          Trước tiên mình sẽ post mạch mà mình đã mắc, các bạn xem đã hoàn chỉnh chưa nhé.
          Mạch của mình sử dụng 4 Transistor để điều chỉnh chiều quay của động cơ.
          2 Switch mình sử dụng để đưa 2 tín hiệu PWM từ VĐk ra thông qua mạch cách li quang có thể sử dụng 4N35, hoặc TLP621.
          Anh em nào có mạch đảo chiều quay hay mà dễ làm và kinh tế 1 chút thi post lên cho anh em tham khảo nhé.nếu mạch đã chạy thì càng tốt.
          Many thanks for advances !!!
          Okie
          Attached Files

          Comment


          • #6
            Thêm 1 vấn đề nữa mình muốn tham khảo ý kiến anh em là đo tốc độ của động cơ.
            Trước tiên mình đã suy nghĩ là làm thêm 1 động cơ nữa làm động cơ đồng tốc và đưa nó vào chân AIN0 của VĐK.( Để khỏi phải mua Encorder mà)
            Các bạn thấy ý kiến đó có khả quan khi làm ko?
            Ý của mình thế này: khi đồng tốc cho động cơ 1 chiều chúng ta thu được 1 giá trị điện áp, trước tiên mình sẽ cho động cơ quay ở tốc độ tối đa(độ rộng xung rộng 100%- xung đặc) mình sẽ thu được 1 giá trị điện áp và đưa vào đẩu vào analog của VĐK. Nhưng mình đang suy nghĩ là liệu giá trị điện áp thu được để đưa vào VĐK có tuyến tính với tốc đọ của động cơ ko?
            Các bạn có ý kiến gí góp ý cho mình nhé.
            Okie.

            Comment


            • #7
              Ui dza nhầm rùi bà con ơi. Mình phải đưa tín điện áp vào chân ADC sử dụng chức năng của ADC để đưa ra chứ.
              Chết thật.
              Nhầm nặng thế này mà mong anh em bỏ qua cho.
              Hic hic.
              Anh Thắng à?
              Cho em hỏi chút nhé: chức năng của 2 chân AINx là gì thế? Em cũng đã đọc datasheet của nó rùi nhưng chưa hiểu sâu lắm. anh giới thiệu qua cho thằng em học hỏi chút nhé.
              Anh Thắng à? Anh mail cho em mạch điều khiển động cơ của anh cho em nhé, em nhớ là trước anh có làm 1 mạch điều chỉnh chiều quay của động cơ cho Robot rùi.
              Many thanks.

              Comment


              • #8
                TO all

                sao ko thấy anh em nhắn lại thế?
                mình đang bế tắc chút. anh em xem mạch của mình ổn chưa nhé
                Attached Files

                Comment


                • #9
                  Nguyên văn bởi gtvt45 Xem bài viết
                  Ui dza nhầm rùi bà con ơi. Mình phải đưa tín điện áp vào chân ADC sử dụng chức năng của ADC để đưa ra chứ.
                  Chết thật.
                  Nhầm nặng thế này mà mong anh em bỏ qua cho.
                  Cái này còn nặng hơn đấy chú Hùng ạ, Động cơ DC là loại tải L, nếu biến nó thành máy phát thì áp, dòng ra nó không ổn định đâu, đưa vào ADC nó sẽ nhảy loạn lên- cái này chắc Chú biết nhiều hơn anh, nhớ xem lại cấu tạo động cơ DC và tính chất của nó! Tốt nhất là dùng Encoder - Cái gì mà Tây nó làm thì đừng có mà "chế" lại, đặc biệt là cho người Việt Nam- he he!
                  Nỏ biết chữ mần răng ký được??!! Thôi nhé.

                  Comment


                  • #10
                    Nguyên văn bởi gtvt45 Xem bài viết
                    Cho em hỏi chút nhé: chức năng của 2 chân AINx là gì thế? Em cũng đã đọc datasheet của nó rùi nhưng chưa hiểu sâu lắm. anh giới thiệu qua cho thằng em học hỏi chút nhé.
                    AIN0, AIN1 là 2 chân đầu vào bộ so sánh điện áp analog - giống như bộ so sánh dùng OA đó, cái này anh chưa dùng nên chỉ nói thế thôi, nói nhiều lỡ sai anh em cười chết!
                    Nỏ biết chữ mần răng ký được??!! Thôi nhé.

                    Comment


                    • #11
                      Nguyên văn bởi gtvt45 Xem bài viết
                      Hùng đang dùng trình dịch CodeVision AVR.
                      anh Thắng à? Nhưng khổ lỗi em lại chưa ghé qua dc VB, và em đã giao tiếp thành công bằng C giữa PC và VDK rùi mà.
                      Dùng VB thì cực dễ + giao diện sáng sủa, lệnh thì chỉ cần viết có mấy dòng, đừng làm C - mệt đứt hơi đó! Anh không học VB mà cũng viết đc mà. Chú xuống Tạ Quang Bửu mua lấy quyển "Lập Trình Ghép Nối Máy Tính" là làm OK ngay!
                      Nỏ biết chữ mần răng ký được??!! Thôi nhé.

                      Comment


                      • #12
                        Vâng .
                        em sẽ thử chuyển sang VB. cũng thấy mấy anh K44 có khuyên em là nên dùng VB nhưng chắc do em cứng đầu quá nên ... chưa chịu tiếp thu.
                        à anh à?em đang thử làm cái phím bấm mà chưa ổn (chỉ là điều chỉnh độ sáng của LED qua chân PORTB.2 mà chưa đc.)
                        còn code em đã xây dựng xong rùi
                        tối em post nhé
                        anh xem cho em với.
                        okie

                        Comment


                        • #13
                          Nguyên văn bởi thangktvta Xem bài viết
                          Cái này còn nặng hơn đấy chú Hùng ạ, Động cơ DC là loại tải L, nếu biến nó thành máy phát thì áp, dòng ra nó không ổn định đâu, đưa vào ADC nó sẽ nhảy loạn lên- cái này chắc Chú biết nhiều hơn anh, nhớ xem lại cấu tạo động cơ DC và tính chất của nó! Tốt nhất là dùng Encoder - Cái gì mà Tây nó làm thì đừng có mà "chế" lại, đặc biệt là cho người Việt Nam- he he!
                          vâng. em nghĩ là độ ổn định ko cao!!!
                          cái này em mò dc trên mạng đó.
                          khả năng vẫn phải dùng Encoder thôi.
                          chắc đi mượn thui.... hichic

                          Comment


                          • #14
                            anh Thắng à?
                            em đã làm xong rùi nhưng chưa dc như ý lắm.
                            okie
                            à, khi nào anh chỉ dẫn em chút kiến thức nhé
                            many thanks for you ...

                            Comment


                            • #15
                              Nếu chỉ muốn ổn định tốc độ thì có một loại cảm biến tốc độ gọi là tắc kho (nguyên bản tiếng Nga nên không viết chính xác được. hichic). Cảm biến này tạo ra điện áp tỉ lệ với tốc độ của động cơ. Loại này rẻ hơn encoder nhiều nhưng không biết ở VN có không nữa.
                              AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                              Xem thêm tại Online Store ---> Click here
                              Mob: 0982.083.106

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X