找回密码
 立即注册
查看: 718|回复: 3

国二,使用STC32G荣获23年全国大学生电子设计竞赛B题国二

[复制链接]

该用户从未签到

2

主题

5

回帖

43

积分

新手上路

积分
43
发表于 2023-8-28 15:16:10 | 显示全部楼层 |阅读模式
大家好,我们是西安工程大学参赛队伍,本届电赛种荣获国二,很荣幸这次能在STC官方论坛发表我的小作品。先叠个甲,作品中有许多不足之处,各位轻喷。
B题要求看附件。
题中需要达到的几个目标:
(一)显示;
(二)能够测量2000cm以内的电缆长度,误差不大于1%;
(三)能够测量负载类型与负载值,误差不大于10%;
针对于这三个目标,我们逐个击破。
首先是“显示”。题目要求<=6V单电源供电,并且能够显示4行文字,使用OLED128*64刚好满足字数要求,且供电电压仅有5V。
其次是“长度测量”。这里我们把同轴电缆看作一个电容,电缆L越长,电容值C就越大。L与C之间关系可以参考公式 使用STC32G荣获23年全国大学生电子设计竞赛B题国二-1.png 这里除C与S以外,均为常量。而S仅与L有关,所以可以确定C与L为线性关系(实际中由于线材并非理想,所以关系近似线性)。我们的电容测量方案采用NE555芯片构成施密特触发器。加上电缆后可看作一个多谐振荡器,使用STC32G的PWM输入捕获,采集信号高电平时间Th。根据公式Th=(R1+R2)*C*ln2可推导出电容值C。通过这种方式,可将长度误差缩小至2cm。如果能加上拟合,则精度会更高。

最后是“负载检测”。电容通交隔直。各异根据这个特性来判断负载类型,这里我通过控制继电器,选择测量通路。使用STC32G片内ADC采样,判断负载类型及电
阻值。如果是电容,则根据“测量长度”中的方法,控制继电器切换,测量电容在原值上的增加量来计算负载电容值。
使用STC32G荣获23年全国大学生电子设计竞赛B题国二-2.png
1 系统整体图
电路设计以STC32G为主控芯片,NE555为信号发生器,使用IO口控制三极管通断,进而控制继电器通断,从而选择电路通路。我这里直接使用屠龙刀最小系统板。
使用STC32G荣获23年全国大学生电子设计竞赛B题国二-3.png
2 电路设计图
程序流程如图3所示。上电后,按开始键,显示屏显示工作状态“正在检测”,按“长度检测”约1s,工作状态为“结果保持”且显示电缆长度,按“负载检测”按键约1s,工作状态为“结果保持”且负载类型、负载数值及单位。

使用STC32G荣获23年全国大学生电子设计竞赛B题国二-4.png
3 程序流程
由于我们的作品还没回来,所以只能展示制作过程中拍的一张照片
使用STC32G荣获23年全国大学生电子设计竞赛B题国二-5.png
4 作品展示
电路板焊接完成后,测量供电大小为5.09V符合题目不大于6V的要求,测量电压跟随器输入输出电压为2V符合预期值,测量电路中电阻两端电压,与仿真中一致,电路板入输出接入示波器,可观测到预期波形,能够起振,如下图5所示,在对电路各种测试中,均符合题目要求。
使用STC32G荣获23年全国大学生电子设计竞赛B题国二-6.png
使用STC32G荣获23年全国大学生电子设计竞赛B题国二-7.png
a激励信号输入
b信号输出
5  输入输出波形图
将程序烧入,插入不同负载,记录屏幕显示情况,如图6所示,实验测量部分数据如图下表2所示。
使用STC32G荣获23年全国大学生电子设计竞赛B题国二-8.png
6  显示屏显示结果
4所示为负载接10Ω电阻时,显示屏的显示结果,负载类型为电阻,负载参数为9.76Ω,相对误差的绝对值为2.4%,符合题中10%的误差范围。
1  实验测试表
实际值
测量值
误差
电缆长度(L/cm
2000
2005
0.25%
1900
1902
0.11%
1850
1850.7
0.04%
1600
1606.9
0.43%
1400
1403
0.21%
1300
1302
0.15%
1200
1200.2
0.02%
1100
1100.4
0.04%
1000
1002.5
0.25%
负载
电阻
10
9.94
0.60%
16
16.14
0.87%
20
20.07
0.35%
24
24.10
0.41%
30
30.29
0.96%
电容/pf
102
102.4
0.39%
145
146.2
0.82%
180
179.1
0.50%
210
208.1
0.90%
305
305.7
0.22%
如上表1所示,在1000cm-2000cm之间的电缆,依据电缆误差做折线图如图7所示,误差约在0.13%左右,符合题目在1%的要求,负载测量中,电阻误差约0.638%左右,电容误差约在0.566%左右,负载误差均在要求范围内,因此,此装置无误。
使用STC32G荣获23年全国大学生电子设计竞赛B题国二-9.png

7 误差折线图


23年电赛B题国二-使用STC32G12k128单片机.zip

175.49 KB, 下载次数: 17

程序

西安工程大学B题国二.pdf

143.95 KB, 下载次数: 18

原理图

回复 送花

使用道具 举报

该用户从未签到

2

主题

5

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2023-8-28 15:33:29 | 显示全部楼层
B题做起来不难,但是测量非常麻烦,需要测一根20m的同轴电缆。在10M以上,因为误差范围大,测起来比较方便。在10m一下就需要一点一点测,非常耗费时间。我本想用拟合的方法去实现,但我们当时仅测不同长度下电缆的电容值就花了将近一天半的时间。此外一根电缆的价格也不低,学院十几只参赛队伍,我们能报销的金额非常有限。所以只做了一次测试,没有时间和电缆去实践拟合的方法。因此可以看到程序中存在大量if与else。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

5

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2023-8-28 15:38:51 | 显示全部楼层
pwm输入捕获部分,我是参考布丁橘长的程序,并在其基础上做修改。如果直接用布丁橘长的程序,使用信号发生器产生不同频率与占空比的方波信号,会发现测量高电平时经常会测量到低电平上。所以我在此添加的一个下降沿中断。在检测高电平时间时,先使用下降沿中断找到下降沿。以此下降沿为标志,开启上升沿下降沿中断,此时检测到的就上高电平时间,解决了高低电平检测错误的问题。
回复 支持 1 反对 0 送花

使用道具 举报

该用户从未签到

551

主题

9302

回帖

1万

积分

管理员

积分
14055
发表于 2023-8-28 17:29:51 | 显示全部楼层
开心,STC32位8051,初露锋芒
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-3 18:18 , Processed in 0.060912 second(s), 43 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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