Thông báo

Collapse
No announcement yet.

Điều chế độ rộng xung

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

  • Điều chế độ rộng xung

    Ví dụ về điều chế xung
    Attached Files
    Càng biết nhiều càng thấy mình biết ít.

  • #2
    Chương trình viết bằng asm

    Chương trình chính
    Attached Files
    Càng biết nhiều càng thấy mình biết ít.

    Comment


    • #3
      Chương trình con tạo trế

      Chương trình con
      Càng biết nhiều càng thấy mình biết ít.

      Comment


      • #4
        Chương trình viết bằng C, (phần mềm Proview)

        Đoạn chương trình điều chế xung viết bằng C
        Attached Files
        Càng biết nhiều càng thấy mình biết ít.

        Comment


        • #5
          Dùng 1 timer giải quyết bài toán PWM.

          Ngoài cách của ATYLA đưa ra, cũng có một vài cách khác. Tui đưa ra 1 cách mà tui cho là khá tối ưu. Chỉ cần một Timer là giải quyết được. bài toán trên, ko mất nhiều thời gian chờ cho vi điều khiển 89C51 của ATMEL thông dụng. Cách thức thực hiện như sau:

          Gọi chu kỳ là T;
          Khai báo biến: x,y,Index. Trong đó:
          x là độ rộng xung cao;
          ylà độ rộng xung thấp;//Nên x+y=T
          Index là kiểu bit: 1 chỉ số ứng với xung cao, 0 ứng với chỉ số xung thấp;
          Cài đặt ngắt Timer;
          //Ngắt timer
          if(Index)
          {
          Đặt chân PWM lên mức cao;
          Nạp thời gian timer=x;//Phần cao
          }else
          {
          Đặt chân PWM xuống mức thấp;
          Nạp thời gian timer=y;//Phần thấp
          }
          Index=Not(Index);//đảo trạng thái biến chỉ số
          //Kết thúc ngắt timer

          Trong main(); khi thay đổi độ rộng, chỉ cần x=Value,y=T-x;

          Tuy nhiên có thể dùng giải pháp 2 timer, một cái để định thời cho chu kỳ, cái còn lại để định thời cho độ rộng xung cao.

          Do 89c51 của ATMEL ko tích hợp PWM, bởi vậy, nếu sử dụng trong những ứng dụng đòi hỏi cấp chính xác cao thì các giải pháp trên phải tính đến thời gian: thời gian đáp ứng và xử lý ngắt, thời gian mã lệnh để bù trừ.
          Attached Files

          Comment


          • #6
            cho mình hỏi điều khiển PWM là thay đổi thời gian tồn tại mức xung cao trong khi tần số không thay đổi vậy tần số để điều khiển cho động cơ DC là bao nhiêu vậy?
            Trong một số dong VDk có tích hợp các kênh PWM vậy sử dụng nó để tạo xung điều khiển đông cơ có gì khác?
            Tai hạ ngu muội xem nhiều rồi nhưng vẫn không hiểu dược vấn đề này nhờ các huynh chỉ giao giúp

            Comment


            • #7
              anh co the giai thich cho em asm duoc khong
              trong asm khong co cach nao de goi ham con nhu trong C
              |

              Comment


              • #8
                Mình dùng cách này để tạo độ rộng xung cũng chỉ dùng 1 timer, không biết có hiệu quả không!

                //Giả sử xung ra ở chân P10, có độ rộng 30%, chu kì xung 1ms
                unsigned char đếm=0;
                void main(void)
                {
                P10=0;
                Khtao_T0(1ms);
                while(1);
                }

                void Ngat_T0(void) interrupt 1
                {
                đếm++;
                if(đếm==30) P10=0;
                if(đếm==100) {P10=1;đếm=0;}

                }
                !e

                Comment


                • #9
                  Trong asm không có hàm con có đối số, nhưng bạn có thể dùng nhãn và lệnh call hay acall với thông số đc đặt sẵn trươc khi gọi nó thì nó sẽ thực thi như một chương trình con. Cuối chương trình con này bạn để lệnh ret. Dùng asm sẽ dễ tính ra thời gian hơn và ta có thể chính xac hóa thời gian nữa dựa trên số câu lệnh và thời gian thực hiện mỗi lệnh. ^^

                  Comment


                  • #10
                    Pwm

                    Nguyên văn bởi BinhAnh Xem bài viết
                    Ngoài cách của ATYLA đưa ra, cũng có một vài cách khác. Tui đưa ra 1 cách mà tui cho là khá tối ưu. Chỉ cần một Timer là giải quyết được. bài toán trên, ko mất nhiều thời gian chờ cho vi điều khiển 89C51 của ATMEL thông dụng. Cách thức thực hiện như sau:

                    Gọi chu kỳ là T;
                    Khai báo biến: x,y,Index. Trong đó:
                    x là độ rộng xung cao;
                    ylà độ rộng xung thấp;//Nên x+y=T
                    Index là kiểu bit: 1 chỉ số ứng với xung cao, 0 ứng với chỉ số xung thấp;
                    Cài đặt ngắt Timer;
                    //Ngắt timer
                    if(Index)
                    {
                    Đặt chân PWM lên mức cao;
                    Nạp thời gian timer=x;//Phần cao
                    }else
                    {
                    Đặt chân PWM xuống mức thấp;
                    Nạp thời gian timer=y;//Phần thấp
                    }
                    Index=Not(Index);//đảo trạng thái biến chỉ số
                    //Kết thúc ngắt timer

                    Trong main(); khi thay đổi độ rộng, chỉ cần x=Value,y=T-x;

                    Tuy nhiên có thể dùng giải pháp 2 timer, một cái để định thời cho chu kỳ, cái còn lại để định thời cho độ rộng xung cao.

                    Do 89c51 của ATMEL ko tích hợp PWM, bởi vậy, nếu sử dụng trong những ứng dụng đòi hỏi cấp chính xác cao thì các giải pháp trên phải tính đến thời gian: thời gian đáp ứng và xử lý ngắt, thời gian mã lệnh để bù trừ.
                    Bác Binhanh có thể cho hỏi?
                    -Giả sử tui muốn dùng vi điều khiển để điều chế độ rộng xung của một tín hiệu xoay chiều hình sin tần số 50Hz, biên độ khoảng 0-5V thì làm thế nào?. Vì theo tui biết thường vi điều khiển không làm việc với tín hiệu xoay chiều. Bác giải thích giúp nhé.

                    Comment


                    • #11
                      Nguyên văn bởi ksngoc Xem bài viết
                      cho mình hỏi điều khiển PWM là thay đổi thời gian tồn tại mức xung cao trong khi tần số không thay đổi vậy tần số để điều khiển cho động cơ DC là bao nhiêu vậy?
                      Trong một số dong VDk có tích hợp các kênh PWM vậy sử dụng nó để tạo xung điều khiển đông cơ có gì khác?
                      Tai hạ ngu muội xem nhiều rồi nhưng vẫn không hiểu dược vấn đề này nhờ các huynh chỉ giao giúp
                      Tần số để điều khiển cho động cơ DC là bao nhiêu phụ thuộc vào đặc tính động học của động cơ.
                      Đối với VĐK có tích hợp các kênh PWM sẽ làm việc chính xác, đơn giản trong việc lập trình.Mỗi chế độ PWM phù hợp với những ứng dụng khác nhau, không chỉ trong điều khiển động cơ.
                      dientuvietnam.net

                      Comment


                      • #12
                        Nguyên văn bởi saoxathu Xem bài viết
                        Tần số để điều khiển cho động cơ DC là bao nhiêu phụ thuộc vào đặc tính động học của động cơ.
                        Đặc tính động học bao gồm những đặc tính gì vậy (đừng nói là tần số quay của động cơ nhé) ?
                        be kind, be sweet, be human

                        Comment


                        • #13
                          Pac ITALY

                          Nguyên văn bởi ATYLA Xem bài viết
                          Chương trình chính
                          Trong cái code bằng c pác viết tính độ rộng xung thế nào đây pác nhỉ ? xin chỉ giáo !

                          Comment


                          • #14
                            mọi người cho em hỏi:em muốn tăng giảm tốc độ động cơ bằng điều chế xung PWM dùng 8051.mạch yêu cầu có nút điều chỉnh tăng giảm tốc độ.xung đưa vào mạch cầu H thì làm thế nào ạ????mọng mọi người giúp đỡ!(khi lập trình thay đổi biến delay)
                            ĐẠI HỌC SƯ PHẠM KỸ THUẬT I

                            Nợ cha một sự nghiệp - Nợ mẹ một nàng dâu

                            Comment


                            • #15
                              Trong con 89V51 thì có 5 kênh PWM, tần số xung là 1/256us = 3,906Khz.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              • tuyennhan
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi tuyennhan
                                Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
                                Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
                                hôm nay, 07:44
                              • vi van pham
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi vi van pham
                                Cám ơn những lời chúc tốt đẹp của em.

                                Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                                Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                                hôm nay, 02:00
                              • nhathung1101
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi nhathung1101
                                Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                                Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                                Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                                Hôm qua, 22:18
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                                Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                                Hôm qua, 14:51
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                                Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                                Hôm qua, 14:39
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                                Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                                Hôm qua, 14:28
                              • bqviet
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi bqviet
                                Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                                21-02-2025, 20:26
                              • mèomướp
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi mèomướp
                                Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                                21-02-2025, 12:32
                              • vi van pham
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi vi van pham
                                Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                                Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                                20-02-2025, 21:31
                              • bqviet
                                Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                bởi bqviet
                                Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                                20-02-2025, 17:22
                              Đang tải...
                              X