STM32数字万用表
简介
设计采用STM32F103C8T6单片机制作一款简单易用的数字万用表。其具有电压、电流、电阻、通断测量功能,拥有量程切换、波形显示、RMS值计算、超量程保护功能。该设计外围电路稳定可靠、价格低廉。
简介:设计采用STM32F103C8T6单片机制作一款简单易用的数字万用表。其具有电压、电流、电阻、通断测量功能,拥有量程切换、波形显示、RMS值计算、超量程保护功能。该设计外围电路稳定可靠、价格低廉。开源协议
:GPL 3.0
描述
设计要求
设计并制作一款实用的数字显示万用表,可测量电压、电流、电阻等。
(1)可测量电压范围:直流0~30V,误差±1%;
(2)可测量电流范围:直流0~2A,误差±1%;
(3)可测量电阻范围:0Ω~100KΩ, 误差±1%;
(4)使用OLED显示,主控采用STM32系列单片机;
(5)供电电源采用+12V供电;
(6)可实现量程自动切换;
(7)其它发挥部分;
系统框图
硬件设计
1.电源电路
本电路采用两级LM1117 LDO芯片串联组成。第一级将输入电压转换为5V输出;第二级将5V电压转换为3.3V,从而满足系统各模块的供电需求。
2.电压检测电路
使用1片LM324运放,分别取3路构成放大器、衰减器、跟随器,以适用不同电压等级输入。运放输出接入CD4052模拟开关,用于量程切换。
3.电流检测电路
电流感应放大芯片使用max4080,其放大倍数为20倍。通过继电器选取不同采样电阻 实现量程切换功能。
4.电阻检测电路
通过电阻分压原理实现电阻测量,通过MOS管选择不同量程分压电阻。
5.其他电路
包含OLED显示屏接口(OLED采用中景园电子 1.91英寸显示屏)、矩阵键盘接口等。
软件设计
初始化配置采用STM32CubeMX工具进行。逻辑代码主要目的是实现量程切换电路的控制、按键状态读取、测量结果处理和送入OLED屏幕显示等。
准确度优化和测试
准确度优化方案:
1.使用高精度分压电阻:所有分压电阻选用0.1%精度采样电阻。
2.软件使能自校正:使用HAL库函数:
HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef* hadc)
3.增大ADC周期数:本次设计在测量电压、电流、电阻时对实时性要求较低,因此可尽可能增大ADC周期数以提高测量精度,当前已设置为最大值(239.5Cycles)
4.软件滤波:设计采用滑动窗口滤波器,保证了滤波效果,也保证了实时性。
5. 线性拟合校正:通过记录设备读取值和标准万用表读取值,通过MatLab程序实现线性拟合。拟合实现相关系数为0.9999981的校正效果,精度进一步提高。
测试效果:
测试通过与UNI-T UT71C型号万用表进行比对,分别测量20次取平均值
模式 |
平均误差 |
电压 |
0.74% |
电流 |
0.96% |
电阻 |
0.85% |
三种模式测量平均误差统计
功能介绍和演示详见视频。提供stm32 axf烧录文件。
评论