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

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

    Ai có mạch, phương pháp gì hay cùng Post lên cho các anh em tham khảo !!!!

  • #2
    Nguyên văn bởi www9van
    Ai có mạch, phương pháp gì hay cùng Post lên cho các anh em tham khảo !!!!
    Đầu tiên làm mạch nắn và khuếch đại, chuyển mức, biến phasa K*PI thành xung. Tốt nhất nên dùng thêm 1 tầng trigơr smitt để chống nhiều(nếu chân MCU đã có thì ko cần tầng này).
    -Anh dùng ngắt ngoài, mỗi lần có ngắt thì đọc giá trị timer(x=65536-TimerH*256-TimerL) và nạp giá trị 0 cho timer(TimerH=TimerL=0). Vậy ta tính được 1/2 chu kỳ-->nhân 2 rồi nghịch đảo sẽ ra tần số. Nên tính trung bình tăng độ chính xác.
    Ví dụ mã nguồn như sau:
    Khởi tạo
    {
    Cho phép ngắt ngoài.
    chạy timer1 16 bit;
    }

    Ngắt ngoài:
    {
    x+=65536-(T1H<<8+T1L);
    T1H=T1L=0;
    if(++i=2)
    {
    Lấy nghịch đảo giá trị x là tần số;
    x=0;
    }
    //Chú ý thêm một số lệnh để chặt chẽ lời giải.

    Nhưng theo em thì nên giải ý tưởng này là hay nhất:

    Comment


    • #3
      Lời giải như sau:
      Gọi số lần tràn của T1 là i;
      Gọi số lần ngắt của pha k*pi là j;
      Dùng 2 ngắt: T1 và ngắt ngoài.

      Ngắt T1:
      {
      i++;
      }

      Ngắt ngoài:
      {
      if(++j=100)
      {
      T1ON=0;
      Đọc giá trị Timer1: x=65536-(T1H<<8+T1L);
      T1H=0;
      T1ON=1;
      T1L=0;
      x+=65536*i;
      Tần số = 50/x;//trong đó x là tổng số xung của CLKT1 trong 100 lần phase K*pi
      i=0;
      j=0;
      }

      }

      Comment


      • #4
        -Ngoài ra dùng cách đếm số xung trong một đơn vị thời gian, nhưng có vẻ ko chính xác bằng mấy cách trên

        Comment


        • #5
          Tớ lại thấy mọi người hay dùng p2 đếm xung.
          Phương pháp mà 3T đưa gọi là p2 gì vậy?, sai số ntn ? phụ thuộc vào các yếu tố gì ?

          Comment


          • #6
            Dùng ngắt đếm thì đúng rồi ! nhưng hãy cẩn thận cới tần số cỡ 400hz trở lên nhé ( với tần số thấp thì không sao nhưng với tần số cao thì có vấn đề , bạn nào làm rồi thì sẽ biết ) ! Mình đã làm cách này rồi . đầu vào của mình chỉ đơn giản dùng con diode và con điện trở sao đó đưa vào con opto và đầu ra đưa cào chân ngắt thôi .
            Nếu muốn tăng độ chính xác thì nên dùng con đếm chuyên dụng , như là con PCF8583 ( dùng mode đếm ) khi đó cứ sau 1s thì cập nhật data trong nó là xong , còn chê mắc thì dùng con 4020 hoặc 4040 cũng xong thôi tính chính xác rất cao nữa !
            Mạch nạp Little Programmer
            MSC-51,AVR,EEPROM ... etc

            Site Fukusei shop :

            Comment


            • #7
              Cách đơn giản nhất là dùng 1 bộ phát xung chuẩn , sau đó dùng mạch AND để and giữa xung chuẩn và tần số cần đếm , đầu ra đưa vào int.
              Chương trình chỉ cần đếm số xung là suy ra được tần số cần đo.
              F=n*fx.
              (fx:tần số phát chuẩn
              n : số xung đếm được
              F :tần số cần đo.
              Sai số phụ thuộc chủ yếu vào tần số phát chuẩn
              )

              Comment


              • #8
                Đếm xung ? giữa 2 lần ngắt hay ntn ? đề nghị bác trung_kt giải thích thêm!

                Comment


                • #9
                  Đếm xung ? giữa 2 lần ngắt hay ntn ? đề nghị bác trung_kt giải thích thêm!

                  Comment


                  • #10
                    Nguyên văn bởi www9van
                    Đếm xung ? giữa 2 lần ngắt hay ntn ? đề nghị bác trung_kt giải thích thêm!
                    Phương pháp này cũng chỉ chính xác tương đương cách của em post ở trên thôi, thậm chí phần cứng nó phức tạp hơn.

                    Comment


                    • #11
                      có rất nhiều cách đo tần số khác nhau, tuy nhiên ta hay chọn lấy 1 phương pháp đạt nhưng tiêu chí sau:
                      + ổn định
                      + sai số nhỏ
                      + Ngoài 1 MCU ->Dùng thêm ít nhất các linh kiện, IC có thể -> ít hỏng hơn, tiêu thụ năng lượng ít hơn.
                      + Dễ thực hiện hay nói cách khác là tính khả thi cao.

                      lưu ý ở đây là đo tần số điện lưới (50Hz) -> yêu cầu về sai số là quan trọng nhất
                      Thông thường f trên lưới quốc gia chỉ cho phép dao động từ 49,80Hz -> 50,20Hz

                      Comment


                      • #12
                        hey, mình vừa post 1 bài, sao ko thấy đâu. Mặc dù ngoài trang chủ nhìn thấy -> vào xem thì rỗng ko !!! BQT nên xem lại có vấn đề gì ko ? cả chức năng Search nữa chứ ?

                        Comment


                        • #13
                          Anh cần sai số bao nhiêu %? tốc độ cần cao ko? nghĩa là bao nhiêu lần trên 1 giây?

                          Comment


                          • #14
                            Độ chính xác sau 2 dấu phẩy, tức 0.01%. T lấy mẫu ko cần nhanh, khoảng 10 chu kỳ tần số lứoi lấy 1 lần là được tức là T= 10*1/50 = 0,2s hay nói cách khác là khoảng 5 lần/s. Mạch chạy 24/24

                            Comment


                            • #15
                              Độ chính xác sau 2 dấu phẩy, tức 0.01%. T lấy mẫu ko cần nhanh, khoảng 10 chu kỳ tần số lứoi lấy 1 lần là được tức là T= 10*1/50 = 0,2s hay nói cách khác là khoảng 5 lần/s. Mạch chạy 24/24 ko ngừng nghỉ

                              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