ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

闲置Arduino UNO变身晶体管测试仪:ArduTester V1.13实战指南

闲置Arduino UNO变身晶体管测试仪:ArduTester V1.13实战指南 1. 一块吃灰的UNO能变成什么手头攒了好几块Arduino UNO有的还是最早那批UNO R3USB接口都松了但板子本身还能跑。扔了可惜放着占地方总得给它们找点正经事做。ArduTester V1.13这个项目就是把这些闲置板子变成一台能测晶体管的小仪器——测三极管、场效应管、二极管、电阻、电容甚至能自动识别引脚排列。我第一次看到这个项目的时候第一反应是这不就是把万用表的部分功能用单片机重新实现了一遍吗但实际用下来发现它的价值不在于替代万用表而在于自动识别和参数测量这两件事上比手动挡万用表省事太多。这个项目适合谁如果你手头有闲置的Arduino UNO或者UNO R3又经常跟各种三极管、MOS管打交道比如修个小电路、做点功放、搞搞开关电源那这个东西值得花一个下午焊出来。它不需要什么精密仪器核心就是一块UNO、几个电阻、一个1602液晶屏再加一个IC座或者几个接线端子。成本算下来如果你已经有UNO了额外花销大概在二十到三十块钱之间。测出来的参数虽然比不上专业晶体管图示仪那么精确但日常筛选元件、判断好坏、粗略配对完全够用。我前后做了三台第一台用的是最老的UNO R3第二台是后来买的兼容板第三台是UNO R3的改进版。三台都能跑但细节上有差异后面会细说。这篇文章就把我从选件、焊接、烧录到实际测量的整个过程拆开讲包括踩过的坑和后来总结出来的小技巧。2. 项目整体设计与核心思路拆解2.1 为什么选UNO而不是其他板子ArduTester这个项目最早是在Arduino平台上发展起来的V1.13这个版本对UNO的适配是最成熟的。为什么是UNO原因很直接UNO的I/O口数量够用5V逻辑电平跟大多数常用晶体管的工作电压匹配而且UNO的模拟输入口A0-A5可以直接用来做电压采样不需要额外的ADC芯片。更关键的是UNO的供电能力足够驱动1602液晶屏和被测元件不需要外接电源。有人会问用Nano行不行行但Nano的引脚排列跟UNO不一样PCB得重新画。用ESP32行不行也行但ESP32是3.3V逻辑测某些需要5V偏置的元件时会有问题而且ArduTester的固件主要是针对AVR系列单片机写的移植到ESP32上要改不少东西。所以如果你手头有UNO或者UNO R3直接用别折腾。2.2 核心测量原理怎么用单片机测晶体管ArduTester的测量原理说起来不复杂但实现起来需要一些技巧。核心思路是用单片机的I/O口给被测元件施加不同的电压组合然后通过模拟输入口读取电压值再根据欧姆定律和晶体管特性反推出元件的参数。具体来说测三极管的时候ArduTester会先把三个引脚分别假设为基极、集电极、发射极然后通过不同的引脚组合施加电压测量电流放大倍数hFE和基极-发射极电压Vbe。如果某个引脚组合测出来的hFE在合理范围内比如10到1000之间就认为找到了正确的引脚排列。这个过程需要遍历六种可能的引脚组合所以你会看到液晶屏上闪一下才出结果。测场效应管的时候原理类似但参数变成了阈值电压Vgs(th)和跨导gfs。测二极管的时候就是测正向压降。测电阻和电容的时候用的是RC充放电原理通过测量充电时间来计算阻值或容值。这里有个关键点ArduTester的测量精度受限于UNO的ADC分辨率10位和内部参考电压的稳定性。所以测小电阻比如几欧姆的时候误差会比较大测大电容比如几千微法的时候也会慢。但测常见的三极管、二极管、小容量电容精度完全够用。2.3 硬件选型哪些件必须用好的哪些可以凑合整个项目里最不能凑合的是液晶屏。1602液晶屏有带I2C转接板和直接并行接口两种。ArduTester V1.13默认支持的是并行接口的1602也就是需要接6根数据线加3根控制线。如果你用I2C转接板需要改固件或者加库麻烦。所以建议直接买并行接口的1602虽然线多但稳定。电阻方面测量用的参考电阻需要精度高一点建议用1%精度的金属膜电阻。我第一台用的是5%的碳膜电阻测出来的hFE跟万用表对比差了将近20%。后来换成1%的误差降到5%以内。电容方面液晶屏旁边的滤波电容用普通的电解电容就行但测量用的参考电容建议用CBB或者独石电容温度稳定性好。IC座或者接线端子建议用质量好一点的。我第一台用的是便宜的IC座插拔几次之后接触不良测出来的数据跳来跳去。后来换成圆孔IC座问题解决。如果你经常测不同封装的元件可以焊几个不同间距的端子比如2.54mm和5.08mm各一组。3. 核心细节解析与实操要点3.1 电路连接别被那么多线吓到ArduTester的电路连接看起来线很多但理清楚之后其实就三部分液晶屏、测量端口、电源。液晶屏的接线是固定的按照固件里的定义接就行。测量端口是三个引脚分别对应被测元件的三个脚。电源就是UNO的5V和GND。具体接线我列个表方便对照UNO引脚连接对象说明D2-D7液晶屏D4-D7、RS、E数据和控制线D8液晶屏RS寄存器选择D9液晶屏E使能D10液晶屏背光控制可选不接也行A0测量端口1通过参考电阻接被测元件A1测量端口2通过参考电阻接被测元件A2测量端口3通过参考电阻接被测元件A3参考电压检测用于校准5V液晶屏电源、参考电阻上拉GND液晶屏地、测量端口地这里要注意A0、A1、A2这三个测量端口每个都要通过一个参考电阻接到5V或者GND具体接法取决于固件版本。V1.13的接法是每个端口通过一个680欧姆电阻接到5V同时通过一个470欧姆电阻接到GND。这样做的目的是给被测元件提供一个稳定的偏置电压同时限制电流防止被测元件或UNO引脚损坏。注意如果你测的是大功率三极管或者MOS管建议在测量端口串联一个100欧姆的限流电阻防止瞬间电流过大烧掉UNO的引脚。我有个朋友就是测一个TIP122的时候没加限流结果UNO的A1口直接挂了。3.2 固件烧录版本选择与配置修改ArduTester V1.13的固件可以在项目主页下载是一个.ino文件。用Arduino IDE打开之后需要根据你的硬件配置修改几个地方。最常见的是液晶屏的引脚定义如果你不是按照默认引脚接的就要改。另外如果你用的是UNO R3需要确认板子型号选的是“Arduino Uno”处理器选的是“ATmega328P”。烧录的时候有个坑有些兼容板用的是CH340串口芯片需要先装驱动。装完驱动之后在设备管理器里看一下端口号然后在Arduino IDE里选对端口。如果烧录失败先检查端口选对没有再检查板子型号选对没有。还不行的话试试按住复位键再点上传等IDE显示“正在上传”的时候松开复位键。固件里还有一个参数叫“REFERENCE_RESISTOR”默认是680欧姆。如果你用的参考电阻不是这个值要改。改完之后重新烧录。这个值直接影响测量精度所以别偷懒。3.3 校准让测量结果更靠谱ArduTester有一个校准模式进入方法是按住测量键如果你接了按键或者在上电的时候短接某个引脚。校准的目的是让单片机知道自己的参考电压和参考电阻的实际值从而修正测量误差。校准的时候需要接一个已知阻值的电阻比如100欧姆的1%精度电阻。然后按照屏幕提示操作单片机自动计算修正系数。校准一次之后系数会保存在EEPROM里下次上电不用重新校准。我实测下来校准前后测同一个三极管的hFE差别能有10%到15%。所以如果你对精度有要求校准这一步不能省。校准用的电阻精度越高越好我用的是0.1%的虽然贵一点但一次校准能用很久。4. 实操过程与核心环节实现4.1 焊接与组装从零到能跑我第一台ArduTester是直接焊在洞洞板上的线比较多焊完之后像一团乱麻。后来第二台我画了个简单的PCB把液晶屏、电阻、端子都集成上去清爽很多。如果你不想画PCB用洞洞板也行但建议先把液晶屏的线焊好再焊测量端口的电阻最后焊电源线。这样不容易乱。焊接顺序建议先焊IC座或者接线端子固定在板子上。焊参考电阻注意阻值和精度。焊液晶屏的排针如果液晶屏直接焊在板子上注意方向别搞反。焊电源线和地线用粗一点的线减少压降。最后焊UNO的排针如果UNO是插在板子上的用排母。焊完之后先别插UNO用万用表检查一下5V和GND有没有短路。确认没问题再插UNO上电看液晶屏亮不亮。如果不亮先调对比度电位器再检查接线。4.2 第一次测量从已知元件开始上电之后液晶屏会显示“ArduTester V1.13”然后进入测量模式。这时候你把一个已知的三极管插到测量端口上比如S8050等一两秒屏幕就会显示引脚排列和hFE值。我第一次测的时候屏幕显示“Unknown”或者“No component”后来发现是测量端口的接触不良。换了IC座之后就好了。所以如果你也遇到这个问题先检查接触再检查参考电阻的阻值对不对。测二极管的时候注意方向。ArduTester会自动识别阳极和阴极但如果二极管的反向击穿电压低于5V可能会测不准。测发光二极管的时候因为正向压降比较高1.8V到3.3VArduTester也能测出来但不会点亮它所以别指望看到发光。测电容的时候小容量电容比如100nF测起来很快大容量电容比如1000uF需要几秒钟。测电解电容的时候注意极性反接可能会损坏电容或者测量电路。4.3 参数解读hFE、Vbe、Vgs(th)都代表什么测三极管的时候屏幕会显示hFE和Vbe。hFE是电流放大倍数Vbe是基极-发射极电压。对于小信号三极管hFE一般在100到300之间Vbe在0.6V到0.7V之间。如果hFE特别低比如小于10或者特别高比如大于1000可能是元件坏了或者引脚识别错了。测场效应管的时候屏幕会显示Vgs(th)和gfs。Vgs(th)是阈值电压对于常见的MOS管比如IRF540Vgs(th)在2V到4V之间。gfs是跨导表示栅极电压变化对漏极电流的影响数值越大越好。测电阻的时候屏幕会显示阻值。注意ArduTester测电阻的范围有限大概从几欧姆到几百千欧。超出范围会显示“Out of range”。测小电阻的时候要把测量线本身的电阻考虑进去所以最好用四线法但ArduTester只有三线所以测小电阻误差会大一些。测电容的时候屏幕会显示容值。电解电容的容值误差一般比较大标称1000uF的实测可能在800uF到1200uF之间这是正常的。但如果实测值只有标称值的一半或者更少那电容可能老化了。5. 常见问题与排查技巧实录5.1 屏幕不亮或者显示乱码这是最常见的问题原因通常有三个对比度没调好、接线错了、液晶屏坏了。先调对比度电位器如果调了没用检查液晶屏的D4-D7、RS、E这几根线有没有接错或者虚焊。如果接线没问题换一块液晶屏试试。我遇到过一块液晶屏背光亮但没字符换了之后就好了。5.2 测量结果不稳定数值跳来跳去这个问题多半是接触不良引起的。检查IC座或者端子的接触是否紧密测量线是否太长。如果测量线太长会引入干扰建议把测量线缩短到10厘米以内。另外UNO的电源质量也会影响测量结果如果USB供电不稳可以试试外接9V电源。5.3 测某些元件显示“Unknown”如果测三极管或者MOS管显示“Unknown”可能是引脚识别失败。原因可能是元件的hFE太低或者太高超出了固件的识别范围。也可能是元件的某个引脚坏了。你可以先用万用表测一下元件的基本好坏再放到ArduTester上测。如果万用表测出来是好的但ArduTester识别不了那可能是固件的识别算法对这类元件不适用。5.4 测电容的时候特别慢测大容量电容的时候充电时间比较长所以慢是正常的。但如果你测小容量电容也很慢可能是参考电阻或者参考电容的值不对。检查固件里的“REFERENCE_RESISTOR”和“REFERENCE_CAPACITOR”这两个参数确保跟实际用的元件值一致。5.5 常见问题速查表问题现象可能原因解决方法屏幕不亮对比度没调好、接线错、屏坏调对比度、检查接线、换屏显示乱码数据线接触不良、固件引脚定义错检查D4-D7、改固件定义测量值跳动接触不良、测量线太长、电源不稳换IC座、缩短线、外接电源显示Unknown元件坏、引脚识别失败、超出范围用万用表确认、换元件、改固件测电容慢电容容量大、参考元件值不对正常现象、检查固件参数测电阻不准参考电阻精度低、测量线电阻换1%电阻、校准、用四线法6. 几个让测量更准的小技巧第一个技巧测量前先短接三个测量端口让ArduTester自检一下。如果自检显示“OK”说明测量电路正常。如果显示“Error”说明参考电阻或者接线有问题。这个习惯能帮你快速排除硬件故障。第二个技巧测三极管的时候如果hFE值跟 datasheet 上的典型值差太多先别急着扔。有些三极管的hFE跟集电极电流有关ArduTester的测试电流比较小所以测出来的hFE可能偏低。你可以用万用表的hFE档对比一下如果万用表测出来也低那才是真的低。第三个技巧测MOS管的时候注意栅极的保护。MOS管的栅极很脆弱静电或者过压都可能击穿。ArduTester的测量端口虽然有电阻限流但如果你手上有静电插拔的时候还是可能损坏MOS管。建议在测量端口并联一个12V的稳压二极管防止过压。第四个技巧如果你经常测同一种元件可以做一个专用的测试座。比如把TO-92封装的三个孔固定在一个小板上焊上引线接到测量端口。这样插拔方便接触也好。我用这个方法测了几百个三极管效率高很多。第五个技巧固件里的测量延时可以调整。默认的延时是几百毫秒如果你觉得测量速度慢可以改小一点。但改太小会影响测量精度所以别贪快。我一般保持在默认值稳定比快重要。7. 这个项目还能怎么玩ArduTester V1.13本身的功能已经比较完整了但如果你愿意折腾还有几个扩展方向。一个是加一个旋转编码器用来切换测量模式不用每次都插拔元件。另一个是加一个SD卡模块把测量结果保存下来方便批量筛选元件。还有一个是改固件支持更多类型的元件比如可控硅、光耦。我目前在做的一个扩展是加一个蓝牙模块把测量结果传到手机上。这样测的时候不用盯着液晶屏看手机上直接显示。不过这个需要改固件和写手机端程序工作量不小等做好了再分享。如果你只是想要一个能用的晶体管测试仪那按照上面的步骤做出来就行。如果你想要一个能折腾的平台那ArduTester的固件是开源的你可以随便改。我个人的体会是这个项目最大的价值不是省了买万用表的钱而是让你重新理解了单片机怎么跟模拟电路打交道。测一个三极管背后是ADC采样、欧姆定律、晶体管特性曲线这些基础知识的综合应用。把这些东西串起来比单纯看教科书有意思多了。
返回列表