久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8746|回復: 20
打印 上一主題 下一主題
收起左側

用M8制作電感、電容、電解電容測量儀表

  [復制鏈接]
跳轉到指定樓層
樓主
ID:85764 發表于 2015-7-18 14:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這個電路不同國家和地區很多人制作過,測量精度高,測量范圍大,有用不同語言寫的程序,我作了一個BASCOM-AVR版本的,并增加了對電解電容器測量。
電感測量范圍:0.1μH~2H
電容測量范圍:1pF~2.5μF
電解電容測量范圍:0.1μF~30000μF
一、電容、電感測量原理:
電路是一個由LM393(U3A)組成的LC振蕩器。由單片機測量LC震蕩回路的頻率F1,然后控制繼電器K2將標準電容C2與C1并聯,測出振蕩器頻率F2,再用下列式子計算出電容C1電感L1的值。


這里電容器C2的容量的精確程度,基本上決定了整個測量過程的精度。應該選用穩定性好精度高的電容器,這個制作選用了1800pF的云母電容器。
上述過程可稱作為一個校準過程,由M8控制每次開機時自動完成。開機后延時1500ms,測量由U1A、L1、C1組成振蕩器頻率F1;Portd.3 = 0,K2吸合,C2接入延時1500ms,測量振蕩器頻率F2,Portd.3 = 1,K2斷開。M8計算C1、L1完成后按S1進入電容Cx的測量狀態。
電容Cx、電感Lx的值,分別用下列式子計算:


二、電解電容測量原理:
電解電容的測量是基于對RC電路的時間常數的計算,由脈沖電路原理可知,電容的充電速度與R和C的大小有關,R與C的乘積越大,過渡時間就越長。這個RC的乘積就叫做RC電路的時間常數τ,即τ=R?C。若R的單位用歐姆,C的單位用法拉,則τ的單位為秒。


圖示曲線可以得到充電過程的一般規律:Uc是按指數規律上升的,Uc開始變化較快,以后逐漸減慢,并緩慢地趨近其最終值,當t=τ時,Uc=0.632E;本測量儀就是利用單片機測量Uc=0到0.632E這段時間,用下列式子計算計算被測電容值:


電路由比較器U3B,放電晶體管Q等組成。設定比較器正輸入端為Uc,(Uc=0.632E=0.632?5=3.16V,調節RP1獲得),反向輸入端接被測電容CEx,當D端為高電平時,Q導通電路處于放電狀態,這時CEx被放電,比較器U3B輸出高電平。當D為低電平時Q截止電容CEx通過R9(R10)充電,CEx兩端電壓逐步升高,當CEx兩端電壓>Uc時,比較器U3B輸出低電平,產生INT0中斷(INT0中斷設置為下降沿觸發),中斷服務程序讀取定時器值,并計算、顯示CEx的值。然后置位PD6為高電平,Q導通,CEx放電,延時100mS是為了保證CEx充分放電,中斷返回開始下一個測量周期。為了提高測量精度電解電容測量分兩檔,由繼電器K2切換,R9接入時測量0.1μF~500μF電容,R10接入時測量500μF~20000μF電容。R9(R10)的精度和電壓Uc的精度基本上決定了測量結果精度。
這個設計原本加入了一個電解電容漏電流測試功能,由于測量時間太長而放棄,圖中的R13、R9(R10)與adc0等組成漏電流測量電路。
三、使用方法:
按下S2接通電源,進入校準狀態(此時測量端子不能接入器件):


校準完成后:


按動S1進入電容測量狀態:


按動S1進入電感測量狀態:


按動S1進入電解電容(<500uF)測量狀態:


按動S1進入電解電容(>500uF)測量狀態:


再按S1返回到電容測量狀態。

這是安裝完成的樣子:






電路板被設計成適合熱轉印:


加了一個鋁合金底座:


這是原理圖:


這是熱轉印圖和裝配圖: zp.rar (526.81 KB, 下載次數: 116)

這是源程序:
'****************************************************
'*               電感電容電解電容測量儀             *
'*  電容:1P-2.5uF                                   *
'*  電感:1uH-2.0H                                   *
'*  電解電容:0.1uF-20000uF                          *
'*                 呂軍省   天津大港                *
'****************************************************
$regfile = "m8def.dat"
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Config Lcd = 16 * 2

Config Timer1 = Counter , Edge = Falling       '配置T/C1為計數
Config Timer2 = Timer , Prescale = 64       '配置T/C2定時

Config Int0 = Falling
Config Timer0 = Timer , Prescale = 8
On Ovf0 Tim0_isr
On Int0 T1_isr

On Ovf2 Tim2_isr
Enable Ovf2
On Ovf1 Tim1_isr
Enable Ovf1
Enable Interrupts
Tcnt2 = &H83
Start Timer2
Counter1 = 0
Start Counter1

Dim F1 As Long
Dim F2 As Long

Dim C1 As Single
Dim Ca1 As Single
Dim Ca2 As Single
Dim Cx As Single
Dim L1 As Single
Dim Lx As Single
Dim F11 As Single

Dim V1 As String * 11
Dim V2 As String * 11

Dim Vf As String * 6
Dim Vs As String * 8
Dim Z1 As String * 2

Dim J As Bit
Dim I As Byte
Dim K As Bit
Dim M As Bit
Dim Vl As Byte
Dim Tc As Byte
Dim Tc1 As Long
Dim Te As Long

Ddrd.7 = 0       '鍵初始
Portd.7 = 1
Ddrd.4 = 1       '繼電器初始化
Ddrd.3 = 1
Portd.4 = 1
Portd.3 = 1

Ddrd.6 = 1
Portd.6 = 1
J = 1
K = 1
M = 1
I = 1
Tc1 = 0
Cls
Cursor Off

'/////主程序/////
Do

   '/////按鍵處理/////

   If Pind.7 = 0 Then       'S1
      Waitms 40
         If Pind.7 = 0 Then
            Incr I
            Bitwait Pind.7 , Set
         End If
   End If

   '/////電感L1,電容C1計算/////

   If I = 1 Then
      If J = 1 Then

         Lcd "  L_C_CE meter"
         Lowerline
         Lcd "    20081217"

         Waitms 1500       '等待F1計數
         Portd.3 = 0       '接入標準電容C2
         Waitms 1500       '等待f2計數

         Ca1 = F1 * F1
         Ca2 = F2 * F2
         C1 = Ca1 - Ca2
         C1 = Ca2 / C1
         C1 = C1 * 1800       '1800是標準電容C2 ;單位pF

         L1 = 3.1416 * 3.1416
         L1 = L1 * 4
         L1 = L1 * Ca1
         L1 = L1 * C1
         L1 = 1 / L1
         L1 = L1 * 1000000000000000000       '單位uH

         Portd.3 = 1       '斷開標準電容C2
      End If

      J = 0

      Vf = Str(f1)       '顯示f1
      Vf = Format(vf , "      ")
      Locate 1 , 7
      Lcd "F=" ; Vf ; "Hz"
      Locate 1 , 1
      Lcd "SetOK "

      V1 = Fusing(c1 , "#.#")
      V2 = Fusing(l1 , "#.#")
      Locate 2 , 1
      Lcd V1 ; "pF " ; V2 ; "uH"

   End If

   '/////電容Cx計算/////

   If I = 2 Then

      Vf = Str(f1)
      Vf = Format(vf , "      ")
      Locate 1 , 7
      Lcd "F=" ; Vf ; "Hz"

      F11 = F1 * F1
      Cx = Ca1 / F11
      Cx = Cx - 1
      Cx = Cx * C1

      V1 = Fusing(cx , "#.#")

      Vl = Len(v1)
      Z1 = "pF"

      If Vl = 6 Then
         V1 = Mid(v1 , 1 , 4)
         Z1 = "pF"
      End If

      If Vl = 7 Then
         V1 = Mid(v1 , 1 , 4)
         V1 = Format(v1 , "00.00")
         Z1 = "nF"
      End If

      If Vl = 8 Then
         V1 = Mid(v1 , 1 , 4)
         V1 = Format(v1 , "000.0")
         Z1 = "nF"
      End If

      If Vl = 9 Then
         V1 = Mid(v1 , 1 , 4)
         V1 = Format(v1 , "0.000")
         Z1 = "uF"
      End If

      Vs = Space(8)
      Locate 2 , 1
      Lcd "   Cx=" ; V1 ; Z1 ; Vs

      Locate 1 , 1
      Lcd "TestC "

   End If

   '/////電感Lx計算/////

   If I = 3 Then

      Vf = Str(f1)
      Vf = Format(vf , "      ")
      If F1 < 50 Then
         Vf = "     0"
      End If
      Locate 1 , 7
      Lcd "F=" ; Vf ; "Hz"

      Portd.4 = 0       '輸入端切換到測電感

      If F1 > 1000 Then
         F11 = F1 * F1
         Lx = Ca1 / F11
         Lx = Lx - 1
         Lx = Lx * L1
      Else
         Lx = 0
      End If
      V1 = Fusing(lx , "#.##")
      Vl = Len(v1)
      Z1 = "uH"

      If Vl = 6 Then
         V1 = Mid(v1 , 1 , 5)
         Z1 = "uH"
      End If

      If Vl = 7 Then
         V1 = Mid(v1 , 1 , 4)
         V1 = Format(v1 , "0.000")
         Z1 = "mH"
      End If

      If Vl = 8 Then
         V1 = Mid(v1 , 1 , 4)
         V1 = Format(v1 , "00.00")
         Z1 = "mH"
      End If

      If Vl = 9 Then
         V1 = Mid(v1 , 1 , 4)
         V1 = Format(v1 , "000.0")
         Z1 = "mH"
      End If

      If Vl = 10 Then
         V1 = Mid(v1 , 1 , 4)
         V1 = Format(v1 , "0.000")
         Z1 = "H "
      End If

      Vs = Space(8)
      Locate 2 , 1
      Lcd "   Lx=" ; V1 ; Z1 ; Vs

      Locate 1 , 1
      Lcd "TestL "

   End If

   '/////電解電容器測量(<500uF) /////

   If I = 4 Then
      Portd.4 = 1
      If K = 1 Then

         Disable Ovf1
         Disable Ovf2

         Enable Int0
         Enable Ovf0

         Locate 1 , 1
         Lcd "TestCE  [<500uF]"
         Locate 2 , 1
         Lcd "   CEx=       "

      End If
      K = 0

   Portd.6 = 0       '開始充電
   Start Timer0       '開始計時
   End If

   '/////電解電容測量(2) /////

   If I = 5 Then

      If M = 1 Then
         Portd.3 = 0
         Locate 1 , 1
         Lcd "TestCE  [>500uF]"
         Locate 2 , 1
         Lcd "   CEx=       "
      End If
      M = 0
      Portd.6 = 0       '開始充電
      Start Timer0       '開始計時
   End If


'/////返回到電容測量//////

   If I = 6 Then

      I = 2       '返回到電容測量

      Enable Ovf1
      Enable Ovf2

      Disable Int0
      Disable Ovf0

      Portd.3 = 1
      K = 1
      M = 1
   End If

Loop
End

'/////計數中斷/////

Tim1_isr:

   Incr Tc1       '這么作可使計數分辯率最高到1Hz

Return

'/////定時中斷/////

Tim2_isr:

   Tcnt2 = &H83       '定時器T2初值
   Incr Tc
   If Tc = 250 Then       '定時250mS
      Stop Counter1
      Tc1 = Tc1 * 65535
      If Portd.3 = 1 Then
         F1 = Counter1
         F1 = F1 + Tc1
         F1 = F1 * 4
      End If
      If Portd.3 = 0 Then
         F2 = Counter1
         F2 = F2 + Tc1
         F2 = F2 * 4
      End If
      Counter1 = 0
      Start Counter1
      Tc = 0
      Tc1 = 0
   End If

Return

'/////定時中斷,測電解電容/////

Tim0_isr:

   Incr Te       '定時器0中斷次數

Return

'/////外部中斷,測電解電容/////

T1_isr:

   Stop Timer0

   Te = Te * 256
   Te = Te + Tcnt0
   Te = Te / 2       '時間/充電電阻=被測電容

   V1 = Str(te)
   Vl = Len(v1)

   If Portd.3 = 1 Then       '充電電阻R9接入,<500uF

       If Vl = 2 Then
          V1 = "NO"
       End If

       If Vl = 3 Then
          V1 = Mid(v1 , 1 , 3)
          V1 = Format(v1 , "0.000")
       End If

       If Vl = 4 Then
          V1 = Mid(v1 , 1 , 3)
          V1 = Format(v1 , "0.00")
       End If

       If Vl = 5 Then
          V1 = Mid(v1 , 1 , 3)
          V1 = Format(v1 , "0.0")
       End If

       If Vl = 6 Then
          V1 = Mid(v1 , 1 , 3)
       End If

       If Vl = 7 Then
          V1 = "  OL  "
       End If

   End If

   If Portd.3 = 0 Then

      If Vl = 2 Then
         V1 = Mid(v1 , 1 , 2)
         V1 = Format(v1 , "0.00")
      End If

      If Vl = 3 Then
         V1 = Mid(v1 , 1 , 3)
         V1 = Format(v1 , "0.00")
      End If

      If Vl = 4 Then
         V1 = Mid(v1 , 1 , 2)
      End If

      If Vl = 5 Then
         V1 = Mid(v1 , 1 , 3)
      End If

      If Vl = 6 Then
         V1 = Mid(v1 , 1 , 4)
      End If

      If Vl = 7 Then
         V1 = Mid(v1 , 1 , 5)
      End If
   End If

   Vs = Space(7)

   If Te > 1 And Te < 10 Then

      Locate 2 , 1
      Lcd "   CEx=" ; "0" ; "uF" ; Vs

   End If

   If Te > 10 Then

      Locate 2 , 1
      Lcd "   CEx=" ; V1 ; "uF" ; Vs

   End If

   Portd.6 = 1       '開始放電

   If Portd.3 = 1 And Te > 10 Then
      Waitms 100
   End If
   If Portd.3 = 0 And Te > 10 Then
      Waitms 500
   End If

   Tcnt0 = 0       '定時計數器清零
   Te = 0       '定時中斷次數清零

Return

433770.rar

6.52 KB, 下載次數: 86, 下載積分: 黑幣 -5

評分

參與人數 2黑幣 +20 收起 理由
qjzyx + 5 很給力!
GUOXUAN + 15 感謝老師發貼共享,老師辛苦了

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏15 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:87991 發表于 2015-8-14 08:12 | 只看該作者
用51就好了
回復

使用道具 舉報

板凳
ID:88643 發表于 2015-8-21 09:21 | 只看該作者
這東西好啊!
回復

使用道具 舉報

地板
ID:74370 發表于 2015-9-1 21:18 | 只看該作者
看著爽!可惜是m8,。
回復

使用道具 舉報

5#
ID:92556 發表于 2015-10-15 22:11 | 只看該作者
diy必需品啊
回復

使用道具 舉報

6#
ID:92580 發表于 2015-10-15 22:29 | 只看該作者
好東西
回復

使用道具 舉報

7#
ID:92580 發表于 2015-10-15 22:36 | 只看該作者
有pcb源文件嗎
回復

使用道具 舉報

8#
ID:92580 發表于 2015-10-15 22:38 | 只看該作者
有pcb源文件嗎
回復

使用道具 舉報

9#
ID:101285 發表于 2015-12-30 22:20 | 只看該作者
想整個來用,學習一下
回復

使用道具 舉報

10#
ID:119000 發表于 2016-5-7 08:43 | 只看該作者
有使用器件列表嗎
回復

使用道具 舉報

11#
ID:18822 發表于 2016-11-24 00:20 | 只看該作者
diy必需品啊
回復

使用道具 舉報

12#
ID:71549 發表于 2017-12-8 06:55 | 只看該作者
好東西.學習一下............
回復

使用道具 舉報

13#
無效樓層,該帖已經被刪除
14#
ID:249545 發表于 2017-12-8 21:20 | 只看該作者
記得在2006年的<無線電>雜志也有M8制做USB電容電感表的文章,當時我還設計好線路制做了30片PCB,還向無線電報社申請了M8樣片,打算制做LCR表.......一晃10多年過去了,那些還是零件,躺在紙箱中.心中難過呀iing.
回復

使用道具 舉報

15#
ID:259031 發表于 2017-12-8 21:36 | 只看該作者
可以,學習學習
回復

使用道具 舉報

16#
ID:64913 發表于 2017-12-8 23:33 | 只看該作者
制作好精量。。。。。。。
回復

使用道具 舉報

17#
ID:102702 發表于 2017-12-12 13:13 | 只看該作者
你好,請問能發一下電感、電容、電解電容測量儀表清晰一點的原理圖嗎?謝謝!
回復

使用道具 舉報

18#
ID:261391 發表于 2017-12-14 09:16 | 只看該作者
收藏了,正需要
回復

使用道具 舉報

19#
ID:261391 發表于 2017-12-14 09:19 | 只看該作者
標記下,方便接下來的學習
回復

使用道具 舉報

20#
ID:266116 發表于 2017-12-25 21:35 | 只看該作者
下一個來做做看,也好好的學習M8.
回復

使用道具 舉報

21#
ID:517951 發表于 2020-11-15 10:01 | 只看該作者
好好看看,也好好的學習M8
回復

使用道具 舉報

22#
ID:342822 發表于 2020-11-15 10:26 | 只看該作者
這是bascom版的。
回復

使用道具 舉報

23#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.日韩高清 | 不卡一区二区三区四区 | 丝袜美腿一区二区三区 | 欧美专区在线观看 | 国产成人精品免费 | 中文字幕在线第二页 | 欧美日韩亚洲视频 | 亚洲精品久久久久久久久久久久久 | 日韩欧美在线一区 | 国产精品欧美一区二区三区不卡 | 国产一区二区a | 91色视频在线观看 | 一区二区三区免费 | 久久在线看 | 日本一区二区三区在线观看 | 精品国产乱码久久久久久1区2区 | 日韩免费高清视频 | 成人在线免费网站 | 综合久久亚洲 | 一区二区三区高清 | 国产ts人妖一区二区三区 | 久草久| 国产精品7777777 | 九九综合九九 | 在线观看三级av | 精品1区 | 欧美日韩专区 | 日韩免费一二三区 | 精品久久久久香蕉网 | 国产欧美精品一区二区三区 | 视频一区中文字幕 | 欧美乱淫视频 | 久久国产福利 | 国产精品一区二区三 | 中国一级特黄真人毛片 | 99久久免费精品国产男女高不卡 | 欧美日韩亚洲一区 | 久久精品免费观看 | 日韩免费一区二区 | 中文字幕亚洲一区二区三区 | 国产精品永久免费 |