自从想要做一个PT100的测温电路,实验了很多方法,包括恒流源,电桥。最后决定使用恒流源,而恒流源采用压控恒流源,电压基准采用LM285,输出电压1.235V。
此恒流源的输出电流取决于LM285的输出电压,和R1的阻值,为了得到精确的输出电流,R1最好采用高精度,低温漂的电阻。如果需要更高的精度,则需要使用更高的电压基准芯片,比如REF5025,LM399等。
PT100采用四线制接法,通过J2输入,放大器采用AD623仪表放大器,当然使用普通运放构成差分放大器也是可以的,只是使用现成的仪表放大器比较方便,只需要一个外部电阻R15即可设置放大增益,公式为G=100KΩ/R15+1,这个电路设置的放大增益G=11。另外U8、C7、C8、R17、R18构成二阶有源低通滤波器,这里设置的截止频率f≈5Hz。滤波后的信号接ADC到单片机的模数转换引脚,当然也可以通过跳线JP1接到专用16位AD转换芯片ADS1110,将电压转换为数字信号然后交由单片机处理。
本电路因为采用单电源供电,而AD623需要使用一个负电压,所以使用了一个电压反转芯片MAX660,但也可以使用LM2662替代,而事实上在实际的电路中,我使用的就是LM2662
这是单片机电路的原理图,使用的是 STC的STC12C5A16S2,LQFP44封装。其中KEY,DATA,CLK,CS是用来控制数码管,用于显示测量温度,在这个环节中,使用了一片HD7279芯片,用于动态显示数码管,为什么使用这个芯片而不是使用单片机直接驱动数码管呢。这个是出于节省CPU资源的考虑,因为程序中使用了一些滤波算法比较耗费CPU,而且考虑到可能需要使用485通信,万一等待时间过长,担心因此造成数码管闪烁,所以使用了一片HD7279。
这个是核心板输出接口电路
关于这个芯片的使用方法就不多说了,datasheet上写的非常清楚了。
当然,显示部分的电路是和核心电路分开的,在另外一块PCB上。下面是核心板的PCB
以下是标定数据,“温度计”项代表使用标准水银温度计的测量值;“PT100“代表以上装置测量得出的值;”误差“为”PT100“-”温度计“的值;”多项式“是采用多项式拟合后的到的值;”拟合后误差”为”多项式“-”温度计“的值;
温度计 |
PT100 |
误差 |
多项式 |
拟合后误差 |
2 |
6 |
-4 |
2.3 |
0.3 |
2.7 |
6.7 |
-4 |
3.1 |
0.4 |
3 |
7 |
-4 |
3.5 |
0.5 |
4 |
8 |
-4 |
4.7 |
0.7 |
7 |
10 |
-3 |
7.2 |
0.2 |
8.9 |
11.1 |
-2.2 |
8.5 |
-0.4 |
9 |
12 |
-3 |
9.6 |
0.6 |
9.2 |
11.3 |
-2.1 |
8.8 |
-0.4 |
9.2 |
12.4 |
-3.2 |
10.1 |
0.9 |
9.5 |
11.4 |
-1.9 |
8.9 |
-0.6 |
10 |
11.7 |
-1.7 |
9.3 |
-0.7 |
10 |
12.8 |
-2.8 |
10.6 |
0.6 |
10.2 |
12.2 |
-2 |
9.9 |
-0.3 |
11.2 |
12.8 |
-1.6 |
10.6 |
-0.6 |
11.5 |
14.2 |
-2.7 |
12.3 |
0.8 |
12 |
13 |
-1 |
10.8 |
-1.2 |
12 |
14 |
-2 |
12.0 |
0.0 |
12.2 |
13.9 |
-1.7 |
11.9 |
-0.3 |
13 |
15 |
-2 |
13.2 |
0.2 |
13.5 |
15.2 |
-1.7 |
13.5 |
0.0 |
14 |
16 |
-2 |
14.4 |
0.4 |
14 |
15.6 |
-1.6 |
14.0 |
0.0 |
14.2 |
15.1 |
-0.9 |
13.4 |
-0.8 |
22.5 |
22.3 |
0.2 |
21.9 |
-0.6 |
23 |
22.7 |
0.3 |
22.3 |
-0.7 |
23.5 |
22.9 |
0.6 |
22.6 |
-0.9 |
24 |
23.3 |
0.7 |
23.0 |
-1.0 |
24.5 |
24.9 |
-0.4 |
24.9 |
0.4 |
24.5 |
23.8 |
0.7 |
23.6 |
-0.9 |
25 |
25.2 |
-0.2 |
25.2 |
0.2 |
25 |
24.3 |
0.7 |
24.2 |
-0.8 |
25.5 |
25.7 |
-0.2 |
25.8 |
0.3 |
26 |
26.2 |
-0.2 |
26.4 |
0.4 |
26.5 |
26.6 |
-0.1 |
26.9 |
0.4 |
27 |
27.1 |
-0.1 |
27.4 |
0.4 |
27.5 |
27.4 |
0.1 |
27.8 |
0.3 |
28 |
27.8 |
0.2 |
28.2 |
0.2 |
28.5 |
28.2 |
0.3 |
28.7 |
0.2 |
29 |
28.7 |
0.3 |
29.3 |
0.3 |
29.5 |
29 |
0.5 |
29.6 |
0.1 |
30 |
29.5 |
0.5 |
30.2 |
0.2 |
30.7 |
30 |
0.7 |
30.7 |
0.0 |
31 |
30.3 |
0.7 |
31.1 |
0.1 |
31.5 |
30.7 |
0.8 |
31.5 |
0.0 |
32 |
31 |
1 |
31.9 |
-0.1 |
32 |
31.2 |
0.8 |
32.1 |
0.1 |
32.5 |
32.6 |
-0.1 |
33.7 |
1.2 |
32.5 |
31.6 |
0.9 |
32.5 |
0.0 |
33 |
32.1 |
0.9 |
33.1 |
0.1 |
34 |
33 |
1 |
34.1 |
0.1 |
34.5 |
33.4 |
1.1 |
34.5 |
0.0 |
38 |
36.2 |
1.8 |
37.7 |
-0.3 |
39 |
37 |
2 |
38.5 |
-0.5 |
40 |
38 |
2 |
39.6 |
-0.4 |
41 |
39 |
2 |
40.7 |
-0.3 |
42 |
40.5 |
1.5 |
42.4 |
0.4 |
44 |
41.7 |
2.3 |
43.6 |
-0.4 |
45 |
42.6 |
2.4 |
44.6 |
-0.4 |
46 |
43.5 |
2.5 |
45.6 |
-0.4 |
47 |
44.6 |
2.4 |
46.8 |
-0.2 |
48 |
45.6 |
2.4 |
47.8 |
-0.2 |
49 |
46.5 |
2.5 |
48.8 |
-0.2 |
50 |
47.6 |
2.4 |
49.9 |
-0.1 |
51 |
48.5 |
2.5 |
50.9 |
-0.1 |
54 |
51.5 |
2.5 |
54.0 |
0.0 |
55 |
52.5 |
2.5 |
55.0 |
0.0 |
56 |
53.5 |
2.5 |
56.0 |
0.0 |
58 |
55.5 |
2.5 |
58.1 |
0.1 |
59.2 |
56.5 |
2.7 |
59.1 |
-0.1 |
60 |
57.5 |
2.5 |
60.1 |
0.1 |
61 |
58.3 |
2.7 |
60.9 |
-0.1 |
62 |
59.4 |
2.6 |
62.0 |
0.0 |
63 |
60.5 |
2.5 |
63.1 |
0.1 |
64 |
61.5 |
2.5 |
64.1 |
0.1 |
65.2 |
62.5 |
2.7 |
65.1 |
-0.1 |
66 |
63.5 |
2.5 |
66.0 |
0.0 |
67.2 |
64.5 |
2.7 |
67.0 |
-0.2 |
68 |
65.5 |
2.5 |
68.0 |
0.0 |
70 |
67.6 |
2.4 |
70.0 |
0.0 |
71 |
68.2 |
2.8 |
70.6 |
-0.4 |
72 |
69.4 |
2.6 |
71.7 |
-0.3 |
73 |
70.5 |
2.5 |
72.8 |
-0.2 |
74 |
71.5 |
2.5 |
73.7 |
-0.3 |
75 |
72 |
3 |
74.2 |
-0.8 |
76 |
74 |
2 |
76.0 |
0.0 |
77.5 |
74.9 |
2.6 |
76.9 |
-0.6 |
78 |
76 |
2 |
77.9 |
-0.1 |
上图中X轴为PT100的值,Y轴为温度计的值