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

  • #16
    À sao mấy cậu không dung bộ đếm rồi dùng 89 đọc ra nhỉ ! như mình nói lúc ở bài truớc đó !
    Mạch nạp Little Programmer
    MSC-51,AVR,EEPROM ... etc

    Site Fukusei shop :

    Comment


    • #17
      Các bạn nêu ra những phương án ở trên chỉ dùng 1 trong tần số cao hoặc tần số thấp . Thế bác nào đã nghỉ ra cách cho con vi sử lí nó tự động chọn 1 trong những cách trên để đo tần số từ nhỏ đến lớn chưa ?Tôi thấy trong các thiết bị đo lường bây giờ đều làm được vậy. Ai làm nhiều đo lường mong được chỉ giáo

      Comment


      • #18
        Nguyên văn bởi daihang86
        Các bạn nêu ra những phương án ở trên chỉ dùng 1 trong tần số cao hoặc tần số thấp . Thế bác nào đã nghỉ ra cách cho con vi sử lí nó tự động chọn 1 trong những cách trên để đo tần số từ nhỏ đến lớn chưa ?Tôi thấy trong các thiết bị đo lường bây giờ đều làm được vậy. Ai làm nhiều đo lường mong được chỉ giáo
        Những cái đó chỉ là những cái cơ bản, bạn đọc chế độ capture/compare/cuonter của uC là sẽ giải quyết được. Bạn nên mở 1 luồng khác, tớ có thời gian sẽ chỉ cho bạn.
        Anh www9van làm tới đâu rồi?

        Comment


        • #19
          Nguyên văn bởi www9van
          Độ 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ỉ
          Nếu cái này dùng PIC thì quá tuyệt, anh sử dụng module capture hệ số *16 của PIC. Vậy tốc độ sẽ là 8 chu kỳ điện lưới. Anh làm như sau:
          Khởi tạo:
          {
          cho phép ngắt T1;
          cho phép ngắt Capture hệ số 16.
          }


          Ngắt T1:
          {
          i++;
          }


          Ngắt capture
          {
          T1L=0;//Tốt nhất =20 để tránh sai số khi vào ngắt(nên khảo sát thực tế thông số này)
          T1H=0;
          Tổng thời gian=i*65536+value_capture;//8chu kỳ điện lưới
          i=0;
          }

          Sai số có thể đến: 0.2 uS/(8*20ms)=0.2/160.000=0.000125 %.
          Hihi... quá nhỏ nhỉ?

          Comment


          • #20
            Theo tui thì thế này , đo trực tiếp tần số 50Hz thì dễ sai số lớn lắm , chi bằng ta làm thêm 1 mạch nhân tần (VD nhân lên 100 lần), sau đó sẽ đo tần số này. Nếu 1s lấy mẫu 1 lần thì sai số cũng chỉ 0.01% .

            Comment


            • #21
              Hihi... cách của em là nhất rồi.
              Cách của anh có phải đếm số xung trong 1s không?vậy sai số là 1% chứ ko phải là 0.1% đâu..hihi..

              Comment


              • #22
                À, đó là chia tần chứ anh nhỉ?

                Comment


                • #23
                  Mình nói câu này ! Cứ suy nghỉ nhé ! Trong một thời điểm thì vdk pic chỉ có thể chạy được một ứng dụng duy nhất thôi ! nên vì thế muốn dùng counter hay gì gì khác thì chĩ dùng nó để đảm bảo độ chính xác . còn nếu xen lẫn thì tính chính xác không còn cao nữa . Nếu bạn dùng LCD text để hiển thị thì sẽ cao hơn là dùng Led vì phải mất thời gian quét led trong khi quét led thì chúng ta đã mất đi một khoảng thời gian rồi ( tính chính xác còn đâu ? ) . Nên bọn nước ngoài nó thường dùng bộ đếm ngoài là vậy . còn nếu hiển thị thì nó dùng luôn LCD hay gì đó mà tốn ít thời gian cập nhật nhất .
                  Mạch nạp Little Programmer
                  MSC-51,AVR,EEPROM ... etc

                  Site Fukusei shop :

                  Comment


                  • #24
                    Nguyên văn bởi phucthinhel
                    Mình nói câu này ! Cứ suy nghỉ nhé ! Trong một thời điểm thì vdk pic chỉ có thể chạy được một ứng dụng duy nhất thôi ! nên vì thế muốn dùng counter hay gì gì khác thì chĩ dùng nó để đảm bảo độ chính xác . còn nếu xen lẫn thì tính chính xác không còn cao nữa . Nếu bạn dùng LCD text để hiển thị thì sẽ cao hơn là dùng Led vì phải mất thời gian quét led trong khi quét led thì chúng ta đã mất đi một khoảng thời gian rồi ( tính chính xác còn đâu ? ) . Nên bọn nước ngoài nó thường dùng bộ đếm ngoài là vậy . còn nếu hiển thị thì nó dùng luôn LCD hay gì đó mà tốn ít thời gian cập nhật nhất .
                    Vậy bạn chưa hiểu hoạt động của uC rồi.
                    uC noi chung đều có những module hoạt động gần như độc lập với uC. Các lệnh trong bộ nhớ chương trình cứ thực thi,nhưng những module khác vẫn chạy song hành. uC chỉ can thiệp khi cần thiết.

                    Comment


                    • #25
                      Mình biết là như thế ! nhưng để vdk hoạt động thì cần đến bộ xử lý của nó ! bạn có thể làm thí nghiện như sau . Lấy một encoder nhé ! cở chừng 300 xung một vòng thôi ! bạn quay nó và hiển thị ra led . Cứ làm như thế nếu không làm thì suy nghĩ qua cũng không sao . Rồi bàn luận sau .
                      Mạch nạp Little Programmer
                      MSC-51,AVR,EEPROM ... etc

                      Site Fukusei shop :

                      Comment


                      • #26
                        Nguyên văn bởi phucthinhel
                        Mình biết là như thế ! nhưng để vdk hoạt động thì cần đến bộ xử lý của nó ! bạn có thể làm thí nghiện như sau . Lấy một encoder nhé ! cở chừng 300 xung một vòng thôi ! bạn quay nó và hiển thị ra led . Cứ làm như thế nếu không làm thì suy nghĩ qua cũng không sao . Rồi bàn luận sau .
                        Bạn nên tạo một luồng mới,mình sẽ hướng dẫn bạn cách làm tốt việt trên, bởi luồng này bàn về vấn đề khác. Bạn mở luồng và nói rõ yêu cầu của bạn, encoder có những lối ra nào(thường A,B, và Z), hiển thị ra vị trí hay tốc độ...Việc giải quyết tốt một bài toán phụ thuộc vào thiết kế phần cứng và phần mềm

                        Comment


                        • #27
                          Vậy là bạn không hiểu rõ ý mình rồi ! Bây giờ bạy lấy tay quay cái encoder đó ! mà những cái encoder thì ma sát rất là thấp . Nên bây giờ mình dùng nó như là đếm tầng số như bạn đã nói thôi . Thì mình tính đơn giản thế này nhé một cái encoder quay có 300 xung vòng mà cho nó là 1s quay 10 vòng đi ( 3000 xung tương đương 3Khz thôi ) cho dễ nha . Mà U phai quay liên tục không được dừng nha , để đảm bảo thôi . Cách đo tầng số chủ yếu là đo số lần dao động trong 1s thôi mà ! .

                          3T gì gì đó ! bạn nên làm thử một cái mạch đo tầng đi . Hiển thị bằng LCD , hay LED gì đó cũng được ( nhưng nên dùng LCD sai số thấp hơn ). Rồi bạn cũng sẽ gặp vấn đề nhưn mình đã từng gặp thôi . Mọi chuyện sẽ không hoàn toàn như lý thuyết đâu !
                          Mạch nạp Little Programmer
                          MSC-51,AVR,EEPROM ... etc

                          Site Fukusei shop :

                          Comment


                          • #28
                            Vậy đề nghị bạn mở 1 luồng khác đi.Nó khó với bạn nhưng dễ với mình

                            Comment


                            • #29
                              Đừng tư tin như thế ! Mình không phải là wá bình thường !
                              Mạch nạp Little Programmer
                              MSC-51,AVR,EEPROM ... etc

                              Site Fukusei shop :

                              Comment


                              • #30
                                http://dientuvietnam.net/forums/show...2909#post12909
                                Bạn phucthinhel post bài tại luồng mình mới tạo nhé, các bài trên mình sẽ xóa vì ko hợp chủ đề

                                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