概述
以下内容包括测量PT1000、PT100等两种电阻的电路图、注意事项和C语言代码。
1、PT1000
下图是测量温度计探头 (PT1000) 的电阻的电路图。该电路使用5V单片机供电,PT1000的最大工作电流为0.5mA,所以要采用适当的电阻值保证元件正常工作。
放大运算器OP07采用+5V和-5V供电,AD转换器只能采集正电压,所以要控制放大电路的放大倍数,使理论输出电压不超出+5V。
这个电路的测电阻原理:
1、PT1000是热敏电阻,随着温度的变化,电阻发生基本线性的变化。
2、0度时,PT1000的电阻为1kΩ,则Ub和Ua相等,也就是说Uba = Ub - Ua = 0。
3、假设某个温度下,PT1000的电阻为1.5kΩ,则Ub和Ua不相等。根据电压分压原理,我们可以求出Uba = Ub - Ua > 0。
4、OP07是一个运算放大器,它的电压放大倍数A取决于外部电路,在这里A = R2/R1 = 17.5。
5、OP07的输出电压Uo = Uba * A。所以如果用一个电压表测量出OP07的输出电压,则我们就能反推出Uab的值。由于Ua是已知值,所以我们可以进一步计算出Ub的值。接着利用电压分压原理,我们就可以计算出PT1000的具体电阻值。这个过程可以通过软件计算实现。
6、如果我们能知道PT1000在任意温度下的电阻值,则我们只需要根据电阻值查表就可以知道当前的温度。这个过程就是测温的过程,本文不涉及测温部分的内容。
用C语言代码表示:
double R1_2 = R1 + R2; // R1和R2串联
//计算A点电压VA
double VA_up = (VCC / R11 + Uo / R1_2) * (R11 * R12 * R1_2);
double VA_down = R11 * R12 + R11 * R1_2 + R12 * R1_2;
double VA = VA_up / VA_down; //电压VA
printf(“VA = %frn”, VA);
//计算B点电压VB,(利用放大倍数A)
double VB = Uo * R1 / R2 + VA; //电压VB
printf(“VB = %frn”, VB);
//计算PT1000的电阻R1000
double R1000_down = (VCC - VB) / R11 - VB / R1_2;
double R1000 = VB / R1000_down; //PT1000的电阻R1000
printf(“R1000 = %frn”, R1000);
在得到PT1000的电阻R1000之后,可以通过查表的方式搜索温度探头的温度。这样得到的温度精度为1℃。假设相邻两度之间的电阻随着温度线性变化,则可以进一步计算得到精度为0.1度的温度。当然这个过程也通过程序完成。
注,由于OP07需要双电源供电,而LM358只需要单电源供电 (也可以用双电源),所以可以用LM358代替OP07。实际使用的时候,把LM358的负电源引脚接到GND即可。经测试,在同一个电路中,用LM358与OP07对PT1000的电压进行放大,结果基本一致。
2、PT100
用上述电路图也可以用于测量PT100的电阻。由于PT100的最大工作电流为1mA,0℃时PT100的电阻为100Ω,所以需要调整电路中的各个电阻的阻值,使所有元件工作在正常范围内。
下图是修改后的电路:放大倍数为75倍。需要再增加一个变阻器进行校准,可以得到更精确的结果。由于PT100的测量电路与PT1000的电路相同,所以可以用相同的代码计算PT100的电阻值、计算对应的温度。
注,由于OP07需要双电源供电,而LM358只需要单电源供电 (也可以用双电源),尝试用LM358代替OP07,经测试,在同一个电路中,用LM358与OP07对PT1000的电压进行放大,结果差别很大。而OP07的结果与理论值基本一致,所以在这个电路中,不能用LM358。
PT100的测电阻电路中,不能用LM358代替OP07的原因是放大倍数太大。可以适当元件的参数,调整放大倍数,这样就可以不失真的进行放大。
不管是PT100还是PT1000的测电阻,如果长时间工作,运算放大器可能产生温漂,导致结果不准确。可以用仪表放大器电路进行放大。然而仪表放大器的集成放大芯片的价格比较贵,如果自己实现,则很难校准,电路图也比较复杂。
最后
以上就是靓丽酸奶为你收集整理的惠氏桥测量电阻的全部内容,希望文章能够帮你解决惠氏桥测量电阻所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复