【硬禾杯】“寒假在家一起练”元件特性测试仪
已完成了12端口对电阻、电容、二极管的识别及其参数测量,对三极管的结构和其基极连接的端口的判断。
标签
嵌入式系统
STM32
测试
什鲤子
更新2021-03-07
1521
  • 项目要实现的功能:

       通过编程完成对5种以上元器件特性的测量,比如: 电阻、电容、电感、二极管、三极管、能够自动识别元器件、在OLED屏幕上通过图形化的界面显示各种元器件的符号及测量得到的信息。

 

  • 项目的实施方案:

       元件特性测试仪模块上有三个排针,每个排针都连接到STM32G0芯片模块的3个引脚,3个引脚分别为直接连接(用于ADC测量)、经680Ω电阻连接和经470kΩ连接。可以通过设置引脚的状态(输出高电平、输出低电平、浮空输入、模拟)来判断元器件及对元器件参数的测量。

       1.元件的识别:

       首先判断是否为三极管。分别对三个端口做如下操作:一端口通过680Ω电阻置高电平,另外两端口通过680Ω置低电平。根据adc测量的电压情况判断是否接入的三极管。

       然后判断是否为二极管,假设二极管两端分别为a和b,a端置高电平b端置低电平和a端置低电平b端置高电平分别可以用ADC测出两个电压值,若电压值一大一小,则说明一种情况导通另一种情况不导通,则判断为二极管。

       如果得到的两个电压值相同,则进行下一步判断。

       先a端置高b端置低,延迟一段时间后测一次电压,把a端置低,再立即测一次电压。若两次电压相差很小,则为电容(电容放电需要时间),若两次电压相差很大,则为电阻。

       2.电阻的测量:

       如下图所示,PA5输出高电平,PA12输出低电平,电流就从PA5流向PA12,被测电阻与680Ω分压用ADC测得电压值,利用分压公式即可求得被测电阻的阻值。对小电阻的测量用680Ω分压,对大电阻用470kΩ分压。但实际情况不理想。

       FoZm1ZISH0apzwfPyCHhlrgj2f8t

       设想所测电压值(或利用分压公式求得的电阻)与实际的电阻呈函数关系,故进行大量实验,利用Excel得到实际电阻与所测参数的函数关系。

       最初试图得到所有电阻的函数关系,但误差过大。故分段进行测量,求得每段的函数关系,达到不错的效果,但由于电阻较大时,阻值与参数(即图中的mV)的斜率过大,470kΩ分压影响太小等因素,导致参数小小的变动就会引起巨大的电阻变化,而AD测量无法绝对精确,故电阻较大时,不可避免的误差也较大。

       Fst9F6-6dTZerO8i5Fy0TszYUloE

       非常值得注意的是,由于每个板子ADC测得电压会有小小的不同,用一个板子得到的函数很大可能不适用于另一个板子,因此其他板子用程序测得电阻很难保证精度。

       3.电容的测量:

       首先对电容进行充电,测得电容电压(一般为3300mV),然后将电容通过680Ω电阻放电固定时长,再次测得电容电压。通过电容放电公式即可求得电容容值。

       为追求测量精度,又添加了如下操作:

       (1)若测得电容电压过小,则说明电容较小,放电过快,应再完成充电操作并改为通过470kΩ放电。

       (2)若测得电容电压过大,则说明电容较大,放电很慢,应再完成充电操作并增加放电时间再测得电容电压,确保电容电压处在精度尽可能高的范围内(1600mV左右),以避免误差。

       (3)类似对电阻的测量,同样通过分段求得所测电容与真实电容的函数关系使得测量结果更为精确。

       由于小电容的性质近似电阻,太大电容的参数会符合三极管的判断依据,因此为必免元件识别错误,容值的测量范围不会太大。

       4.二极管导通电压的测量

       判断二极管导通方向后,置相应的高低电平,用ADC测得二极管两端电压相减即可得到导通电压。

       5.三极管结构的判断与极的判断

       对三个端口分别进行如下操作:一端口置高电平,另外两端口置低电平。用ADC测得置高电平端口的对应电压。若电压小于3.3V,则说明三极管导通。判断得到这种电压的端口的数量:若数量为1,则说明仅当该端置高电平时三极管导通,则该管为NPN型管,该端连接的是基极;若数量为2,则说明有两端能在置高电平时三极管导通,则该管为PNP型管,除这两端之外的一端连接的是基极。

       6.在OLED屏幕上通过图形化的界面显示各种元器件的符号及测量得到的信息:

       利用模拟i2c点亮OLED屏,在网上搜索相关例程,移植到该板上即可用OLED屏显示你想要的符号信息等。

 

  • 项目完成情况:

       1.能够识别电阻,电容,二极管和三极管。(仅完成1,2端口对两脚元件的识别);

       2.能够测量电阻的阻值(仅1,2端口,能保证在50Ω~1MΩ间有较高的精度);

       3.能够测量电容的容值(仅1,2端口,能保证在30nF~500μF间有较高的精度,超出范围可能会误判为其他元件);

       4.能够测量二极管的导通电压(仅1,2端口,测量范围不确定,估计在100mV~3V之间);

       5.能够判断三极管的结构类型(NPN或PNP),能够指出三极管基极连接的端口(未能区分集电极和发射极);

       6.能够在OLED屏幕上通过图形化的界面显示各种元器件的符号及测量得到的信息。

 

  • 项目总结:

       由于除c语言外几乎都是零基础起步,因此在设计过程中遇到了很多的困难,如看不懂原理图导致不知道使用模拟iic点亮OLED屏幕,HAL_Delay会使中断失灵(Start键用的中断),按键没有去抖导致每次按下Start键经常会测试两次,利用分压测量电阻不准确等等。通过查阅资料,大多都已解决。但也有不少遗憾,如仅完成1,2端口对两脚元件的测量(板子好像损坏了,第三端口连接680Ω的引脚置高电平后测电压误差非常大),没能区分三极管发射极和集电极等。

       感谢硬禾公司提供的这次锻炼机会,我们从这次的项目中收获了太多太多,以后一定会更加努力。

 

  • 参考资源:

https://blog.csdn.net/xiaocaidayong/article/details/106251696?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

https://www.eetree.cn/project/detail/63

 

 

 

附件下载
SoftwareCompileAttempt_1.rar
整个工程文件(STM32cubeIDE)
SoftwareCompileAttempt_1.hex
hex文件
团队介绍
一支正在努力的团队
团队成员
刘安邦
学校:南京信息工程大学 学院:电子与信息工程学院 专业:电子信息工程 学号:201983270160 班级:电信1班
史少寒
学校:南京信息工程大学 学院:电子与信息工程学院 专业:电子信息工程 学号:201983270159 班级:电信3班
胡涛
学校:南京信息工程大学 学院:电子与信息工程学院 专业:通信工程 学号:201983270174 班级:通信3班
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号