八、无刷电机电压电流温度采集

1、三相电流采样

上图为 U 相电流采集电路(U、V、W 三相同理,这里只以 U 相为例),其中R17 为采样电阻(20mR),当有电流 I 流过采样电阻时,采样电阻上就会产生一个电压,电压大小为: I*0.02Ω(20mR)。使用 I-V 表示电流 I 经过采样电阻后形成的电压,所以 U相的电压,我们使用 I-V_U 表示。

那么现在只需要测出电压 I-V_U 的值,就可以换算出 U 相电流,但是这里有一个问题,假设 U 相电流为 10A,此时电压 I-V_U = 10 * 0.02 V = 0.2V,同理当电流为 20A 时,求得的电压值 I-V_U = 0.4V,可以看到当电流比较大的情况下,求得的电压值是非常小的,不利于我们的 ADC 采集,考虑到 ADC 的精度问题,所以我还需将电压经过差分放大电路放大后在来采集,如下图:

由上图得出该差分放大电路的放大倍数为:Diff = 12K/(1K+1K)= 6 倍, 并有一抬升电压 1.25V,所以电压放大后的输出为: AMP_IU = 6 * ( 0.02*I ) + 1.25V。由于AMP_IU 是接到电机开发板的 ADC 引脚的,所以该值是已知的,此时就可以计算出 U 相电流 I 的值。

1.1实际应用

1、电机停机状态下,通过ADC1_CH8(PB0)检测AMP_IU电压对应的ADC值,计算电压值AMP_IU电压 = ADC值 * 3.3 / 4096,此时电压值即偏置电压;

2、当电机旋转时,继续检测AMP_IU电压对应的ADC值, 计算AMP_IU电压AMP_IU电压 = ADC值 * 3.3 / 4096

3、采样电压放大,放大倍数= 12 / (1+1) = 6倍

4、得到输出电压:AMP_IU = (6*0.02Ω* I) + 1.25V

5、采集输出电压计算实际电流I ;I = ( 旋转时电压 -- 偏置电压 ) / 0.12 A

2、电源电压采样

驱动板的供电电压 POWER 经过电阻分压后进入 LMV358 的 A 路运放,该运放为电压跟随电路,所以 1 脚输出电压 VBUS 和电阻分压的值相同,即 VBUS = POWER/(12K+12K+1K)*1K,当 ADC 采集到 VBUS 电压后就可以计算出 POWER 电压。

2.1实际应用

第一步:使用ADC1_CH9(PB1)采集VBUS点的电压,即

VBUS = ADC_CH9(PB1) * 3.3 / 4096

第二步:电压跟随电路 VBUS = POWER * 1/(12+12+1)

第三步:采集输出电压计算实际电压POWER = VBUS * 25

最终得到:

POWER = 25* ADC_CH9(PB1) * 3.3 / 4096

3、控制器温度采样

上图为温度检测电路,可以看到,NTC 电阻和固定的 4.7K 电阻分压,然后接入B 路运放,B 路运放也是电压跟随电路,所以此时 VTMEP = 3.3V/(Rt+4.7K)*4.7K,通过ADC 采集 VTMEP 的电压后就可以算出 Rt 的值,其中 Rt 就表示 NTC 电阻在当前温度下的电阻值。从 NTC 电阻的数据手册可以找到温度计算公式:T1=1 / ( In (Rt/R0) / B + 1/T2 ),这里的 T1 和 T2 指的是 K 度即开尔文温度,K 度 = 273.15(绝对温度) + 摄氏度;其中:

⚫ T2 :273.15 + 25(25 摄氏度下的 K 度值)

⚫ T1 :实际温度

⚫ Rt :热敏电阻在 T1 温度下的阻值;

⚫ R0 :热敏电阻在 T2 常温下的标称阻值;

⚫ B 值:热敏电阻的重要恒定参数;

其中 T1 是我们需要求解的温度值,Rt 的大小由前面的温度采集电路可以算出,其他的参数都是可以在数据手册中查找得出,代入温度求解公式即可算出T1温度值,注意该值为K度。

3.1实际应用

第一步:使用ADC1_CH0(PA0)采集VTEMP点的电压,VTEMP = ADC1_CH0(PA0) * 3.3 / 4096

第二步:电压跟随电路,VTEMP = 3.3 * 4700 /(Rt + 4700)

第三步:采集VTEMP计算此时热敏电阻的阻值Rt

Rt = ( 3.3 * 4700 )/ VTEMP - 4700

第四步:根据Rt算出实际温度值

实际温度 T1=1 / ( In (Rt/R0) / B + 1/T2 )

相关推荐
东京老树根7 小时前
Arduino - 入门02 - Arduino编程基础 Arduino程序结构,实物与模拟器对照,Arduino常用函数
单片机·机器人
salipopl10 小时前
基于STM32平台的多旋翼无人机系统设计与实现
stm32·嵌入式硬件·无人机
iCxhust17 小时前
8086/8088单板机VSCode集成自动下载功能(完善串口接收显示版)
ide·vscode·单片机·编辑器·微机原理·8088单板机·8086单板机
振南的单片机世界18 小时前
从数码管到点阵屏:动态扫描加595,3个IO驱动256个LED
stm32·单片机·嵌入式硬件
listhi52018 小时前
STC8 16通道模拟采集 + 4路串口 + 8路PWM 程序
stm32·单片机·嵌入式硬件
星夜夏空9919 小时前
STM32单片机学习(4)——嵌入式概述
stm32·单片机·学习
Deitymoon20 小时前
STM32——OLED显示字符串
单片机·嵌入式硬件
Graceful_scenery20 小时前
龙芯2k0300 - 走马观碑组按键驱动移植
单片机·嵌入式硬件
d111111111d20 小时前
MQTT+STM32+ESP8266网络程序分层+韦老师
笔记·stm32·单片机·嵌入式硬件·学习·php
长安第一美人20 小时前
RT-Thread 工业屏驱动开发实战:UART 串口屏协议解析 + 数据实时刷新 + 设备驱动框架完整实现
驱动开发·嵌入式硬件·rt-thread·工业控制·uart通信·串口屏驱动