Thông báo

Collapse
No announcement yet.

ITX tự chế máy đo L C với atmega8 hiển thị với LCD16*2

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

  • ITX tự chế máy đo L C với atmega8 hiển thị với LCD16*2

    Cuộn cảm trong phạm vi: 0.1μH ~ 2H
    Tụ trong: 1pF ~ 2.5μF
    Tụ hóa: 0.1μF ~ 30000μF

    áp dụng vài công thức ta đã biết:
    Attached Files
    Từ chối trách nhiệm:
    Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
    Blog: http://mritx.blogspot.com

  • #2
    và thành quả
    Attached Files
    Last edited by itx; 17-08-2009, 10:13.
    Từ chối trách nhiệm:
    Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
    Blog: http://mritx.blogspot.com

    Comment


    • #3
      tiếp theo một số hình ảnh lcd hiển thị
      Attached Files
      Last edited by itx; 17-08-2009, 10:14.
      Từ chối trách nhiệm:
      Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
      Blog: http://mritx.blogspot.com

      Comment


      • #4
        Bác có sơ đồ nguyên lý ko đưa lên anh em xem với, chứ làm ko như thế này sao mà hiểu đc nó hoạt động thế nào..

        0988467839

        Comment


        • #5
          Trông cũng đẹp và gọn lắm đấy! Đã đo chúng rồi, bạn thấy có ổn định không? Sai số nhỏ thôi chứ? Đợt trước mình có tập làm theo cái mạch của 1 tác giả trên mạng, lâu lâu đo 1 lần thì khá chính xác nhưng đo lâu lâu thì toàn bị trôi giá trị đến hết đường quay về luôn.
          !e

          Comment


          • #6
            Nguyên văn bởi zemen Xem bài viết
            Trông cũng đẹp và gọn lắm đấy! Đã đo chúng rồi, bạn thấy có ổn định không? Sai số nhỏ thôi chứ? Đợt trước mình có tập làm theo cái mạch của 1 tác giả trên mạng, lâu lâu đo 1 lần thì khá chính xác nhưng đo lâu lâu thì toàn bị trôi giá trị đến hết đường quay về luôn.
            có chín xác hay không có bị trôi giá trị hay không đề do sai số của linh kiện làm mạch đo vì thế nên phải chọn linh kiện làm mạch loại tốt, bạn nên nhớ rằng độ chính xác của dụng cụ đo là do linh kiện làm ra nó, nếu xem kĩ hình sẽ thấy ITX dùng điện trở kim loại, tụ nhật nhưng cái quan trọng là mỗi linh kiện đều được đo kiểm cẩn thận trước khi ráp nhằm tạo độ chính xác cao.
            Từ chối trách nhiệm:
            Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
            Blog: http://mritx.blogspot.com

            Comment


            • #7
              ủa, cái này muốn đo phải cắm trực tiếp linh kiện vào 2 lỗ đó hả, có dùng được que đo không vây bác?
              cho tui hỏi ngoài luồng 1 tí, cái tấm PCB đó loại dẻo, bác mua ở đâu thế, giá cả thế nào? cho mình vài thông tin về nó nhé. thanks.

              Comment


              • #8
                Hé hé , đang làm project đo tụ điện , copy khẩn về ngâm cứu .
                Thanks đại ca nhiều , đỡ quá .
                Cái gì người khác làm được , mình cũng làm được !

                Comment


                • #9
                  Nguyên lý hoạt động

                  Nguyên lý đo giá trị L hoặc C của mạch này dựa vào phương pháp dịch tần.

                  Với một dao động L và C ban đầu của mạch -> đo được tần số f1

                  f1 = 1/(2*pi*sqrt(L*C))

                  Đo Cx:
                  Gắn song song Cx với C trong mạch -> đo được tần số f2 (f2 < f1)

                  f2 = 1/(2*pi*sqrt(L*(C+Cx)))

                  => Cx = C * ( (f1^2/f2^2) - 1) )

                  Trong đó 3 giá trị C, f1, f2 đã biết => tính được Cx

                  Đo Lx:
                  Gắn nối tiếp Lx với L trong mạch -> đo được tần số f3 (f3<f1)

                  f3 = 1/(2*pi*sqrt((L+Lx)*C)))

                  => Lx = L * ( (f1^2/f3^2) - 1) )

                  Trong đó 3 giá trị L, f1, f3 đã biết => tính được Lx



                  LM311 có nhiệm vụ chuyển sóng sin của mạch dao động (tần số cộng hưởng của LC) thành xung vuông đưa vào MCU-AVR. LM311 hoạt động như một bộ so sánh điện áp.

                  MCU có nhiệm vụ chính là đo tần số bằng cách tổng đếm số xung nhận được trong 1s. Mỗi lần đo tần số, AVR sẽ thiết lập clock của bộ timer dùng ext clock (clock ngoài), giá trị trong thanh ghi đếm TCNTx tăng lên 1 mỗi lần có xung vào. Dùng một timer khác để xác định khi nào đủ 1s, tổng số xung đếm được trong 1s chính là tần số của mạch LC.

                  Comment


                  • #10
                    Bàn về độ chính xác của mạch đo LC

                    Độ chính xác của mạch đo LC phụ thuộc vào các yếu tố sau:

                    1. Sai số do phép đo tần số
                    2. Sai số do giá trị tụ tham chiếu
                    3. Sai số do giá trị cuộn cảm tham chiếu
                    4. Sai số do C, L ký sinh trong mạch
                    5. Sai số do nhiệt độ ...


                    1. Sai số do phép đo tần số:
                    Phụ thuộc vào thạch anh và giải thuật tính tần số.
                    Thường thì sai số của thạch anh ngoài rất nhỏ và không ảnh hưởng nhiều đến kết quả đo trong trường hợp này.
                    Giải thuật đếm xung cần phải xem xét vì có ảnh hưởng nhiều đến phép đo. Nếu tính toán thời gian 1s không chính xác hoặc lệnh không tối ưu -> gây nên sai số.
                    Sai số nên nằm trong khoảng +/- 200Hz thì chấp nhận được (tương ứng 0.1uH)

                    Có thể xác định sai số bằng cách 2 cách sau:
                    Cách 1: Dùng phần mềm giả lập Protues, tạo một nguồn xung vuông đầu vào chân T1 và hiển thị trên LCD để kiểm tra.
                    Cách 2: Đấu chung chân T1 của MCU và đầu vào một bộ đếm tần số, đo thử đầu ra của mạch dao động LM311.

                    Với giải thuật của mình viết trên con ATmega16 osc=12M, kết quả cho thấy sai số so với Protues là +/-1 Hz và lệch (đều) so với bộ đếm tần khoảng 50Hz.
                    => như vậy có thể yên tâm về phần đo tần số!

                    2. Sai số do giá trị tụ tham chiếu
                    Vì tụ tham chiếu để tính ngược ra kết quả nên có ảnh hưởng nhiều đến độ chính xác của mạch. Thông thường phải chọn tụ có độ sai số +/- 1% hoặc 0.5% càng tốt. Mà kiếm được con tụ này thì hơi khó so với điều kiện của mình.

                    Giả sử không con tụ trong mạch không có độ chính xác cao -> có thể khắc phục bằng điều chỉnh trong phần mềm (firmware) nhưng cũng phải kiếm được 1 con tụ khác có độ chính xác cao !

                    (còn tiếp)

                    Comment


                    • #11
                      cố lên nhé tintintin kiến thức của bạn cũng vững lắm đó 0
                      Từ chối trách nhiệm:
                      Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
                      Blog: http://mritx.blogspot.com

                      Comment


                      • #12
                        Bác itx cho anh em xin cái sơ đồ nguyên lý đi

                        Comment


                        • #13
                          Nguyên văn bởi black_mind Xem bài viết
                          Bác itx cho anh em xin cái sơ đồ nguyên lý đi
                          đã cho rồi đọc kĩ lại đi
                          Từ chối trách nhiệm:
                          Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
                          Blog: http://mritx.blogspot.com

                          Comment


                          • #14
                            Xin hỏi cùng v/đ:
                            Tôi có sưu tầm được 1 sơ đồ và chương trình kèm theo về LC meter.
                            (Tôi upload không được??)
                            Trong CT(chương trình) có đoạn dùng USART (Serial Port) để đếm xung ngoài và định thời gian...:
                            /************************************************** ****************************

                            Name: void SerialInit()

                            Description: Initialize Serial Port

                            Input: none

                            Output: none

                            Misc:

                            ************************************************** ****************************/
                            void SerialInit(void)
                            {
                            UBRRH = ((XTAL / (8 * 250000)) - 1)>>8; // 250kbps at 16Mhz
                            UBRRL = (XTAL / (8 * 250000)) - 1;
                            UCSRA = (1<<U2X); //double speed
                            UCSRB = (1<<TXEN); //Enable transmitter
                            UCSRC = (1<<URSEL) + (1<<UCSZ1) + (1<<UCSZ0); //8bit data...
                            }

                            /************************************************** ****************************

                            Name: void CounterInit()

                            Description: Initialize Counter

                            Input: none

                            Output: none

                            Misc:

                            ************************************************** ****************************/
                            void CounterInit(void)
                            {
                            TIMSK |= (1<<OCIE1A);
                            OCR1A = 0xffff;
                            }

                            /************************************************** ****************************

                            Name: ulong MesureLC()

                            Description: Mesure LC Value

                            Input: none

                            Output: none

                            Misc:

                            ************************************************** ****************************/
                            ulong MesureLC(void)
                            {
                            int i;

                            TCCR1B = 0;
                            CountHigh = 0;
                            TCNT1 = 0;

                            for (i=0;i<25000;i++)
                            {
                            TCCR1B = (1<<CS12) + (1<<CS11) + (1<<CS10);
                            UDR = 0x55;
                            while(!(UCSRA & (1<<UDRE)));
                            }
                            while(!(UCSRA & (1<<TXC)));
                            TCCR1B = 0;

                            CountLow = TCNT1;
                            Count = CountLow + (CountHigh << 16);

                            return Count;
                            }

                            Nhờ các bác giải thích CT.
                            Và lệnh for trong đó có lệnh while nó thực hiện như thế nào? Thực chất đoạn này có phải là định thì không? Tại sao lệnh for i=25000?

                            Xin cám ơn

                            Comment


                            • #15
                              Chương trình và sơ đồ nằm ở đây:

                              http://www.microsyl.com/lcmeter/lcmeter.html

                              Comment

                              Về tác giả

                              Collapse

                              itx ITX Tìm hiểu thêm về itx

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

                              Collapse

                              Đang tải...
                              X