STM32内阻(电阻)测量仪

一.概要

STM32课设题目设计要求:

1)基本要求:

(1)内阻测量范围:10~50Ω;

(2)量程为50Ω;

(3)测试误差:小于5% FS±0.2Ω;

(4)设计测试功能模块,采用LCD或者串口显示结果。

2)发挥部分:

(1)内阻测量范围:10~50Ω;

(2)测试误差:1%FS±0.2Ω。

拓展:人机设计交互功能。

二.整体架构设计流程

2.1硬件设计

(1)系统框图

 (2)电阻测量电路设计

测量原理:通过恒流源为待测电阻提供稳定的电流,然后测量该电阻两端的电压,利用欧姆定律(R = V / I)计算出电阻值。在这里,使用TL431恒流源和运放来实现这一功能。L431恒流源:TL431是一个三端可调分流基准源,可以输出一个稳定的电压,并通过外部电路转化为恒流源。通过精心设计的电路,TL431可以输出一个稳定的、低噪声的电流,为待测电阻提供恒定的电流。运放(运算放大器):运放用于放大待测电阻两端的电压信号,使其能够被A/D转换器准确读取。运放还具有高输入阻抗和低输出阻抗的特点,能够减小测量误差。(网络STM32ADC接单片机PA0)

(3) OLED显示屏电路设计

OLED使用的是0.96寸(总线SPI)7脚显示屏。引脚接线如下所示:

            GND ------------------ 电源地
            VCC ------------------3.3v电源
            D0   -------------------PA5(SCL)
            D1   -------------------PA7(SDA)
            RES------------------- PB0
            DC  ------------------- PB1
            CS   -------------------PA4 

2.2软件设计

代码比较简单,就添加OLED(SPI)库、ADC采样库还有单片机头文件就行了。下面这个代码只是main.c程序,它只能反映出大致的实现流程,如果想要完整的工程的小伙伴可以私聊我获取。

#include "stm32f10x.h"                  //头文件
#include "delay.h"
#include "OLED.h"
#include "AD.h"
#include "sys.h"
#include "bmp.h"
#define N 11
uint16_t ADValue;			//定义AD值变量
float Voltage;				//采集电压值变量
float RES_Voltage;    //电阻上的电压变量   公式:RES_Voltage=5-Voltage*2
float D_I=0.11;       //电流值变量  
float RES;            //电阻变量           公式:RES=RES_Voltage/D_I

int main(void)/*模块初始化*/		
{	
	AD_Init();				//AD初始化
	delay_init();
	OLED_Init();
	OLED_ColorTurn(0);//0正常显示,1 反色显示
  OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
	/*显示静态字符串*/
	OLED_ShowString(0, 0, "ADValue:",12);
	OLED_ShowString(0, 12, "Voltage:0.00V",12);
	OLED_ShowString(0, 24, "RES_Voltage:0.00V",12);
	OLED_ShowString(0, 36, "D_I:0.00A",12);
	OLED_ShowString(0, 48, "RES:00.0R",12);
	while (1)
	{
		OLED_DisPlay_On();                 //开始显示
		ADValue = AD_GetValue();				//获取AD转换的值
		Voltage = (float)ADValue / 4095 * 3.3;		//将AD值线性变换到0~3.3的范围,表示电压		
		OLED_ShowNum(48, 0,ADValue,4,12);				//显示AD值-----第1行显示		
		OLED_ShowNum((9-1)*6, 12, Voltage, 1,12);				//显示电压值的整数部分-----第2行显示
		OLED_ShowNum((11-1)*6, 12, (uint16_t)(Voltage * 100) % 100, 2,12);	//显示电压值的小数部分	
		RES_Voltage=5-Voltage*2;//显示电阻上的电压值-----第3行显示
		OLED_ShowNum((13-1)*6, 24, RES_Voltage,1,12);	//显示电阻上的电压值的整数部分					
		OLED_ShowNum((15-1)*6, 24, (uint16_t)(RES_Voltage * 100) % 100, 2,12);	//显示电阻上的电压值的小数部分		
		RES=RES_Voltage/D_I;//显示电流值
		OLED_ShowNum(4*6, 36, D_I,1,12);	//显示电流值的整数部分		-----第4行显示			
		OLED_ShowNum(6*6, 36, (uint16_t)(D_I * 100) % 100, 2,12);	//显示电流值的小数部分	
		RES=(RES_Voltage/D_I);//显示电阻值-----第5行显示
		OLED_ShowNum(4*6, 48, RES,2,12);	//显示电阻值的整数部分					
		OLED_ShowNum(7*6, 48, (uint16_t)(RES * 100) % 10, 1,12);	//显示电阻值的小数部分
		OLED_Refresh();//将要显示的数据存缓存中
		delay_ms(100);//延时100ms,手动增加一些转换的间隔时间		 
	}	
}

三.仿真和实物测试

(1)测量电路仿真

通过在Protues仿真软件上仿真“电阻测量电路”,测试效果还是可以的,当改变待测电阻阻值的时候,输出也跟着发生改变,而且灵敏度也挺高的,后来我将这些测量数据记录在Excel表格里,再整理一下,就整出下面的这张表格了,通过这个表格可以看出测量精度还是不错的,只不过在测40-50欧姆这个区间有亿点点误差而已。

 

(2)实物测试

有了前面的数据支撑,我就开始画板、打板、焊接、下载程序,经过这一连串工序,才将我的项目 做出来,下面就是实物的测试图:

 先用万用表测量出电阻值,然后将电阻引脚插到板子的待测区域测量。

 

四.技术细节

1.测量电路使用的电源是开发板上的5V

2.OLED的电源要用3.3V供电,如果是5V供电会显示异常(不显示)

五.小结

项目还有待优化空间,比如可以在板子上加个开关,用于触发开始测量信号,当未按下按键时不测量,当有按键按下时才开始进行测量;除此之外,程序部分还可以添加一些ADC滤波算法,比如取中位值、平均值等。到此结束了,希望本篇文章对你有些许的帮助!

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
STM32简易RCL测量仪是一款基于STM32单片机的简单电路参数测量仪器。它主要用于测量电阻、电容和电感的数值并显示在液晶屏上。 该测量仪的主要原理是利用STM32单片机的ADC(模数转换器)功能来测量电路中的电压。通过将待测元件(电阻、电容或电感)连接到测量仪的测试端口上,待测元件的电压信号会经过电压分压电路降低到STM32单片机ADC输入电压范围内,然后通过ADC进行采样和转换。 在测量阻值时,电路中的电压分压电阻会根据待测电阻和已知参考电阻组成的电压分压比例将待测电阻的电压信号转化为ADC输入电压,然后通过软件计算即可得到待测电阻的阻值。 在测量电容时,通过外部电路将待测电容与参考电容并联,利用充放电过程测量电压的变化。测量仪通过对待测电容进行恒流充电并记录电压的变化曲线,根据相关公式进行计算即可得到待测电容的电容值。 在测量电感时,电路中的待测电感与所选参考电感串联,利用自谐振法或LC谐振法进行测量测量仪通过调节外部电路的频率来达到电感的谐振状态,然后通过测量电感的谐振频率即可得到待测电感的电感值。 通过以上测量原理,STM32简易RCL测量仪可以准确测量电路中的电阻、电容和电感值,并将结果通过液晶屏显示出来,提供给用户参考。同时,该测量仪还具有体积小巧、操作简便等特点,是电子爱好者和学生学习电路基础知识和调试电路的理想工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郑TE_Lab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值