Thông báo

Collapse
No announcement yet.

Mạch đo tần số điện lưới dùng MCU

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

  • #31
    Cách của TRANG như đã nói ở đầu đề là khá hay và mình cũng đã làm qua.
    Nhưng dùng đến 2 ngắt và điều cần quan tâm nữa là thời gian LATENCY của vi điều khiển nếu bạn quan tâm đến sai số và tần số cao!
    Một mạch thí nghiệm đơn giản để làm một máy đo tần số điện lưới là:
    Dùng một tranisistor C1815 + 8051
    C1815 có nhiệm vụ đổi dạng sóng sine ra vuông, rồi đưa vào ngắt ngoài INT0 hoặc INT1
    8051 dùng 2 ngắt: TIMER mode 8bit autoreload, tạo ra 1s.
    Và một ngắt ngoài INT0 hoặc INT1 để đếm xung, số xung này lưu trong 1 thanh ghi 8 bit-->Max 256 xung trong 1s. Như vậy cái Máy đo của chúng ta sẽ đo được một tần số lớn nhất là: Max_f=256Hz( tần số là số xung nhận được trong 1s).
    Latency của 8051 hình như 7-->9chu kỳ lệnh nên ko quan tâm đến sai số nữa, tạm bỏ qua ở giải đo này( chưa cần).
    Sau đó cho hiển thị lên 3 con LED 7 đoạn.
    Lưu ý: Dùng ngắt đó nha, nên chuyện quyét LED xem như ko có và do đó mục đích chính của 8051 trong chuyện này vẫn là đo tần số.

    Comment


    • #32
      tùy bạn thôi ! Đối với mình thì điều đó không quan trọng .Vì mình là thế ! Sống bất cần đời mà ! hi hi
      Mạch nạp Little Programmer
      MSC-51,AVR,EEPROM ... etc

      Site Fukusei shop :

      Comment


      • #33
        Nguyên văn bởi MicroDuyphi
        Lưu ý: Dùng ngắt đó nha, nên chuyện quyét LED xem như ko có và do đó mục đích chính của 8051 trong chuyện này vẫn là đo tần số.
        Việc quét led thì dùng giải pháp này sẽ ko bị chiếm dụng ảnh hưởng đến thời gian hay ngắt.
        Trong hàm main()
        {
        if(T2IF)
        {
        nạp giá trị phù hợp;
        quét led;
        T2IF=0;
        }
        ....
        }

        T2 là một timer nào đó, và ko dùng ngắt cho timer này. Tất nhiên nếu dùng ngắt T2 này cho 8951 cũng vẫn có thể được, bởi còn có giải pháp ưu tiên ngắt trong ngắt nữa đó.

        Comment


        • #34
          nếu không dùng ngắt thì nếu tần số nhập vào wá cao xem như Led tắt đèn , tối thui , cúp điện ! hi hi . Đã nói là nên dùng LCD rồi mà ! hi hi
          Mạch nạp Little Programmer
          MSC-51,AVR,EEPROM ... etc

          Site Fukusei shop :

          Comment


          • #35
            Nguyên văn bởi phucthinhel
            nếu không dùng ngắt thì nếu tần số nhập vào wá cao xem như Led tắt đèn , tối thui , cúp điện ! hi hi . Đã nói là nên dùng LCD rồi mà ! hi hi
            Hihi....bạn tính ra thời gian đi. Bạn nên xem lại tư duy lập trình của bạn. Và nên nói cụ thể hơn, chứ nói màko dẫn chứng được thì ko giá trị

            Comment


            • #36
              Lúc trước bạn nói bạn làm được mà ! thì mình cho bạn làm đó ! Mình rất thoải mái mà .Nói cho bạn rõ !
              Nếu dùng LCD thì thời gian update dử liệu sẽ tốn ít thời gian hơn là dùng Led đễ hiển thị ( nếu dùng phương pháp quét ) .
              Nếu dùng phương pháp đếm xung và dùng một bộ định thời với thời 1s thì cái đếm xung thì nó không được mức ưu tiên cao nhất vì sao ? Vì nếu dùng như thế thì lở cái xung vào nhanh wá thì vdk xử lý nó và sẽ không thể nào xử lý được các phần khác . Còn nếu dùng LCD thì sau 1s nó được cập nhật data một lần ( sai số ít hơn ) . Nếu dùng Led thì dùng timer để quát led cũng nên thận trọng trong wá trình xử lý ( nên khi quét led phải tính toán thật kỹ , nhiều khi ta còn phải offset cáo giá trị nữa ) .
              Nếu dùng mode counter thì không chính xác vì giá trị counter lúc này phụ thộc nhiều vào tần số thạch anh .
              Nên như mất you thấy bọn nước ngoài chúng không bao giờ đếm tần số cao đưa trực tiếp vào vdk cả mà phải wa một tầng nào đấy thì mới tới chân vào vdk .
              Mạch nạp Little Programmer
              MSC-51,AVR,EEPROM ... etc

              Site Fukusei shop :

              Comment


              • #37
                Không trả lời thì bạn lại nghĩ là mình ko biết, nhưng trả lời cũng sợ bạn đọc không hiểu. Tốt nhất bạn đặt lại bài toán một cách rõ ràng, mình sẽ giải giúp bạn, tốt nhất có cả phần cứng nữa.

                Comment


                • #38
                  Cho xen vào được không...
                  LCD hay LED thì mắt người cũng đáp ứng chậm hơn rất nhiều.
                  Vậy giá trị con người cần đọc là gì?
                  Vẫn biết mỗi lần xa là một lần về lại...

                  Comment


                  • #39
                    Sách đo lường dạy thế này (may mà vẫn còn nhớ!):
                    - Với tần số thấp (so với cấu hình của mạch) thì dùng phương pháp đo độ rộng của xung để tính ra tần số. 50Hz là quá thấp rồi.
                    - Với tần số cao thì đếm số xung trong 1 đơn vị thời gian để tính tần số.

                    Sai số các phương pháp đều trong sách, ngại trích dẫn lắm! Nhưng đều rất nhỏ, quan trọng là làm cho tốt.
                    Vì bài toán đã biết rõ khoảng tần số cần đo nên sẽ dễ dàng tính toán để đạt độ chính xác rất cao.
                    PNLab
                    Mạch nạp/debug ULink2, Jlink ARM USB
                    Mạch nạp AVR, PIC, 8051, MSP430 USB
                    Mạch phát triển STM32, ARM9, ARM11
                    more...www.pnlabvn.com

                    Comment


                    • #40
                      BÁc phải nói rõ sách chứ !Ví như cơ sở kĩ thuật đo của thầy nguyễn trọng quế,phương pháp đo và thiết bị đo của cùng tác giả,đo lường các đại lượng vất lý của thầy Phạm Thượng HÀn,Nếu không các bạn ấy làm sao mà tìm được.
                      Nếu tại hạ nhận không nhầm thì bác Sphinx này cũng là dân 3I phải không.

                      Comment


                      • #41
                        No no! Đã từng học cùng 3I! Biết lớp nào rồi chứ!
                        Giáo trình môn Đo Lường của cô Hương thì tìm sao được nhỉ???
                        Ơ! mà cái này sách nào chả có, vừa mới thấy trong quyển Cơ Sở Kỹ Thuật Đo Lường Điện Tử mà kì này ĐTVT47 học!
                        PNLab
                        Mạch nạp/debug ULink2, Jlink ARM USB
                        Mạch nạp AVR, PIC, 8051, MSP430 USB
                        Mạch phát triển STM32, ARM9, ARM11
                        more...www.pnlabvn.com

                        Comment


                        • #42
                          Lão AC tên gì thì khai tên ra đi bạn còn một cuốn của cô Hương đó bạn sẽ cho mượn !!!

                          Comment


                          • #43
                            cách uPHi rất đơn giản về HW như cũng có 2 điểm chú ý:
                            + Timer AR 1s -> 1s mới update được data ???
                            + Trong 1s có 256 giá trị -> 0-255 hz -> sai số là bao nhiêu ???

                            Comment


                            • #44
                              Nguyên văn bởi thaithutrang
                              Việc quét led thì dùng giải pháp này sẽ ko bị chiếm dụng ảnh hưởng đến thời gian hay ngắt.
                              Trong hàm main()
                              {
                              if(T2IF)
                              {
                              nạp giá trị phù hợp;
                              quét led;
                              T2IF=0;
                              }
                              ....
                              }

                              T2 là một timer nào đó, và ko dùng ngắt cho timer này. Tất nhiên nếu dùng ngắt T2 này cho 8951 cũng vẫn có thể được, bởi còn có giải pháp ưu tiên ngắt trong ngắt nữa đó.
                              Cách này cũng là một trong các cách để hiển thi LED với thời gian ước trước theo định kỳ, đảm bảo rằng LED vẫn hiện thị tốt dưới một thời gian cho phép!

                              Comment


                              • #45
                                Nguyên văn bởi www9van
                                cách uPHi rất đơn giản về HW như cũng có 2 điểm chú ý:
                                + Timer AR 1s -> 1s mới update được data ???
                                + Trong 1s có 256 giá trị -> 0-255 hz -> sai số là bao nhiêu ???
                                Xin lỗi anh VÂN, Phi sơ ý quá, một thanh ghi 8bit thì có: 00-->255 mặc dù trọng số của nó là 256 nên chỉ có 255 xung/s-->Max_f=255Hz.
                                Chân thanh Xin lỗi anh chị em.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X