单片机实例分享,自制电感和电容测量仪
电子爱好者进行制作时经常需要绕制电感,而一般的数字万用表通常又没有电感测量挡,所以无法测量绕好的电感的电感量。本文介绍一种用单片机制作的电感和电容测量仪(见图23.1),可以有效地解决这一问题。
测量原理
本测量仪采用谐振法测量电感和电容,其方法是用谐振回路的谐振特性来进行测量,其测量原理可用如图23.2所示的电路进行说明。
图23.1 电感和电容测量仪
测量电感Lx时,配用标准电容C1,用Lx和C1组成谐振回路,测量出回路的谐振频率f即可计算出Lx的电感量;测量电容Cx时,配用标准电感L1,用L1和Cx组成谐振回路,测量出回路的谐振频率f即可计算出Cx的电容量。
上述测量方法也有一个缺陷:当Lx或Cx很小时,谐振频率f会很大,测量比较困难,为此我们可以采用如图23.2所示的改进型电路,分别用L1和C1作“垫底”,降低了测量时的谐振频率。
假设由 L1和C1 组成的谐振回路谐振频率为f1,测量Lx时,Lx和L1串联,测得(L1+Lx)和C1组成的谐振回路谐振频率为f2,则根据下式可计算出Lx的电感量:
Lx=[(f1/f2)2-1]L1
测量Cx时,Cx和C1并联,测得L1和(C1+Cx)组成的谐振回路谐振频率为f2,则可根据下式可计算出Cx的电容量:
Cx=[(f1/f2)2-1]C1
硬件电路
测量仪电路如图23.2所示。电路由LC振荡电路、单片机电路、显示电路等部分组成。
CD4069是6非门CMOS集成电路,其中非门F1、F2和C2、R1、R2等组成两级放大电路。第一级放大电路中,R2是负反馈偏置电阻,将F1输出端的直流电位钳制在VCC/2,使F1工作在线性放大区域。第二级放大电路没有加反馈电阻,直接用第一级放大电路输出的直流电压作偏置电压,以提高放大器的增益。放大电路通过正反馈回路R3、C3与L1、C1谐振电路一起组成正弦波振荡电路,非门F3用于信号整形,把F2输出的正弦波转换成矩形波输入到单片机ATmega8的T1脚,由单片机进行脉冲计数,从而测出LC回路的谐振频率。通过单片机对数据进行计算处理后,由LCD1602液晶屏显示测量结果。
图23.2 测量仪电路原理图
S1为测量转换开关,当S1转向L时测量电感,转向C时测量电容。S2是归0按钮。
LCD1602采用4线制传递数据,只使用了数据端口D4~D7。
当开关S1在电容挡但没有测量电容Cx,或在电感挡并且用短路线代替Lx时,电路的振荡频率约为503kHz,我们把这个频率称为基准频率。测试电容或电感时,被测试元件的电容量或电感量越大,对应的振荡频率越低。当被测电容的电容量为10μF(或电感的电感量为1H)时,对应的振荡频率约为5.03kHz。
电阻R5的阻值控制LCD1602液晶屏的对比度,R5阻值越小,液晶屏对比度越大。LED和LED+是液晶屏背光发光二极管的供电端口。
程序设计
测量仪的电路比较简单,而功能的实现更重要地依赖于程序的设计。程序的设计和优化需要花费更多的精力。
程序由频率测量、测试数据的计算处理、LCD1602液晶屏驱动显示三大部分组成。频率测量部分用定时器T/C1作脉冲计数,定时器T/C2产生测量脉冲频率的闸门时间。这里闸门时间选择0.5s,定时器T/C1累计的脉冲数乘以2即得脉冲频率。闸门时间选择0.5s是为了提高LCD1602显示数据刷新速度,如果闸门时间选1s,则刷新速度偏慢。
测试数据的计算处理部分主要利用前面给的两个公式计算出测量结果,并经过数据预处理后,输出到显示电路显示读数。
LCD1602的数据传输采用4线制,8位数据分两次传送,先传高4位,后传低4位,因为传递的数据量不大,所以你感觉不到4线制速度传输和8线制有什么区别。
安装调试
制作所需元器件的清单见表23.1。
C1、L1要选用精度比较高的元件,有条件的可用万能电桥进行筛选。L1如买不到成品电感也可自制,磁芯用Φ8×10的工字磁芯,用Φ0.42的漆包线绕55.5圈。
安装前先将程序的目标文件写入单片机ATmega8L,熔丝位的设置如图23.3所示。
图23.3 熔丝位的设置
电路板的装配图如图23.4所示。LCD1602的接口排座焊接在电路板上,排针焊接在LCD1602模块上如图23.5所示。
表23.1 元器件清单
图23.4 电路板装配图
安装完成后,用一根USB线将电源接口连到电脑USB插座上,接通测量仪的电源,将S1置于电容挡,测量端不接电容,这时LCD1602第二行显示的是基准频率f1,如图23.6所示。基准频率如果超出503kHz±5kHz的范围,说明L1、C1中有元件误差较大,需进行相应的调整。如果L1是自绕的,出现误差的可能性相对较大,可适当增减其圈数,直至满足要求。
接通电源后,以电容挡为例,虽然我们在测试端并没有接任何电容,但LCD1602第一行显示的电容量读数并不为零,如图23.6所示,我们称其为初始值,这是由基准频率略有漂移造成的。这时如果测量小容量的电容,误差就比较大,当初始值后有“-”号时,测量值是实际值减去了初始值,即读数比实际容量小了。反之,测量值是实际值加上了初始值,即读数比实际容量大了。
对于上述问题,我在程序中也作了考虑,只要在不接测试电容的情况下按一下S2就可以归0了,其实质就是基准频率作了修正,并把修正结果存入EEPROM,掉电后不会丢失。归0后的显示数据如图23.7所示。
电容挡归0后,电感挡就不需要归0了,因为电容挡归0就相当于在电感挡测试端接了一个短路线,等同于电感挡归0(在S1置于电感挡,S2归0时其测试端必须接短路线),分析一下电路就明白了。
图23.5 排针的焊接
如果使用中发现测量误差较大,可通过程序进行修正,具体做法如下:找一个精度高的1000pF电容进行测量,假设读数为950pF,则计算1000/950≈1.05,我们将其称为修正系数,将计算公式Cx=[(f1/f2)2-1]C1改为Cx=[(f1/f2)2-1]C1×1.05,用这个公式计算就能减小测量误差了。为了简化程序中的计算,我采取把程序中的语句“unsigned int C1=1000”改为“unsigned int C1=1050”的方法,效果是一样的。
再找一个精度高的100μH电感进行测量,假设读数为94,则计算100/94≈1.06,把程序中的语句“unsigned char L1=100”改为“unsigned char L1=106”,同样也能减小测量误差。
把重新编译好的目标文件烧写到ATmega8L,再进行测量,精度就提高了。
用本测试仪测量电容的实例如图23.8所示(测量对象分别为240pF云母电容和0.47μF安规电容),测量电感的实例如图23.9所示(测量对象分别为10μH电感和电子节能灯的电感线圈)。
当测量值超过量程时,读数显示“OVE”,测电感时电感测试端不接电感(相当于电感量为无穷大),读数也显示“OVE”。
图23.6 基准频率的测量结果
图23.7 按S2归0后的显示数据
使用这个电感和电容测量仪时有一个问题需要注意,即电感或电容的参数会受测试频率的影响。例如,具有磁芯的电感,由于受磁芯的频率特性影响,不同的测试频率,其结果可能有所不同,用这个测量仪测的数据和用信号源频率为1000Hz的万能电桥测的数据可能会不一致。笔者认为,用更接近实际工作频率的测试频率可以得到比较符合实际的测试结果。由于本测试仪工作频率比较高,不适合测量电解电容器。笔者测量一个10μF的电解电容器,对应测试频率为6.5kHz,读数为6.26μF,误差很大。
图23.8 电容的测量结果
图23.9 电感的测量结果
单片机小制作,七彩“魔法瓶”
一看题图,你可能会想,不就是一个普通的玻璃瓶吗?但是这个瓶子的功能却不简单,瓶子会感知周围光线的强度而改变内部的LED流动花式。当你的手背着光源的位置向前靠近时,口里再喃喃几句“魔法咒语”,神奇的现象出现了,本来的花式突然改变了,时而变蓝,时而变红。当你的手继续靠近时,然后可以关灯,这时瓶子闪烁得更加耀眼,更加激烈了,哇,太神奇了,竟然可以“隔空控制”!如果将此作品放在家里客厅或宿舍,一定会吸引很多客人或同学的眼球,而且可以活跃气氛。
“七彩魔法瓶”的奥秘是运用光敏电阻探测出周围光线的强弱,再根据光度由强到弱分成8个区间,每个区间都有一种不同的LED流动花式,第一个区间(也即是光照最强时)“魔瓶”不断显示红、绿、蓝的颜色;第二到第四个区间分别是显示由红色、绿色和蓝色的3种不同颜色的不同显示主题,不同的颜色能改变人的心情,因此随着主题的改变,心情也改变了;第五个区间(光照较暗时)瓶子会逐渐变化出类似彩虹的七彩颜色,因为红、绿、蓝三原色进行不同的组合就会得到不同的颜色;第六个区间是我们熟悉的流水灯,先由前排逐个流动,然后后排逐个流动;第七个区间是我最喜欢的,先逐渐显示单数和双数排的LED灯,同时,在瓶子内部的黄色和绿色草帽高亮LED灯交替亮起,发射出的光线经过洞洞板和玻璃瓶透射出来,显得特别好看;最后一个区间是光照最暗的时候,内部的高亮LED都亮起,同时左右排的LED灯交替亮,之后全部闪烁,达到最激烈的程度。相信在场观众的心情此时会达到高潮,很有创意吧,下面让我们一起来制作!
电路原理
所需器件列表:
◆ 20脚的STC12C2052AD单片机1个(或者选用同类有AD功能的单片机)
◆红、绿、蓝贴片LED各4个
◆绿色和黄色的高亮草帽LED各1个
◆ 470Ω贴片电阻6个
◆ 1kΩ贴片电阻2个
◆ 10kΩ贴片电阻1个
◆光敏电阻1个
◆ 7.5cm×7cm的玻纤洞洞板1块(玻纤板透光效果好)
◆排针若干
◆瓶口大小合适的空玻璃瓶子1个
01 用裁刀把7.5cm×7cm的玻纤洞洞板裁成3块的2.5cm×7cm大小的形状,玻纤板有一种半透明感,能把内部的光更好地透射出来,显示的效果更加美观。当然,如果材料有限也可以用其他的洞洞板,只不过效果没那么酷罢了。
02 然后在其中的一块洞洞板背面分别焊接上贴片LED和470Ω的贴片电阻,此作品要求越小越好,因此元器件都选用了贴片封装以减小体积,LED从左往右的排列为红、绿、蓝、红、绿、蓝(对应单片机的P3.0~P3.5引脚)。为了显示出七彩的效果,一定要按照红、绿、蓝的排列顺序,这三原色能组合出多种不同的颜色。注意要在中间间隔两个焊盘的位置,因为这块板子是放在左边的位置,也就是单片机P3组引脚的一边,为了更好地方便后面的对应焊接,中间跳过晶体振荡器引脚部分而焊接,焊接完成后如图所示。
03 在另一块板子,如图所示,连续焊接上贴片LED和470Ω的贴片电阻,此处6个LED灯对应P1.2~P1.7引脚,LED灯按照电路图所示的蓝、绿、红、蓝、绿、红的顺序排列。注意上面两块板子要对应好单片机的引脚位置。
04 分别剪出10针和7针的排针,并且用钳子把其弯曲成120°,如图所示,然后分别焊接在上面两块板子上,10针的对应电路图的左边,7针的对应电路图的右边。注意,要对应好LED灯位置,多出来的排针用于电源之间的连接。
05 在剩下的一块板子上焊接20脚的IC插座,然后把黄、绿两个高亮草帽LED灯的顶部弯曲成90°,如图所示,分别摆放在两端位置,黄、绿两个LED灯的顺序根据个人喜好摆放。
06 在背面焊接上光敏电阻的10kΩ贴片上拉电阻和两个高亮LED的1kΩ限流电阻,焊接完成后如图所示。
07 把左边部分的板子引出的排针对应好单片机的左边引脚位置,一一对应,注意板子背面朝外,大约弯曲成60°,然后用焊锡焊接固定好。
08 再把另一边的板子也按照上一步骤焊接上,也要注意排针对应好单片机的引脚位置,并且把光敏电阻从左边板子穿插进电路板内部,把光敏电阻的两端分别连接在单片机P1.0口和电源负极,这部分完成后如图所示。于是,一个由洞洞板组成的小型“金字塔”就制作完成了。
09 用一条大约1m长的两排排线把电源正、负极引出来,如图所示。你也可以多加两条排线把单片机的两个数据口引出来,方便程序的更新,由于我之前已经调试好了程序,因此在这里没有把数据线引出来。
10 接上电源,用手电筒在较暗的地方不断靠近光敏电阻,看看LED灯的花式显示结果是否如自己编写的程序一致,如图所示。
11 调试好程序后,就可以把它放进一个空玻璃瓶子里了,在底面板子的两端边上粘贴上双面胶,然后用镊子轻轻放进瓶子内部,在适合的位置上粘上去固定好,作品就可以宣布完成了,如图所示。电子爱好者也要加强环保意识,尽量利用废弃的物品来完成我们的电子制作,减少垃圾量,做到以废变新,这是一个不错的主意吧!而且LED灯发出的光在玻璃瓶的内壁折射又反射,显示出来的效果会比想象中要好多了!
12 插上电源,把“魔法瓶”放进较暗的地方,立即会显示出更加灿烂的炫彩闪耀效果,你一定会喜欢的。
程序部分说明
本作品最主要的部分是利用STC单片机内部的A/D转换功能,读取光敏电阻的阻值变化,进而控制LED灯的流动花式。STC12C2052AD内部置有8位AD转换功能,读取到的数为0~255的数值,然后把读到的数值分为几个范围区间,每个区间分别显示不同的LED流动花式。这里要注意的是,编写不同范围程序时,不能直接写成如“if(4040)&&(m<=60))”。
相关问答
usb转ttl接线 排针 是多大的?买了个usb转ttl集成模块,核心芯片是pl2303.集成模块一头是usb接口,用来插电脑usb接口的,一头是四个排针,分别是vcc,tx,rx,gnd。我想象的是vcc和gnd给单...