
开源协议
:CC BY-SA 4.0
描述
项目说明
由于平时调试比如电机等负载突变的设备的时候,需要监控其电压、电流、功率的变化,以防止功率跳变引起的电源欠压保护,或者瞬时电流太大引起的电源过流保护。此时就需要一个采样频率足够高,并且能以绘图的形式展现各参数变化的功率计。最终方案决定使用CH9140蓝牙串口透传模块进行数据传输,一是可以利用各种串口助手作为上位机,灵活运用其绘图、保存,甚至其他脚本的功能;二是通过蓝牙进行传输,完全将大功率电源与电脑完全隔离,保证电脑不会因为负载故障而爆炸(缺点就是蓝牙信号似乎不是很好,以后可能会考虑换成别的无线模块)。
开源协议
本项目采用CC BY-SA 4.0协议进行开源。允许转载,但是请标明原链接与作者;允许商用,但是请标注原链接,作者;如对本项目进行修改并传播(开源),请使用相同的开源协议进行开源。
项目相关功能
电压量程;5-30V(不能太低是因为太低了LDO输出电压就不准了)
电压分辨率:0.1V
电流量程;0-20A
电流分辨率:0.1A
采样频率:4Khz(然后做了八次平均)
刷新率:500hz
项目属性
本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。
项目进度
项目完成度已经达到我的预期(粗略显示电压电流功率)
设计了串口控流,但是不会用)
由于BLE_SER_A_ANT硬件限制,只能使用115200hz的波特率。
无法使用蓝牙串口进行无线下载不知道是什么原因。
设计原理
检流运放将电流在检流电阻上的压降的差模信号放大到合适单片机ADC读取的电压量程范围;
电压通过电阻分压后使用单位增益稳定的运放进行跟随做阻抗变换。
将以上两个信号通过ADC转换成数字信号,然后进行线性拟合即可还原出电压和电流信号。
在单片机ADC输入端口有一个截止频率约为1Khz的低通滤波器,虽然采样率开了4Khz,但是是作为过采样之后再进行软件平均值滤波,最后的数据刷新率(传输速率)还是500hz。
ADC输入RC滤波器电阻的取值,我参考了这个表格,将ADC近似配置成红框所示参数,外部电阻取值为10K。
软件说明
这里我将定时器配置成4Khz用于触发ADC进行采样。
其他没啥好说的,就ADC采样,均值滤波和串口传输。
!由于我没有使用keil进行STM32程序的开发,VSCode环境的搭建请参考我的专栏:
【浅谈使用VSCode+EIDE插件+CubeMX开发STM32 HAL库-哔哩哔哩】
设计注意事项
使用BLE_SER_A_ANT模块的版本只能是固定115200波特率传输,这个是WCH的硬件设计问题。这导致了,发送数据的时候,我仅仅发送了14个字符,就占用了我1.2ms的时间,使得我不得不将更新速率调节为500hz。
串口在传输的时候不知道是什么原因造成的丢包,导致VOFA+接收到异常数据的时候曲线会发生跳动。
这个开关本来是打算用于串口无线下载的,但是不知道怎么回事不能用。
实物展示
设计图

BOM


评论