本帖最后由 watershade 于 2019-1-15 21:24 编辑 在用TE的一个高精度的温度传感器PT1000。RTD传感器又自己的查找表。但是pdf不方便用,如果直接在程序里面计算有点慢。另外可以用这张表做反向查表的运算。注意一个关键词: DIN EN 60751 附件中分别是我写的python的程序用来生成一个包含数组的txt文件。你将数组复制到你的程序中就可以。 3 T6 C: O9 v4 d9 y% Z 尽管程序是PT1000的,但是如果需要PT100.你只用更改一下公式中的1000.0到100.0.在核对一下参数就可以了。0 Q2 n) C7 s8 m' F$ E" q2 p0 I 顺便上传两张表格。 |
兄弟。我当然知道怎么去写一个生成uint16_t或者uint8_t的表格。这不是很困难的事情。添加两行代码就可以。. g1 l. Y- j. s( j* X. J' r
2 }% e2 C4 o6 s6 ^( n) f; x( c
但是请自行了解一下RTD精密测量温度再说。 Vref实际上也是个变化的值,和你了解的多数应用不一致。所以是非线性的。尽管如此也仍然可以转化为部分线性化。是的,如果你真的需要uint16_t就是添加几行代码的问题。但这部分的代码我没有亮出来,因为这对大多数人是没用的。 E$ h5 Y( T* i. ^% G4 g- m8 k
我这个小的python程序只是帮助你生成一个符合要求的表格。你不用去ppt上把所有数据取下来,手动填充这样一张表格。所以和表格数据是一致的。6 }9 Y) l" S4 p+ p9 j; X& ~$ [ ~
Anyway,谢谢你的建议
你的python程序,如果好用的话,就应该做到:
输入参数:7 ]4 U2 e6 _9 `' C( U. |2 s
1. PT1000,or PT1009 U o" Q6 K4 D6 N' I$ z1 X" q
2. 串联电阻的数值! F- H+ `0 e, N% P+ B W7 m
4. ADC的位数,10,12 or 16- j" o/ m9 \8 b Y' r" t
3. 测量的温度范围; K' Q: W: Q: W$ j/ Y/ k" ~7 l0 L
4. 精度要求,+/-0.05,+/-0.1,+/0.2
5. 分段要求,例如0.5度: t- i9 \$ h7 L
输出的结果: 一组ADC的分段参数(整数)" T& t* B% ~) m2 Q/ \ A# J
和 一组温度参数。(整数,例如,20000表示+100.00度,0表示-100.00度,偏移量10000)
没有必要使用浮点数。# P) B* |) F3 x' |# h
是这样的。这里的数值和ADC是不直接对应的。如果你稍微言就一下RTD。就知道完整范围并不是V_REF.所以我没有这样做。而是i做一个float的表格。(占用空间大,但比较准确。我上面提到高精度的RTD用来测量准确度到接近0.1摄氏度的误差。注意不是分辨率是精度。)
楼主,您的这个程序与附件中的pdf标准的表差不多,建议改成计算12位/16位ADC的数值对应温度数据表,这样用起来更加直接。' i1 y, O, P3 d* C# g4 ^- H
再结合我之前的“通用线性插值程序”就完美了:3 P+ C' L$ V; b# `8 _/ O$ v2 w
https://www.stmcu.org.cn/module/forum/thread-618342-1-1.html9 {7 ^8 q! G: ^1 i' X
没问题。但是RTD和NTC曲线不一样& ?+ H# f/ r# S