搜索
bottom↓
回复: 889

用M8制作电感、电容、电解电容测量仪表

  [复制链接]

出0入8汤圆

发表于 2009-4-7 15:37:23 | 显示全部楼层 |阅读模式
用M8制作电感、电容、电解电容测量仪表

这个电路不同国家和地区很多人制作过,测量精度高,测量范围大,有用不同语言写的程序,我作了一个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的值。

(原文件名:Gs_1.jpg)
这里电容器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的值,分别用下列式子计算:

(原文件名:Gs_2.jpg)
二、电解电容测量原理:
电解电容的测量是基于对RC电路的时间常数的计算,由脉冲电路原理可知,电容的充电速度与R和C的大小有关,R与C的乘积越大,过渡时间就越长。这个RC的乘积就叫做RC电路的时间常数τ,即τ=R∙C。若R的单位用欧姆,C的单位用法拉,则τ的单位为秒。

(原文件名:Gs_4.jpg)
图示曲线可以得到充电过程的一般规律:Uc是按指数规律上升的,Uc开始变化较快,以后逐渐减慢,并缓慢地趋近其最终值,当t=τ时,Uc=0.632E;本测量仪就是利用单片机测量Uc=0到0.632E这段时间,用下列式子计算计算被测电容值:

(原文件名:Gs_3.jpg)
电路由比较器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接通电源,进入校准状态(此时测量端子不能接入器件):

(原文件名:Lcd_1.jpg)
校准完成后:

(原文件名:Lcd_2.jpg)
按动S1进入电容测量状态:

(原文件名:Lcd_3.jpg)
按动S1进入电感测量状态:

(原文件名:Lcd_4.jpg)
按动S1进入电解电容(<500uF)测量状态:

(原文件名:Lcd_5.jpg)
按动S1进入电解电容(>500uF)测量状态:

(原文件名:Lcd_6.jpg)
再按S1返回到电容测量状态。

这是安装完成的样子:

(原文件名:PCB_2.jpg)


(原文件名:PCB_3.jpg)

电路板被设计成适合热转印:

(原文件名:PCB_1.jpg)
加了一个铝合金底座:

(原文件名:w_3.jpg)
这是原理图:

(原文件名:lc.jpg)
这是热转印图和装配图:
点击此处下载 ourdev_433768.rar(文件大小:527K) (原文件名:zp.rar)
这是源程序:
'****************************************************
'*               电感电容电解电容测量仪             *
'*  电容:1P-2.5uF                                   *
'*  电感:1uH-2.0H                                   *
'*  电解电容:0.1uF-20000uF                          *
'*                 吕军省   天津大港                *
'*                 junsheng427@126.com              *
'*                            20081217              *
'****************************************************
$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

十六进制文件:
点击此处下载 ourdev_433770.rar(文件大小:7K) (原文件名:LC-1.rar)

出0入8汤圆

 楼主| 发表于 2009-4-7 16:37:08 | 显示全部楼层
确实是个古董,不过有时还得用,现在还没有新的可以替代.

出0入8汤圆

 楼主| 发表于 2009-4-7 16:56:21 | 显示全部楼层
用它打开
Microsoft Office Document Imaging

出0入8汤圆

 楼主| 发表于 2009-4-8 08:29:06 | 显示全部楼层
有时间你过来拷吧,没有找到你的邮箱.

出0入8汤圆

 楼主| 发表于 2009-4-8 18:26:11 | 显示全部楼层
回 【33楼】 wxfhw

问题:1.完全可以直接连通,留这个是为了以后作其它用,比如频率计.
     2.理论上应该等于0,但实际上有正负0.1pF波动.
     3.我测试过三个不同厂商的393都可以工作到500KHz,这个制作选用了401KHz.
     4.完全可以.
     5.不会发生什么问题,只是读数不对.

出0入8汤圆

 楼主| 发表于 2009-4-8 21:23:19 | 显示全部楼层
这类电子开关导通电阻比较大,可能会影响振荡回路的稳定性,你可以作实验试试.

出0入8汤圆

 楼主| 发表于 2009-4-9 08:29:50 | 显示全部楼层
回【42楼】 wxfhw
     
     1.是那个白色的有磁芯.
     2.C1与C2可以不相等,L1 C1组成的谐振频率在400KHz比较合适,你可以用下列附件计算,这是我作程序时建立的.
       C1与C2要用温度特性好的电容,C2的容量要尽可能的准确,有条件话可以用其它标准仪表校准,修改程序中的相关项目,有注解的.
     3.本论坛就有.
     4.没有发现干扰,但你在设计电路板是应该注意,它毕竟有近30mA的突发电流.

附件:点击此处下载 ourdev_434387.xls(文件大小:15K) (原文件名:CLF计算1.xls)

出0入8汤圆

 楼主| 发表于 2009-4-9 11:15:43 | 显示全部楼层
更正:
   
    原理图中的R9=3k,R10=300,正确的为R9=2k,R10=200,程序是按R9=2k,R10=200计算结果的

出0入8汤圆

 楼主| 发表于 2009-4-9 21:02:34 | 显示全部楼层
这个问题很难回答,关键在校准电容C2的精度,如果你有一只误差0.5%的电容,可以作到较高的精度.通过对大量电容电感测试我作的这个误差小于5%.有条件的话我找一个电桥作个校正.最近在淘宝看到有误差1%的云母电容,用它应该可以作到好的精度.

出0入8汤圆

 楼主| 发表于 2009-4-10 07:53:52 | 显示全部楼层
回【51楼】 yhloh
      
        MCU可以用ATMEGA8-16PU替代,但晶振要改成16MHz,源程序必须作改动.
        
回【52楼】 lht12345

        建议很好,谢谢.

出0入8汤圆

 楼主| 发表于 2009-4-14 18:32:57 | 显示全部楼层
在“释放”状态

出0入8汤圆

 楼主| 发表于 2009-4-15 20:24:10 | 显示全部楼层
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3212258&bbs_page_no=1&search_mode=1&search_text=bascom&bbs_id=9999

出0入8汤圆

 楼主| 发表于 2009-4-25 18:44:37 | 显示全部楼层
不用客气,好用就行

出0入8汤圆

 楼主| 发表于 2009-4-27 11:07:02 | 显示全部楼层
这个制作闸门时间是0.25秒,也就是每秒钟测4次.
电解电容测量是用周期法测量的,但不适应小容量电容测量,很容易受分布参数影响.

出0入8汤圆

 楼主| 发表于 2009-4-27 14:17:15 | 显示全部楼层
没试过,大家都测频率可能是更直接一些.
如果是测转速我可能会选用测周期,这样反应更快一些,这个制作我确实没有考虑过.

出0入8汤圆

 楼主| 发表于 2009-5-14 21:25:18 | 显示全部楼层
请点击此处下载 ourdev_444901.rar(文件大小:269K) (原文件名:rzy00.rar)

出0入8汤圆

 楼主| 发表于 2009-8-13 19:07:00 | 显示全部楼层
回184楼:
PCB文件
点击此处下载 ourdev_470589.rar(文件大小:18K) (原文件名:LC_PCB1.rar)

出0入8汤圆

 楼主| 发表于 2009-9-3 09:27:31 | 显示全部楼层
网友 diannaoza 天比,非常感谢!
地址已发到邮箱

出0入8汤圆

 楼主| 发表于 2009-9-17 16:55:16 | 显示全部楼层
网友 diannaoza 天比

             电路板已收到,再次表示感谢.

出0入8汤圆

 楼主| 发表于 2011-5-23 17:23:14 | 显示全部楼层
引用楼主位:
"这个设计原本加入了一个电解电容漏电流测试功能,由于测量时间太长而放弃,图中的R13、R9(R10)与adc0等组成漏电流测量电路。"

出0入8汤圆

 楼主| 发表于 2011-5-24 11:23:18 | 显示全部楼层
你好,你的问题可能出在电容器C2的容量上,你可以选一个1200P-2200P之间的电容,但这个电容你必须知道它的准确容量,因为它的精确程度,基本上决定了整个测量过程的精度。应该选用稳定性好精度高的电容器。修改程序的这一行:

C1 = C1 * 1800       '1800是标准电容C2 ;单位pF

把1800修改为你的已知电容器,重新编译,应该可以解决你的问题。

出0入8汤圆

 楼主| 发表于 2011-5-24 15:20:43 | 显示全部楼层
你好,编译好的两个文件
点击此处下载 ourdev_642480OQZ84H.rar(文件大小:6K) (原文件名:LC1500p.rar)
点击此处下载 ourdev_642481SGZZ5U.rar(文件大小:6K) (原文件名:LC1550p.rar)

出0入8汤圆

 楼主| 发表于 2011-9-18 20:21:51 | 显示全部楼层
朋友送的两个电容,这是我目前拿到的最高精度的电容了,在室温22.1度时的测量结果:



(原文件名:dy.JPG)

出0入8汤圆

 楼主| 发表于 2012-5-24 20:49:07 | 显示全部楼层
本帖最后由 jun427 于 2012-5-24 20:51 编辑



老论坛资料暂时不能下载,重放一个,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

 楼主| 发表于 2012-9-2 10:35:59 | 显示全部楼层
yzl1978 发表于 2012-9-2 09:44
ZL我想仿制一个,请问这电路中那些元件要求精度高

C2要求精度高。

出0入8汤圆

 楼主| 发表于 2012-9-2 10:59:08 | 显示全部楼层
yzl1978 发表于 2012-9-2 10:53
L1电感有要求吗,我看你做好的板上基本上是独石或钽电容吧象C11与C15我能用电解电容代替其它用瓷片吗 ...

L1用普通的色码电感就可以,C11,C15可以用电解电容,其他的可以用瓷片电容。

出0入8汤圆

 楼主| 发表于 2012-9-2 21:30:27 | 显示全部楼层
yzl1978 发表于 2012-9-2 17:22
LZ我看有一贴中写到 原理图中的R9=3k,R10=300,正确的为R9=2k,R10=200,程序是按R9=2k,R10=200计算结果 请问 ...

正确的为R9=2k,R10=200,程序是按R9=2k,R10=200计算结果

出0入8汤圆

 楼主| 发表于 2012-9-2 21:33:46 | 显示全部楼层
halloocc 发表于 2012-9-2 16:47
如果 F1*F1/(F2*F2)的结果 《1 的话, 结果 为负数,何解呢 ?

这个没有看明白?

出0入8汤圆

 楼主| 发表于 2012-9-3 10:22:56 | 显示全部楼层
halloocc 发表于 2012-9-2 22:18
不好意思,表达不周。我意思是 LZ的推算公式Cx=(F1^2/F2^2-1)*C1, 假设F1

看原理图就知道,测量电容时被测电容是并联到谐振回路的,所以F1不可能大于F2;测量电感时被测电感是串联到谐振回路的,同样F1不可能大于F2。

出0入8汤圆

 楼主| 发表于 2012-9-3 15:39:05 | 显示全部楼层
yzl1978 发表于 2012-9-3 14:47
LZ还想问下
因L1  82uH在当地找了几个店都没有,  看贴电感L1的具体傎是临时计算出的吧,那是不是我用100UH ...

你可以使用80-120uH的任一取值的电感,不影响测量结果。

出0入8汤圆

 楼主| 发表于 2012-9-4 09:37:19 | 显示全部楼层
yzl1978 发表于 2012-9-4 09:09
LZ下面代码怎么多了 3.1416 * 3.1416  上图只是F1的平方啊  
         L1 = 3.1416 * 3.1416
         L1  ...


当时整理文档时写错了,应该是这样的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

 楼主| 发表于 2012-9-5 22:11:00 | 显示全部楼层
本帖最后由 jun427 于 2012-9-5 22:16 编辑
yzl1978 发表于 2012-9-5 15:37
LZ   LC200A手持式电感电容表 电容测量范围:0.01pF-10uF

最小分辨率:0.01pF


0.01pF 这个吹口气都要变,扩展不出来,至少是现制作的这个电路无法达到。

出0入8汤圆

 楼主| 发表于 2012-9-6 17:01:40 | 显示全部楼层
yzl1978 发表于 2012-9-6 14:44
图中R21、C14取值多少

R21、C14 不用安装。

出0入8汤圆

 楼主| 发表于 2012-9-6 17:04:57 | 显示全部楼层
icewooo 发表于 2012-9-4 10:08
那位好人帮忙编译个HEX文件,我仿制的是jianjun42 的那个M16能测频率 的LFC,C1=1805 , C2=1800, L=82   , ...

你可以找这个制作的作者,他会帮助解决问题的。

出0入8汤圆

 楼主| 发表于 2012-9-7 09:06:48 | 显示全部楼层
yzl1978 发表于 2012-9-6 20:50
LZ  R9,R10要改的话程序改那两处,精度1%的用万用表量阻值没有2k,200欧
还有R13是不是也不用接 ...

'/////外部中断,测电解电容/////

T1_isr:

   Stop Timer0

   Te = Te * 256
   Te = Te + Tcnt0     '定时器中断次数的和加上当前定时值
  Te = Te / 2    '时间/充电电阻=被测电容

R13不用接。

出0入8汤圆

 楼主| 发表于 2012-9-8 14:26:18 | 显示全部楼层
yzl1978 发表于 2012-9-7 21:12
LZ 这按键用的那种规格,网上看到有几种大小
有8*8、8.5*8.5、7*7的等等,PCB板已做好了所以问下应该买那种 ...

实测了是8.5*8.5

出0入8汤圆

 楼主| 发表于 2012-9-18 17:30:10 | 显示全部楼层
5IDIANZI 发表于 2012-9-18 15:40
请楼主帮忙,震荡频率不对,示波器量LM393 1脚有1.2Hz方波,检查周边电路没有异常。取下单片机,LCD1602 ...

这个是正常的,当L1,C1没有接入时是有一个约1.2Hz的方波。

出0入8汤圆

 楼主| 发表于 2012-9-19 16:27:03 | 显示全部楼层
5IDIANZI 发表于 2012-9-19 09:32
谢谢,这样我就放心了。那么LC震荡的频率约350KHz叠加在这个1.2Hz的方波上就是正常的了。在1.2Hz方波由低 ...

从产生350KHz的振荡看,电路应该没有什么问题,检查M8熔丝位设置应为外部晶振。

出0入8汤圆

 楼主| 发表于 2012-9-19 21:12:55 | 显示全部楼层
5IDIANZI 发表于 2012-9-19 16:50
震荡确实可以产生但是持续时间太短,我觉得应该是长时间产生震荡的吧。怎么也得大于250ms吧,晶振设定没 ...

间歇振荡是不正常,振荡应该是连续的,只有在测量电感时,当被测电感未接入时振荡停止。

出0入8汤圆

 楼主| 发表于 2012-10-21 00:09:43 | 显示全部楼层
老高小童鞋 发表于 2012-10-19 11:01
一、量程分了多个挡,档位可以自动变化吗?如果自动,怎么设计?如果手动,如何估算被测元件的值?
二、如 ...


1,量程只有电解电容测量分了两档,需要手动转换,没想过要自动转换。如何估算被测元件值,用万用表测量电阻时怎么估算,这个也是一样的。
2.只要电路产生振荡,由于有谐振回路,输出的一定是当前的谐振频率。
3.测量范围能达到楼主位给出的范围。
这个设计思想不是我的,是来自国外的,当时看了觉得很好,就做了这个。如果你有更好的实现方案可以拿出来大家共同学习讨论。
谢谢

出0入8汤圆

 楼主| 发表于 2012-10-28 18:22:18 | 显示全部楼层
老高小童鞋 发表于 2012-10-28 17:53
谢谢诶楼主  我正在画电路图  你用的元件是一般的还是稍好点的  做出的效果怎样  精度高吗  ...

用的是普通元件,看C2的精度

出0入8汤圆

 楼主| 发表于 2012-11-15 17:48:23 | 显示全部楼层
wzone001 发表于 2012-11-15 16:21
楼主您好,我的硬件做出来首先是按R9=3k,R10=300接上的,可以测试但是寄读不够,但是换成R9=2k,R10=200之 ...

红色那一行
'/////外部中断,测电解电容/////

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)                              '0.000uF
          V1 = Format(v1 , "0.000")
       End If

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

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

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

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

   End If

出0入8汤圆

 楼主| 发表于 2012-11-16 18:49:42 | 显示全部楼层
wzone001 发表于 2012-11-16 13:44
不好意思楼主,还来麻烦您,我的R9和R10都换了,硬件电路也检查了无数遍了,但是就是不能尽心测试,测电 ...

这个好象没有自动校准过程,当仪表上电时有一个自动校准过程,大约有3秒钟时间,有继电器动作的声音,完成后显示如图示,

如果没有这个过程,很可能是继电器不动作,请检查你用的继电器是不是线圈电压5V,电阻170欧左右的,如果比较小50欧左右那就得更换,M8很难驱动,从你的图上看振荡频率也不对,很可能是没有完成自动校准过程,程序没问题,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

 楼主| 发表于 2013-1-4 12:09:06 | 显示全部楼层
yangben 发表于 2013-1-4 01:01
前辈你好,  有没有办法可以做成电感挡可以测量超过2H的呢?如果做成500H以内,就更好了,谢谢你 ...

你好,用谐振法测大电感量大电容量不适合

出0入8汤圆

 楼主| 发表于 2019-7-12 17:40:31 | 显示全部楼层
本帖最后由 jun427 于 2019-7-12 17:44 编辑

用M8制作电感、电容、电解电容测量仪表,C语言源工程代码


使用时把标准电容写入到Eeprom主,方法见图示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 19:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表