发作品签到
专业版

【新手向】地文星CW32电压电流表

工程标签

2.4k
0
0
4

简介

立创地文星是一款采用芯源半导体CW32设计的开发版,具有优秀的ADC性能。借助该开发板设计了一款电压电流表,可以同时测量0-30V电压以及0-3A电流,具有不错的精度。所有资料已经开源,快来复刻吧!

简介:立创地文星是一款采用芯源半导体CW32设计的开发版,具有优秀的ADC性能。借助该开发板设计了一款电压电流表,可以同时测量0-30V电压以及0-3A电流,具有不错的精度。所有资料已经开源,快来复刻吧!
电压电流表训练营【立创开发板&CW32】

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2024-07-15 08:20:33更新时间:2024-11-25 02:20:03

描述

封面图.jpg

本项目参加了由立创开发板和CW32社区组织的电压电流表训练营活动

作品获得三等奖

立创地文星是一款采用芯源半导体CW32设计的开发版,具有优秀的ADC性能。借助该开发板设计了一款电压电流表,可以同时测量0-30V电压以及0-3A电流,具有不错的精度。所有资料已经开源,快来复刻吧!

产品展示视频:https://www.bilibili.com/video/BV1T8W4erEXn/#reply112995304803317


读前说明:

  • 2024.11.24 更新说明:本项目已于9月10日优化完成,最终软件版本为V3.0,后续将不再更新。

  • 2024.9.10 软件更新:CW32_VAMeter_V3.0

【新增】
1. 根据电流试验 ADC-I 曲线结果对电流计算进行优化,将0.5A和1.5A标定修改为0.5A、1A和2A 3个标定点,提升了测量精度;
2. 新增电压、电流通过曲线拟合(通过实验计算得出,每个硬件不同)计算结果;
3. 默认通过曲线拟合计算电压和电流值(调整Calculate_Mode参数改变默认计算方式)。普通测量模式下当按下【返回】键调整为标定计算;按下【标定】键调整为曲线拟合计算。
【优化】
1. 优化各模块代码,提升可读性;
2. 整合参数常量至ConstParameter_Config.h中,可以在此修改Vref、均值个数、默认电压电流配置参数、电流电压计算模式、3V电路斜率K值。


  • 2024.8.24 软件更新:CW32_VAMeter_V2.0

【新增】
1.整理各模块代码,提升可读性;
2.新增UART3串口调试功能(波特率115200);
3.研究了3V、30V、3A电路ADC误差值,以及按照线性拟合规律时K值的变化规律(详第五章);
4.将5V和15V标定优化为3V、8V和15V标定(目前硬件只允许升压至8V+,可自行修改标定点位);
5.新增3V测量电路,当电压小于3V时自动切换测量电路。
【优化】
启动时若无用户配置则读取默认配置,并且启动数码管坏道检测程序。
【修复】
修复数码管显示驱动:两位整十数(如90)时误显示“---”,实际应显示为0.90。

  • 原文导读

一、功能说明(产品功能、使用说明、开发工具说明)
二、硬件设计(原理图说明、Layout和焊接注意事项)
三、软件设计(软件架构、各功能模块说明)
四、调试测试(模拟测量、模拟标定)
五、有关标定误差、标定点设置的研究(20240824更新)
六、结语


一、功能说明

1.1 产品功能

  • 应用功能
  • 支持0-30V电压测量,显示精度0.1V/0.01V;支持0-3V自动换档测量,显示精度0.01V;
  • 支持0-3A电流ADC测量,显示精度0.01A;
  • 可实时检测被测电路的电压和电流值;
  • 可同时检测被测电路的电压和电流值。
  • 学习功能
  • 使用CW32开发板开发,有助于学习CW32开发板有关电路原理、ADC功能、定时器及中断等功能,有助于学习KEIL MDK开发环境;
  • 内设模拟检测电压和电流电路,在无其它外设情况下实现学习电压和电流测量原理;
  • 内设模拟标定功能,在无其它外设情况下实现该产品开发时的调试工作。
  • 安全功能
  • 具有电路保护功能,保护MCU、防反接、接口防呆。

1.2 使用说明

image.png

1. 普通检测
  • 电压测量
  1. 接线:使用CH1端子接入被测电路,其中黄线接正极,黑线接负极;当被测电压小于5V时通过DC或者VP红色线接入供电电源;
  2. 外接电压表验证时,表笔接入CH1两端的橡胶座,其中红表笔接入黄色座,黑表笔接入黑色座;
  3. 红色数码管显示值为当前被测电路电压值。
  • 电流测量
  1. 接线:使用CN1端子接入被测电路,其中黄线接正极,黑线接负极;
  2. 外接电流表验证时,CN2端子(1号口)红色接正极,红色香蕉座接电流表红表笔,右侧黄色香蕉座接电流表黑表笔,CN1端子黑色接负极。
  3. 蓝色数码管显示值为当前被测电路电流值。
2. 标定校准
  • 【2024.9.10 更新】

电压标定调整为模式1-模式3:
> 1. 模式1:标定3V电压,红色数码管显示【V.03】,蓝色数码管显示当前电压值;
> 2. 模式2:标定8V电压,红色数码管显示【V.08】,蓝色数码管显示当前电压值;
> 3. 模式3:标定15V电压,红色数码管显示【V.15】,蓝色数码管显示当前电压值。
电流标定调整为模式4-模式6:
> 1. 模式4:标定0.5A电流,红色数码管显示【A.0.5】,蓝色数码管显示当前电流值;
> 2. 模式5:标定1A电流,红色数码管显示【A.1.0】,蓝色数码管显示当前电流值;
> 3. 模式6:标定2A电流,红色数码管显示【A.2.0】,蓝色数码管显示当前电流值。

  • 电压标定
  1. 接线:按照接入电压表的电压测量接线。
  2. 输入电压调整到3V,万用表显示3V,按下【模式】按键,直到红色数码管显示【V.03】,蓝色数码管显示标定前电压值,按下【标定】按键完成5V标定;
  3. 其余类推。
  • 电流标定
  1. 接线:按照接入电流表的电流测量接线。
  2. 输入电流调整到0.5A,万用表显示500mA,按下【模式】按键,直到红色数码管显示【A.0.5】,蓝色数码管显示标定前电流值,按下【标定】按键完成0.5A标定;
  3. 其他类推。

注意:不使用板载标定功能时无需短接JP,同时焊接R0。

1.3 开发工具

  • 立创·地文星CW32开发板:
  • 万用表;
  • 焊接及其辅助设备(元器件均可购自立创商城);
  • 与设备配套的外接端子、线、香蕉座等(需要自购);
  • 程序下载和烧录设备。

二、硬件设计

前言:产品实现分为6个主要部分,即电源电路、电压及电流采样电路、电压电流模拟采样及标定电路(选配)、数码管显示电路、按键及LED指示电路、外设接口电路。

2.1 原理图说明

2.1.1 电源电路

image.png

  • 要点说明:
  1. 电源输入:设置2处,通过DC接口或VP接入供电;
  2. LDO选型:要求接入电压足够大(本电压表多用于24V-36V供电工业场景中),散热能力好,5V输出(实测3V3不足以给数码管和开发板供电)、成本低,故选择SE8550K2
  3. 滤波电路:电容设计遵循先大后小原则,先是电解电容滤除低频波,再用陶瓷电容滤除高频波;
  4. 电路保护:肖特基二极管1N5189低压降(0.2V以内)防反接,串联10欧电阻过流和短路保护。
2.1.2 电压采样电路

image.png

  • 原理说明:

依据串联分压原理,以30V DC为例,CW32的ADC 1.5V为基准参考电压时,要确保设计最大量程为30V,通过计算获得分压比:

image.png

  1. 电阻选择常用阻止同时留有测压余量,选择10K和220K搭配,实际量程约34V左右
  2. 同理0-3V电路1:1分压比选择10K。
  • 要点说明:
  1. 电路保护:使用钳位二极管1N4148保护MCU引脚;
  2. 换挡检测:电压采样设置0-3V和0-30V两档,当电压在3V以内时可进一步提高测量精度。
2.1.3 电流采样电路

image.png

  • 原理说明:
  1. 电流检测本质还是电压检测。设计电流为0-3A,需将采样电路串联入被测电路,通过ADC测得小电阻R0处的压降,再和R0阻值本身计算可得电路电流。
  • 要点说明:
  1. 采样电阻选型:一是要求不产生大压降以降低对被测电路的干扰;二是要求选择合适封装降低功耗和温度。因此选取R0阻值为100毫欧,功率为1W;
  2. 电路保护:ADC处串联1K电阻限流保护引脚,使用钳位二极管1N4148保护MCU引脚,串联电阻和接入电容起到滤波作用有利于模数转换更精确。
2.1.4 模拟采样及标定电路
1. 模拟电压测量及标定

image.png

  • 要点说明:
  1. 将VP接入供电时,滑动变阻器RP1即可模拟出0-VP大小的电压;
  2. 使用TL431电路提供2.5V基准电压,用于给MCU校准AD外部电压。参考CW32技术手册发现其ADC性能可以不使用该电路校准,仍可有较好的准确度;
  3. 外接电源后短接JP1实现模拟测量功能。
2. 模拟电流测量及标定

image.png

  • 要点说明:
  1. 同样依据串联分压原理,当I+处被测电流为3A时该处电压为300mV;因此模拟电路中RP2最大压降应为300mV。依据串联分压原理,算得电阻阻值之比:
    image.png
  2. 实际上为保证量程RP2分的电压要更小,即R17阻值要更大,参考常用阻值定为R17=200K,RP2=10K,实际最大模拟阻值约为238mV,即接入I+的电压在0-2.38A范围内。
  3. 模拟测量本质还是测量I+接入的电压大小,因此原测量电路变成了使用ADC测量RP滑动电压值,所以要断开R0电路连接。
  4. 外接电源后,不焊接R0,同时短接JP2实现模拟测量功能。
2.1.5 其他电路

其它电路原理简单,此处只说要点,原理不再赘述。

1. 数码管显示电路

image.png

  • 要点说明:
  1. 使用共阴极数码管;
  2. 依据MCU IO口高电平拉电流/灌电流能力选择合适数码管参数。
2. 按键及LED指示电路
  • 要点说明:
  1. 使用3个按键切换功能;
  2. 两个LED指示电源接入和工作状态;
  3. MCU的电流灌入能力大于拉电流能力,故LED设计为低电平有效。
3. 外设接口电路

image.png

  • 要点说明:
  1. 外设接入分2部分,一是检测接线端子,二是万用表表笔插入点(香蕉座);
  2. 电压接线增加一路VP,当工作电压小于5V时需外接电路;
  3. 电流接线设置2路端子分别用于普通测量和接入电流表验证测量;
  4. 万用表笔插入口选取2mm香蕉座子,设计原理图时在元件库过滤个人封装图,或者自己画。

2.2 layout注意事项

1. 线宽要求
  • 电源线尽可能走宽,在20-60mil;
  • 普通信号线10mil;
  • ADC信号线在8mil或10mil;
  • 地线考虑局部铺铜和大线宽,同时减小地线长度。
2. 地线要求
  • 本PCB不设计整版铺铜,使用组内串联、组间并联的单点接地方式;
  • 并联总地线局部加宽填充保证接地点的同一电位;
  • 注意I-处功率地和测量电路的信号地分隔。
3. 采样电阻R0接法

image.png

  • 利用开尔文接法消除线路电阻和接触电阻对测量结果的影响。

2.3 PCB焊接注意事项

  • 部分直插电容、肖特基二极管、LED有正负极,要细心参考产品说明准确分辨正负极;
  • 数码管耐温能力较低,注意电烙铁高温不要触碰;
  • 其他(想起来再补充)...

焊接完成图:
image.png

产品硬件完成图:

image.png


三、软件设计

前言:软件设计实现了硬件电路中各模块的独立运行以及各模块之间的配合运行,从而实现了产品功能。

3.1 软件架构

image.png

上图展示了CW32电流表实现功能所必备的模块和程序功能。主要包含如下部分:

  • 基础模块:RCC时钟模块、GPIO启动模块;
  • 核心模块:BTIM中断控制、ADC模数转换模块;
  • 外围模块:LED驱动、数码管驱动、按钮驱动;
  • 辅助模块:数据存取、数据处理。

该架构实现电压电流表测量的主要逻辑为:

  • 时钟和GPIO为各个功能模块提供tick基础和引脚初始化;
  • BTIM中断控制了数据获取、按键操作和显示更新:
    • ADC模数转换实现电路测量的数据获取;
    • 按键实现功能切换、参数标定功能;
    • 原始数据经由数据处理后由数码管更新显示;
  • 配置存取实现了参数标定的开关机配置记忆;
  • 使用两种循环机制(图中带背景区域):
    • BTIM中断控制配合时钟实现数据获取、数据显示、读取按键的内部计算;
    • While循环实现外部数据处理和数码管显示更新。

3.2 模块简要说明

1. RCC时钟配置

image.png

依据系统内部时钟树可以看到不同模块所依赖的CLK不同:

    1. HCLK用于SYStick、FLASH、GPIO功能;
    1. PCLK用于BTIM、ADC功能。
2. GPIO配置
  • 以下模块需要通过GPIO配置实现初始化:
  1. LED、BUTTON、数码管等外设设备;
  2. 电压电流测量引脚 PB0/PB1/PB10/PB11 需要开启ADC模数转换功能。
3. ADC模块

要点提示

  • 启动GPIO后配置对应引脚为ADC模式,同时对ADC时钟、结构体、序列通道等进行初始化配置(参考用户手册);
  • 使用ADC_GetSqrXResult获取对应通道寄存器储存的数据;
  • 为保证ADC获取电压电流值较为稳定,此处采用均值滤波方法,通过处理100次取样,对数据剔除最大最小值后计算取样均值,获得某一时段内(根据时钟频率应该是100ms,此处存疑)的稳定数值,有效稳定了数据显示,消除数据跳动干扰;
  • 数据处理模块DATA_process作为初始采样均值化后的原始数据处理,依据电路设计原理进行相应计算:
  1. 电压值为实际采样电压×100,数据单位为10mV(与数码管驱动有关,详本章5. 数码管驱动模块|动态显示);
  2. 电流值为实际采样电流,数据单位为10mA(与数码管驱动有关,详本章5. 数码管驱动模块 | 动态显示);
  3. 电压电流值的计算引入标定参数计算;
  4. 具体原理应用和参数引入详见附件工程代码。
  • 【2024.8.24 更新】

有关ADC采样频率,代码中设置分频系数为128;课程附件设置分频系数为4;实测当分频系数为4时电压电流为0时ADC采样不是0,因此建议使用128分频系数。

4. BTIM控制中断模块

使用CW32内置的BTIM中断控制器,结合时钟进行中断操作,定时处理特定任务:

  • 任务一:获取ADC变量(详见本章3. ADC模块);
  • 任务二:数码管更新显示:将数码管显示缓存区数据显示出来;
  • 任务三:读取按键控制:
    • 按键一:切换Mode,同时依据不同模式读取不同数据并更新显示数码管内容;
    • 按键二:标定设置,按下时将参数储存进FLASH并计算斜率、更新数码管;
    • 按键三:返回至Mode 0,即普通测量模式,更新数码管显示。
  • 另外,BTIM中还配置有LED缓存区更新计数器timecount和LED闪烁计数器ledcount,以配合实现相应功能。
5. 数码管驱动模块

数码管驱动模块实现了数据编码(单位显示)、动态显示(三位显示)、坏道检测等功能:

  • 数据编码:依据原理图编码了0-9/0.-9./A./V./-/.等数字、字符编码,以显示特定信息;
  • 动态显示:结合数据编码实现数字和字符信息显示:
    • 数字显示:传入2-5位数字(实意为2位小数点有效位数的数字,乘以100),依据数字位数判断显示XXX、XX.X、X.XX、0.XX;
    • 字符信息:配置Mode 1-4四种显示模式,分别显示V05、V15、A.0.5、A.1.5;
    • 其他信息:如未接入数据时编码为“---”等;
  • 坏道检测功能:选择性开启或者设置按键开启,用于从000切换显示至9.9.9以检测数码管坏道。
6. FLASH存取模块

依托Flash.c驱动,实现标定数值的存取和计算:

  • 标定参数配置包含X05/X15/IX05/IX15,其表示对应电压/电流ADC引脚测得数据值,其映射的Y轴分别为5V、15V、0.5A、1.5A。参数标定即将当前引脚测得参数储存在相应变量中;
  • 配置存取:每次开机时读取数据。读取数据开头不是0xaa则读取默认配置,否则读取已存数据;按下标定按钮时计算相应数值并写入Flash;
  • 参数计算:该部分涉及参数标定原理,详情见第四章内容。
7. 其他模块

本工程还包含开发初期的调试模块,方便开发者在调试初期配置环境和开发板电路验证。

  • 点灯模块:LED_shine.c
  • 按钮控制LED模块:BUTTON_LED_TEST

四、调试测试

电压电流表在开发过程中需要进行软硬件设计验证。通过模拟采样和标定电路,以调试测试软件设计的合理性。

本设备内置模拟采样和标定电路,方便初学者在开发阶段缺少必要设备的时候进行开发,减少学习成本。当然,设备调试测试同样可以通过外接可调电源、示波器或是其他辅助开发板实现。

本文只使用内置模拟采样和标定电路实现调试测试。模拟测量和模拟标定的操作均在视频中有所体现。

4.1 模拟测量

当模拟电路接入测量电路时,即可实现模拟测量。

1. 电压测量
  • 模拟测量实现:
  • 接线规则:接入DC或VP供电(建议电压小于量程)后,短接JP1即可;
  • 测量实现:通过RP1调整输入电压,测量电路测量该RP滑动电压;
  • 测量验证:万用表调至电压档,红表笔接入T_V,黑表笔接入TGND,此时相当于万用表并联入被测电路。常规测量时万用表和红色数码管显示数值相同。

image.png

  • 普通场景应用实现:
  • 一般测量:不短接JP1,测量电路并联入被测电路,CH1黄色线(+V)接入被测电路正极,黑色线(GND)接被测电路负极;当测量电路小于5V时需外接电源DC或接入CH1红色线(VP)。
  • 验证测量:万用表接入方式不变。
2. 电流测量
  • 模拟测量实现:
  • 接线规则:接入DC或VP供电后,短接JP2,同时不焊接检流电阻R0;
  • 测量实现:测量电流本质是测量电压;因R0阻值为0.1欧,故两端电压的10倍即为实际电流值,所以仅测量电压。模拟电路接入5V电压,经R17压降后可模拟出0-0.238V电压,即可模拟出0-2.38A范围;通过RP2调整实现动态电流测量;
  • 测量验证:万用表调至电压档,红表笔接入T_I+,黑表笔接入TGND,此时相当于万用表并联入被测电路,测量I+处电压。此时电压表显示数值比蓝色数码管显示数值小10倍,说明模拟电流(乘以10)与数码管显示相同。

image.png

  • 普通场景应用实现:
  • 一般测量:焊接R0后不短接JP2,测量电路串联入被测电路,CN1黄色线(I+)接入被测电路正极,黑色线(I-)接被测电路负极;当测量电路小于5V时需外接电源DC供电。
  • 验证测量:焊接R0后不短接JP2,测量电路和万用表(调至电流档)串联入被测电路,CN2的1号口接入被测电路正极,T_A接万用表红表笔,I+接万用表黑表笔,CN1的2号口黑色线(I-)接被测电路负极。该验证测量和模拟验证测量接线方式不同,需要注意。

4.2 模拟标定

使用三点标定方法,默认ADC为0V时的测量结果也为0V或0A。因此只需进行另外两个测量点标定即可。另外,标定点数越多测的数据越准确,即AD-电压/电流值映射曲线拟合越准确。读者可以自行优化标定算法。

image.png

  • 【2024.9.10 更新】
  1. 本部分内容已在1.2使用说明 中更新,以下为初版原文不再调整。更新内容查看1.2章节。
  2. 另外,为提升电流标定精度,需要考虑R0阻值的误差度,因此建议焊接R0后进行真实值标定而非模拟标定。
1. 模拟电压标定
  • 5V电压标定
  1. 模拟标定方法:
    1. 接线原则:与电压模拟测量接线相同,注意短接JP1;
    2. 在正常测量模式下按【模式】按键一下,红色数码管显示【V.05】,蓝色LED灯保持闪硕,此时进入5V电压标定模式,蓝色数码管显示当前测得电压;
    3. 调整RP1值,直到万用表电压值显示5V;
    4. 按下【标定】按键,蓝色LED灯变为常亮,系统切换为普通测量模式,红色数码管恢复显示电压值5V,标定完成。

image.png

  1. 普通场景标定实现:
    1. 接线原则:与普通场景外接万用表接线方式相同;
    2. 操作方式同上面第二步骤;
    3. 调整外接电压值到5V,直到万用表电压值显示5V;
    4. 按下【标定】按键,蓝色LED灯变为常亮,系统切换为普通测量模式,红色数码管恢复显示电压值5V,标定完成。

15V标定不再赘述。

2. 模拟电流标定
  • 0.5A电压标定
  1. 模拟标定方法:
    1. 接线原则:与电流模拟测量接线相同(注意不焊接R0、短接JP2);
    2. 在正常测量模式下按【模式】按键三下,红色数码管显示【A.0.5】,蓝色LED灯保持闪硕,此时进入0.5A电流标定模式,蓝色数码管显示当前测得电流;
    3. 调整RP2值,直到万用表电压值显示0.050V
    4. 按下【标定】按键,蓝色LED灯变为常亮,系统切换为普通测量模式,蓝色数码管显示电流值0.5A,标定完成。

image.png

  1. 普通场景标定实现:
    1. 接线原则:与普通场景外接万用表接线方式相同(注意要焊接R0);
    2. 操作方式同上面第二步骤;
    3. 调整外接电流值到0.5A,直到万用表电流值显示0.5A(此时因焊接R0已经可以按照电流测量方式校核);
    4. 按下【标定】按键,蓝色LED灯变为常亮,系统切换为普通测量模式,红色数码管恢复显示电压值5V,标定完成。

1.5A标定不再赘述。


五、有关标定误差、标定点设置的研究(20240910更新)

  • 问题由来:当使用精度较差电阻搭建测量电路或是焊接、软件等问题,会导致ADC采样值和实际值(电压电流值)的映射非线性关系,因此即便使用3点法标定也无法保证全量程精度。这也是为什么电压采样调整为3V、8V和15V标定的原因。

下面进行了各路测量电路的取样测试:

  • 测试工况一:使用30V电路测量时精度偏差

30V电压标定曲线(新).png

  1. ADC-电压的映射曲线呈线性相关性强,使用线性标定算法合理,K值偏差度多数在1%以内;
  2. 当使用线性标定算法时,不同电压值对应K(斜率)有所变化,尤其当电压较小时偏差率高。

解决方案:

  1. 采用分段标定方法:电压在3V以内时K值偏差较大。将原5V标定范围调整为3V和8V两个标定点,可保证3V-8V区间(本人开发时常使用3v3-5v的工况)精度。当然,该方法弊端为3V以内电压偏差较大,可通过方案2解决。
  2. 针对小电压偏差大的情况,对K值变化情况进行线性拟合。上图简要进行了线性拟合和对数拟合,对数拟合相关性更好,可以在电压计算时将常量K调整为对数函数,以提高精度。
  • 【2024.9.10 更新】
  1. 程序增加了K值拟合曲线。通过试验点拟合的曲线,当ADC读取到数值时依据拟合公式计算出电压值,效果较好,但曲线与硬件有关且具有唯一性,不同设备需要通过实验进行拟合修改参数。
  2. 程序增加了计算模式切换,默认使用拟合曲线计算。
  • 测试工况二:使用3V电路测量时精度偏差

3V电压标定曲线.png

  1. ADC-电压的映射曲线呈线性相关性强,使用线性标定算法合理,K值偏差度基本都在1%以内;
  2. 当使用线性标定算法时,不同电压值对应K(斜率)有所变化,尤其当电压较小(约0.5V以内)时偏差率高。

解决方案:

  1. 研究发现当电压在0.2V之后尤其在0.5V以后K值偏差小于5%甚至0.1%,故可认定K值恒定。通过实验将K值定为0.00073,测量结果较好,因此标定时不再进行3V电路标定。这种方法仅针对该测量对象;读者若有其他应用可增加3V电路的标定值,或将我代码中的该值进行调整。
  2. 针对小电压偏差大的情况,也可对K值变化情况进行线性拟合。上图简要进行了线性拟合和对数拟合,对数拟合相关性更好,可以在电压计算时将常量K调整为对数函数,以提高精度。

  • 测试工况三:使用3A电路测量时精度偏差

3A电压标定曲线(新).png

  1. ADC-电压的映射曲线呈线性相关性强,使用线性标定算法合理,但K值偏差度相对较大;
  2. 当使用线性标定算法时,不同电压值对应K(斜率)有所变化,大致呈现三段状态(一段在0.2A也就是20mV之前,线性下降趋势大;二段在0.3A-0.9A左右,线性下降趋势小;三段在0.9A以后,线性稳定)。

解决方案:

  1. 本人常用开发环境在0.2A-1.5A之间,可以按照原教程,~~将0.5A标定值默认为第二段K均值;将1.5A标定值默认为第三段K均值。该方法需要进行进一步精度验证。~~精度优化方向可进行分段K值拟合和全曲线K值拟合。【2024.9.10更新】按照0.5A、1A、2A的K值比较,发现基本可覆盖量程范围,误差在1%以内,因此将电流标定调整为这三点。
  2. 进行分段K值拟合时,可以分别对一至三段进行线性拟合,该拟合效果理论上来说可以达到很好的精度。
  3. 进行全曲线K值拟合。此时再进行线性拟合的拟合度已经很差了,可以考虑使用对数拟合等其他方法。
  • 【2024.9.10 更新】
  1. 程序增加了K值拟合曲线。通过试验点拟合的曲线,当ADC读取到数值时依据拟合公式计算出电流值,相对于多点拟合计算简单,省去标定繁琐操作。但是,曲线与硬件有关且具有唯一性,不同设备需要通过实验进行拟合修改参数再进行烧录。
  2. 程序增加了计算模式切换,默认使用拟合曲线计算。

  • 总结:
    本章节之所以新增有关标定误差、标定点设置的研究内容,目的在于修正开发板和软件系统之外的篇差。在测量仪器开发时,不仅要考虑理论精度误差,还要进行硬件和电路精度测量。通过软件进行指标修正,可以更好解决硬件电路误差问题,开发的设备也能有更好的精度和稳定性。

六、结语

本工程耗时1个月完成,借助立创平台和本项目经历,我学会了PCB设计、元器件焊接、3D外壳和面板设计、CW32地文星开发板学习、工程软件设计,同时了解了电压电流表的工作原理,以及提升了调试能力。

文档有描述错误和理解不到位之处敬请指正,谢谢。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
1-Gerber_CW32电压电流表.zip
15
2
2-BOM_CW32电压电流表.xlsx
17
3
3-3DShell_CW32电压电流表.zip
14
4
4-Panel_面板.epanm
21
5
地文星CW32电压电流表产品展示.mp4
51
6
CW32_VAMeter_V1.0.zip
13
7
CW32_VAMeter_V2.0.zip
17
8
CW32_VAMeter_V3.0.zip
22
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航