在嵌入式(单片机)开发过程中,会有测量电流的需求。涉及到的有:
- uA 级别的
- mA 级别的
- A 级别的
以上的需求电路都可以有一个基本的电路(如下):同相放大电路
- VDD–R6–GND:代表待测电路,R6为负载,目的是为了让回路中形成一个我们想要的待测电流。
- U1是这个同相放大电路的放大器
- R4是测量电阻(1KΩ意味着它是用于检测小电流的uA级别的)
- 放大倍数为10倍:(R3+R2)/R1
如果这是一个理想电路的话,待测电路中的电流为100uA(500KΩ)那在测量电阻上的电压就是100uA*1KΩ = 10mV,经过放大器10倍放大之后就是100mV。经过单片机的ADC采样就可以推算出电流值了。
测量范围
上面那个电路的测量范围可以这么计算,前提设置为ADC参考电压为Vref = 0.6V,即放大器的输出端的最大输出电压就是VAout = 0.6V,因为放大器的放大倍数为10倍所以放大器输入电压就是VAin = 0.06V。
电流加载在电阻上面会有电压,通过这个基本原理就可以计算出该电路的最大测量电流为:Icmax = VAin/Rc = 0.06V/1000Ω = 0.00006A = 60uA。
进一步来说,在这个电路的基础上通过更改R4的阻值就可以测量一个很大范围的电流值了,在实际应用过程中通过设置多路的测量电路,每一路设置不同的测量电阻,然后通过单片机控制各路的切换来达到精确的电流测量。比如可以设置:
测量电阻可选:
- 1000Ω—用于测量最大电流为60uA的电流
- 120Ω—用于测量最大电流为500uA的电流
- 15Ω—用于测量最大电流为4mA的电流
- 2.3Ω—用于测量最大电流为26mA的电流
- 0.23Ω—用于测量最大电流为260mA的电流
- 0.02Ω—用于测量最大电流为3A的电流
通过使用比较器(单片机内部比较器或外部比较器)可以及时的转换相应的通道(比较输入检测电压与单片机内部ADC参考电压的高低,因为输入检测电压如果高于单片机内部参考电压时有可能会出现ADC数值不是最大值而是一个随机值的情况)。