本文作者:立创开源硬件平台 OSHWHub 用户@ geekmwb,禁止商用,未经许可禁止转载,点击查看原文章
1、工程描述
用STM32F103C8T6制作了一款简易的数字万用表,使用OLED显示测试数据。
其具有——电压、电流、电阻、通断测量、量程自动切换、波形显示、RMS值计算、超量程保护功能。
该设计外围电路稳定可靠、价格低廉。
2、工程参数
可测量电压范围:直流0~30V,误差±1%;
可测量电流范围:直流0~2A,误差±1%;
可测量电阻范围:0Ω~100KΩ, 误差±1%;
供电电源采用+12V供电。
3、硬件设计
01、电源电路
本电路采用两级LM1117 LDO芯片串联组成。第一级将输入电压转换为5V输出;第二级将5V电压转换为3.3V,从而满足系统各模块的供电需求。
02、
电压检测电路
使用1片LM324运放,分别取3路构成放大器、衰减器、跟随器,以适用不同电压等级输入。运放输出接入CD4052模拟开关,用于量程切换。
03、
电流检测电路
电流感应放大芯片使用max4080,其放大倍数为20倍。通过继电器选取不同采样电阻 实现量程切换功能。
04、
电阻检测电路
通过电阻分压原理实现电阻测量,通过MOS管选择不同量程分压电阻。
05、
其他电路
包含OLED显示屏接口(OLED采用中景园电子 1.91英寸显示屏)、矩阵键盘接口等。
4、软件设计
初始化配置采用STM32CubeMX工具进行。
逻辑代码主要目的是实现——量程切换电路的控制、按键状态读取、测量结果处理、送入OLED屏幕显示等。
5、准确度优化和测试
01、准确度优化方案
所有分压电阻选用0.1%精度采样电阻。
软件使能自校正,使用HAL库函数:
HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef* hadc)
尽可能增大ADC周期数以提高测量精度,当前已设置为最大值(239.5Cycles)。本次设计在测量电压、电流、电阻时对实时性要求较低。
设计采用滑动窗口滤波器,保证了滤波效果、实时性。
线性拟合校正:通过记录设备读取值和标准万用表读取值,通过MatLab程序实现线性拟合。拟合实现相关系数为0.9999981的校正效果,精度进一步提高。
02、
测试效果
测试通过与UNI-T UT71C型号万用表进行比对,分别测量20次,取平均值:
更多详情及附件,可从原工程查看。
本文作者:立创开源硬件平台 OSHWHub 用户@geekmwb,禁止商用,未经许可禁止转载