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

  • phucthinhel
    replied
    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 !

    Leave a comment:


  • www9van
    replied
    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ì ?

    Leave a comment:


  • thaithutrang
    replied
    -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

    Leave a comment:


  • thaithutrang
    replied
    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;
    }

    }

    Leave a comment:


  • thaithutrang
    replied
    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:

    Leave a comment:


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

    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 !!!!

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