|
大家好,我们是西安工程大学参赛队伍,本届电赛种荣获国二,很荣幸这次能在STC官方论坛发表我的小作品。先叠个甲,作品中有许多不足之处,各位轻喷。
B题要求看附件。
题中需要达到的几个目标:
(一)显示;
(二)能够测量2000cm以内的电缆长度,误差不大于1%;
(三)能够测量负载类型与负载值,误差不大于10%;
针对于这三个目标,我们逐个击破。
首先是“显示”。题目要求<=6V单电源供电,并且能够显示4行文字,使用OLED128*64刚好满足字数要求,且供电电压仅有5V。
其次是“长度测量”。这里我们把同轴电缆看作一个电容,电缆L越长,电容值C就越大。L与C之间关系可以参考公式
。这里除C与S以外,均为常量。而S仅与L有关,所以可以确定C与L为线性关系(实际中由于线材并非理想,所以关系近似线性)。我们的电容测量方案采用NE555芯片构成施密特触发器。加上电缆后可看作一个多谐振荡器,使用STC32G的PWM输入捕获,采集信号高电平时间Th。根据公式Th=(R1+R2)*C*ln2可推导出电容值C。通过这种方式,可将长度误差缩小至2cm。如果能加上拟合,则精度会更高。
最后是“负载检测”。电容通交隔直。各异根据这个特性来判断负载类型,这里我通过控制继电器,选择测量通路。使用STC32G片内ADC采样,判断负载类型及电
阻值。如果是电容,则根据“测量长度”中的方法,控制继电器切换,测量电容在原值上的增加量来计算负载电容值。
图1 系统整体图 电路设计以STC32G为主控芯片,NE555为信号发生器,使用IO口控制三极管通断,进而控制继电器通断,从而选择电路通路。我这里直接使用屠龙刀最小系统板。
图2 电路设计图 程序流程如图3所示。上电后,按开始键,显示屏显示工作状态“正在检测”,按“长度检测”约1s,工作状态为“结果保持”且显示电缆长度,按“负载检测”按键约1s,工作状态为“结果保持”且负载类型、负载数值及单位。
图3 程序流程图 由于我们的作品还没回来,所以只能展示制作过程中拍的一张照片
图4 作品展示 电路板焊接完成后,测量供电大小为5.09V符合题目不大于6V的要求,测量电压跟随器输入输出电压为2V符合预期值,测量电路中电阻两端电压,与仿真中一致,电路板输入输出接入示波器,可观测到预期波形,能够起振,如下图5所示,在对电路各种测试中,均符合题目要求。
将程序烧入,插入不同负载,记录屏幕显示情况,如图6所示,实验测量部分数据如图下表2所示。
图6 显示屏显示结果 图4所示为负载接10Ω电阻时,显示屏的显示结果,负载类型为电阻,负载参数为9.76Ω,相对误差的绝对值为2.4%,符合题中10%的误差范围。
表1 实验测试表 如上表1所示,在1000cm-2000cm之间的电缆,依据电缆误差做折线图如图7所示,误差约在0.13%左右,符合题目在1%的要求,负载测量中,电阻误差约为0.638%左右,电容误差约在0.566%左右,负载误差均在要求范围内,因此,此装置无误。
图7 误差折线图
|
|