电子说
在翻找电脑里的东西时候,发现了原来半途而废研究的资料:用分压电路测量负电压。
于是又拿出来看看,忽然脑袋一时清亮起来,把原理想明白了。仿真了一下,效果还好。用实际器材测试一下,达到了可以接受的程度。
本来想法的形成是昨天(2023.8.16)晚上的事情,上午要忙批阅作业和一些杂事儿,简单用Micro:bit试验了一下,并与网上一位大神交流了。中午半梦半醒,计算了原理,晚上使用Arduino UNO测试了真实的数据,挺好。
实际古老的Arduino UNO尽管在今天看起来已经不是那么时髦了,但是个人感觉它的ADC质量相当不错,而且在8位ADC水平上,远强于Micro:bit,和ESP32比也不逊色(个人感觉)。
一般我们习惯上取分压器R1=R2=R,基尔霍夫一下子,有
[如果R1、R2、R3均为一般取值,即则比较麻烦]
若3个电阻使用上面电路图中的参数,则V_out = 0.0892857V_in + 0.455357*E_VCC。这样,我们在Arduino里面,可以这样写代码(以下代码,已测试):
float VCC=5.0; //这里的5.0,一般不太准,可以用好点儿的表校一下
//电脑USB口供电时校准的VCC电压
float VCC=5.062;
void setup() {
Serial.begin(9600);
}
void loop() {
//把电路图探针接到模拟引脚A0
int Vol = analogRead(A0);
float V_out = Vol/1023.0*VCC;
//R、R为等值分压电阻,R3为接入电阻
//R取10k,R3取51k
//V_{out}=frac{R}{R+2R_3}V_{in}+frac{R_3}{R+2R_3}E_{VCC}
float V_in = (V_out-0.455357*VCC)/0.0892857;
Serial.println(V_in);
delay(1000);
}
以下使用的是Micro:bit的粗略测试。3只电阻相应都缩小了10倍,即10k、10k、51k。是因为手边没有合适大小的电阻,实际保持原值应该好一些,因为R3相当于电压表内阻,小了不好。 连线图:
IO2接模拟引脚P0。MicroBlocks编写代码。分别测量两只干电池的正反向电压,以毫伏为单位。发现差值均为0.019V,这应该是零点误差造成的,估计可以很容易修正回来。 总之结论是,可以。
实物图:
4F超级电容器40Ω电阻放电:
4F超级电容器0.22Ω电阻放电:
在实验数据要求并不是太过于精确时,简便地使用。比如观察电容器的充、放电实验,电压、电流很严格了吗?没有,这个时候就可以祭出此一大招了。至少,在精度允许的范围内,省了不少大角钱啊。
全部0条评论
快来发表一下你的评论吧 !