项目描述
- 完成基于STM32G031的元器件特性测试仪,可以实现对于电阻、电容、电感、二极 管、三极管5种元器件特性的测量
- 通过每一组引脚充放电的导通情况判断元器件类型,并在OLED屏幕上展示
实现思路
参考https://www.eetree.cn/project/detail/63给出的方案,通过每一组引脚充电放电的导通情况判断大致的器件类型以及连接的引脚,通过三组ADC数据判断电压状态,对比元器件特性实现判断
实验过程
获取ADC组间电压状态过程中,缺少工具完成对于三根线信号的实时获取,在用手连接测试的过程中常出现断连、误触等情况干扰实验数据
初始实验中,获取三组信号过程为 测量第一组信号——等待转换完成——存储数据——等待手工调整——测量第二组数据 在手工调整过程中,需要对数据进行多次测量判断,以免录入误差数据,且等待过程时间应设置较长,以留出足够时间切换,由于个人能力不足,该部分代码过于臃肿,无法烧录进单片机中,在后续设计中舍弃
为减小代码大小,同时考虑到时间原因,故而舍弃了对部分仪器的测试,选择对于电阻,二极管进行测量
二极管判断
根据二极管单向导通性我们了解,其正向导通与反向导通差值较大,所以我们在ADC值中取一粗略范围,将其划定为二极管电压范围,取消对于极大电阻的测量,保留通路测试
电阻判断
只考虑测量两个器件的情况下,将判断为非二极管元件的器件简单划为电阻,期间对于电容电感考虑过在数值上进行判断,但由于每次测试时误差较大,实现后无法准确判断其是否为电容或电感,故舍弃。
OLED显示
使用同期岑同学元器件点阵图库,加入开屏显示和过场显示
实验结果
- 自动识别电阻与二极管
- 对常用电阻进行测量
- 将识别结果展示在OLED屏上
个人总结
前期未做好准备工作,到实际测量时既没有字母线也没有待测元件,后在废弃收音机上拆卸才获得必要的待测元件,但仍只能通过手动接触,难以准确测量。
第一次完成一个项目,过程中一直能感受到自己基础缺失带来的不便,从如何添加头文件到烧录过程中不停查阅资料、教程,参考示例代码,完成的项目与其说是自己开发,不如说是东拼西凑出来的瑕疵品,但在查阅的过程中发现了平时看视频、对着例程写程序时发现不了的问题,对于我来说还是值得高兴与肯定的。
板子的内存不是很大,在实现OLED显示时曾用过汉字和图片,大大占用了内存,且易在烧录过程中失败。串口烧录时发现FLYMCU烧录进芯片后无反应,需使用CubePRG才能进行烧录,而CubePRG使用时对于java环境的配置优化不完全,无对于系统设置修改的报错,在还原默认设置时才能使用。CubeIDE使用中逐行测试不支持串口连接,对于测试代码带来了很大的困扰。希望能在接下来的过程中完善代码,实现对多种元件的识别,减少误差,同时在这感谢硬禾和学校在寒假期间提供的这次机会,让我对单片机的开发有了实际的体验。