搜索
bottom↓
回复: 74

大家用NTC测温用的啥型号,多少K的?分享一下程序,谢谢!

  [复制链接]

出0入0汤圆

发表于 2012-6-3 12:17:51 | 显示全部楼层 |阅读模式
本帖最后由 hetao7241 于 2012-6-3 15:35 编辑

我最近也需要低成本测温,准备用ATMEGA8L(10位AD)来做,以前没用过,希望用常用的NTC,在电子市场或淘宝好买。

我测温在-40°-60°就可以了,分辨率1°就可以了,在论坛上搜了一下,以前的附件都不能下载,想走点捷径,希望分享一下大家测温部分的代码。

谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入127汤圆

发表于 2012-6-3 12:43:16 | 显示全部楼层
10K或100K

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-6-3 14:33:42 | 显示全部楼层
你10位的ADC想做到采样精度为1度劝你最好用温度传感器做,10K或100K NTC是做不到这个精度的。

出0入0汤圆

发表于 2012-6-3 14:51:21 | 显示全部楼层
somuchso 发表于 2012-6-3 14:33
你10位的ADC想做到采样精度为1度劝你最好用温度传感器做,10K或100K NTC是做不到这个精度的。 ...


凡是没绝对。

可以采用过超采样的方法提高1、2位是可以的。 ntc也有温漂、线性、精度比较好的厂家和型号。要做好非线性补偿。
做这个有个麻烦就是生产标定问题!

出0入0汤圆

 楼主| 发表于 2012-6-3 15:37:15 | 显示全部楼层
llssr 发表于 2012-6-3 12:43
10K或100K

感谢你的分享!

出0入0汤圆

 楼主| 发表于 2012-6-3 15:37:32 | 显示全部楼层
somuchso 发表于 2012-6-3 14:33
你10位的ADC想做到采样精度为1度劝你最好用温度传感器做,10K或100K NTC是做不到这个精度的。 ...

搞错了,分辨率1°,精度的话也要求不要,相差2-3°不碍大事

出0入0汤圆

 楼主| 发表于 2012-6-3 15:39:42 | 显示全部楼层
babysnail 发表于 2012-6-3 14:51
凡是没绝对。

可以采用过超采样的方法提高1、2位是可以的。 ntc也有温漂、线性、精度比较好的厂家和型号 ...


我这个相差几度没有问题,每一个热敏电阻要是不标定相差都有10多°,用这个也没有多大意义了

出0入0汤圆

 楼主| 发表于 2012-6-3 16:18:26 | 显示全部楼层
llssr 发表于 2012-6-3 12:43
10K或100K

请教一下,不知你是通过哪种方式买到他们产品的,我在网上比如淘宝都不好找到他们的产品,

另外这个是不是每个厂家做的参数基本一致哦?所以程序基本通用就一定的阻值哈。

谢谢!

出0入127汤圆

发表于 2012-6-3 17:36:04 | 显示全部楼层
hetao7241 发表于 2012-6-3 16:18
请教一下,不知你是通过哪种方式买到他们产品的,我在网上比如淘宝都不好找到他们的产品,

另外这个是不 ...

直接找他们要的样品,你在深圳的话可以给你几个用一下

出0入0汤圆

发表于 2012-6-3 17:55:38 | 显示全部楼层
测温度直接上PT385很准,而且计算简单

出0入0汤圆

 楼主| 发表于 2012-6-4 08:48:31 | 显示全部楼层
korgo 发表于 2012-6-3 17:55
测温度直接上PT385很准,而且计算简单

你这个哪里有资料?怎么查不到?

出0入0汤圆

发表于 2012-6-4 09:32:26 | 显示全部楼层
用5k的NTC也很好啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-6-4 09:36:54 | 显示全部楼层
hetao7241 发表于 2012-6-4 08:48
你这个哪里有资料?怎么查不到?

PT385也叫PT100,零度是是100欧姆,每变化1度阻值变化0.385欧姆

出0入0汤圆

 楼主| 发表于 2012-6-4 10:46:51 | 显示全部楼层
本帖最后由 hetao7241 于 2012-6-4 11:06 编辑
onlywen 发表于 2012-6-4 09:32
用5k的NTC也很好啊


这个热敏电阻不同厂家的能不能基本通用呢?我看淘宝上MF的比较多,不带H.

我把你的和网上找的一个对比了一下,参数都不太一样:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-6-4 10:47:34 | 显示全部楼层
korgo 发表于 2012-6-4 09:36
PT385也叫PT100,零度是是100欧姆,每变化1度阻值变化0.385欧姆

谢谢!原来没有搞懂385.

出0入0汤圆

发表于 2012-6-5 10:37:11 | 显示全部楼层
你看下B值有不同。

出0入0汤圆

 楼主| 发表于 2012-6-5 10:54:53 | 显示全部楼层
onlywen 发表于 2012-6-5 10:37
你看下B值有不同。

非常感谢!基本搞懂了,热敏电阻不同厂家生产的,在某一温度值,阻值应该基本一致;B值当然是一个可选参数。我对温度变化速度,精度没有太多要求

出20入70汤圆

发表于 2012-6-5 11:21:11 | 显示全部楼层

  1. /*
  2. ***************************************************************************************************
  3. *                                       INCLUDE HEADER FILES
  4. ***************************************************************************************************
  5. */
  6. //#pragma  src
  7. #include "cpu.h"

  8. #include <math.h>
  9. #include "adc0.h"

  10. /*
  11. ***************************************************************************************************
  12. *                                       ntc对应采样电压值数组
  13. *--------------------------------------------------------------------------------------------------
  14. * 注释第一行:对应温度
  15. *--------------------------------------------------------------------------------------------------
  16. * 测量温度范围定为-10℃-150℃(可能会有零点几的数据出入)
  17. ***************************************************************************************************
  18. */
  19. static int16u code ntc_adc[] =
  20. {      
  21.         4018,   3990,   3961,   3932,   3901,   3869,   3836,   3802,
  22.         3767,   3731,   3694,   3656,   3617,   3577,   3536,   3494,   
  23.         3451,   3407,   3363,   3318,   3271,   3225,   3177,   3129,   
  24.         3080,   3031,   2981,   2931,   2881,   2830,   2779,   2728,   
  25.         2676,   2625,   2573,   2522,   2470,   2419,   2368,   2317,   
  26.         2267,   2216,   2167,   2117,   2068,   2020,   1972,   1925,   
  27.         1878,   1832,   1787,   1742,   1698,   1655,   1612,   1571,   
  28.         1530,   1490,   1450,   1412,   1374,   1337,   1301,   1265,   
  29.         1231,   1197,   1164,   1132,   1101,   1070,   1040,   1011,   
  30.          983,    956,    929,    903,    877,    853,    829,    805,   
  31.          783,    761,    739,    718,    698,    678,    659,    641,   
  32.          623,    605,    588,    572,    556,    541,    526,    511,   
  33.          497,    483,    470,    457,    444,    432,    420,    409,   
  34.          398,    387,    377,    367,    357,    347,    338,    329,   
  35.          320,    312,    304,    296,    288,    280,    273,    266,   
  36.          259,    253,    246,    240,    234,    228,    222,    217,   
  37.          211,    206,    201,    196,    191,    186,    182,    177,   
  38.          173,    169,    165,    161,    157,    153,    150,    146,   
  39.          143,    139,    136,    133,    130,    127,    124,    121,   
  40.          119,    116,    113,    111,    108,    106,    103,    101,   
  41.           99,     97,     95,     93,     91,     89,     87,     85,   
  42.           83,     81,          80,
  43. };                                                                                       
  44. #define NTC_ADC_ARRAY_NUM (sizeof(ntc_adc)/sizeof(int16u))
  45. #define INDEX_MAX       (NTC_ADC_ARRAY_NUM-3)        /* 数组下标的最大可用取值,对应 80℃采样值下标 */
  46. #define INDEX_MIN       3                                       /* 数组下标的最小可用取值,对应-10℃采样值下标 */
  47. #define TEMPER_REF      -15                                     /* 温度基准点,即下标为0时对应的温度                    */
  48. #define TEMPER_LAST     155                                     /* 温度最后值,即数组最后一个对应的温度        */

  49. /*
  50. ***************************************************************************************************
  51. * 函数名称: search_data()
  52. * 输   入: search_value  查找基准值
  53. * 输   出:
  54. * 作   者:
  55. * 日   期: 2010.08.11
  56. * 功能描述: 二分查找adc采样值
  57. *--------------------------------------------------------------------------------------------------
  58. *注     意:
  59. *    1.    返回值为查找表格中第一个小于查找值(search_value)的下标;
  60. *    2.    查找值(search_value)大于查找表格中最大值时,返回1
  61. *          查找值(search_value)小于查找表格中最小值时,返回查找表格数量,即最大下标+1
  62. ***************************************************************************************************
  63. */
  64. static int16u search_data(int16u search_value)
  65. {
  66.     int16u  max = NTC_ADC_ARRAY_NUM - 1;
  67.     int16u  min = 1;
  68.     int16u  mid;

  69.     while(min <= max)
  70.     {
  71.         mid = (max + min) / 2;

  72.         if(search_value > ntc_adc[mid])
  73.         {
  74.             max = mid - 1;
  75.         }
  76.         else
  77.         {
  78.             min = mid + 1;
  79.         }
  80.     }

  81.     return min;
  82. }

  83. /*
  84. ***************************************************************************************************
  85. * 函数名称: temper_calc()
  86. * 输   入: index       数组下标
  87. *           adc0_value  ad滤波后的采样值
  88. * 输   出: ntc温度测量值
  89. * 作   者:
  90. * 日   期: 2010.10.26
  91. * 功能描述: 温度计算(分段线性插值算法)
  92. ***************************************************************************************************
  93. */
  94. static int16s temper_calc(int16u index, int16u adc0_value)
  95. {
  96.     if (index > INDEX_MAX || index < INDEX_MIN)
  97.     {
  98.         return TEMPER_ERROR;           //  返回错误采样温度
  99.     }
  100. //    else if (index < INDEX_MIN)
  101. //    {
  102. //        return -150;        //  返回-15.0℃
  103. //    }
  104.     else
  105.     {
  106.         /*************************************************
  107.          === 直线近似计算 ===
  108.          y1 = kx1+b       x <-> adc_value
  109.          y2 = kx2+b       y <-> temper
  110.          yn = kxn+b
  111.                y2 - y1     yn - y1
  112.          k  = --------- = ---------
  113.                x2 - x1     xn - x1
  114.                (y2 - y1)*(xn - x1)
  115.          yn = --------------------- + y1
  116.                      (x2 - x1)
  117.          *************************************************/

  118.         int16s temper;
  119.                                        
  120.         temper  = 10*(ntc_adc[index-1] - adc0_value);   //  放大10倍,temper放大10倍
  121.         temper /= (ntc_adc[index-1] - ntc_adc[index]);  //  (xn - x1)
  122.         temper += 10*(index + TEMPER_REF - 1);
  123.         
  124.         return temper;            
  125.     }      
  126. }

  127. /*
  128. ***************************************************************************************************
  129. * 函数名称: adc0_temper_calc()
  130. * 输   入: adc0_sample_index  温度采样序列值
  131. *           adc0_sample_num    ad采样次数
  132. * 输   出:
  133. * 作   者:
  134. * 日   期:
  135. * 功能描述:
  136. ***************************************************************************************************
  137. */
  138. void adc0_temper_calc(int8u adc0_sample_index, int8u adc0_sample_num)
  139. {
  140.     static int8u cnt[ST_MAX];                // 采样滤波计数

  141.         if (adc0_sample_index < ST_MAX) // 温度采样索引值在预定义范围内
  142.     {                      
  143.         int16u adc0_filter;         // 滤波处理的ad采样值                                 
  144.         int16s temper;                  // 温度值
  145.         int16u index;               // 查表下标值

  146.                 // 算术平均滤波(采样值求和后平均)处理
  147.         adc0_filter = arithmetic_average_filter(&adc0_sample_value[0], adc0_sample_num);  
  148.         index       = search_data(adc0_filter);             // 取温度数组下标
  149.         temper      = temper_calc(index, adc0_filter);      // 温度计算               

  150.                 if (abs(battery_info.battery_temper[adc0_sample_index] - temper) > 5)        // 两次温度采样相差0.5℃以上
  151.                 {
  152.                         cnt[adc0_sample_index] += 1;
  153.                        
  154.                         if (cnt[adc0_sample_index] > 1)
  155.                         {
  156.                                 cnt[adc0_sample_index] = 0;
  157.                                 battery_info.battery_temper[adc0_sample_index] = temper; // 赋值NTC温度
  158.                         }       
  159.                 }
  160.                 else
  161.                 {
  162.                         cnt[adc0_sample_index] = 0;
  163.                         battery_info.battery_temper[adc0_sample_index] = temper; // 赋值NTC温度       
  164.                 }
  165.                 
  166.     }
  167. }
复制代码

出20入70汤圆

发表于 2012-6-5 11:23:02 | 显示全部楼层
NTC采样电压计算

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-6-5 11:58:01 | 显示全部楼层
techbaby 发表于 2012-6-5 11:23
NTC采样电压计算

感谢你提供这么好的资料!

出0入0汤圆

 楼主| 发表于 2012-6-5 12:02:10 | 显示全部楼层
llssr 发表于 2012-6-3 12:43
10K或100K

我正在分析你提供的资料,其中有一个提供了完整程序:
这程序里的“temp>=ad_date[n];”是啥用法呢?
void tempertur()
{
for(n=0;temp>=ad_date[n];n++);
tp=temperiture[n-1];
change(tp);
LCD_Write_add_data(4,0,0x30+bai);
LCD_Write_add_data(5,0,0x30+shi);
LCD_Write_add_data(7,0,0x30+ge);
}

提供一个图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-6-5 12:09:47 | 显示全部楼层
好帖子
内容很全面啊
学习

出0入0汤圆

发表于 2012-6-5 12:14:57 | 显示全部楼层
hetao7241 发表于 2012-6-5 12:02
我正在分析你提供的资料,其中有一个提供了完整程序:
这程序里的“temp>=ad_date[n];”是啥用法呢?
voi ...

大于等于啊??

出0入0汤圆

 楼主| 发表于 2012-6-5 12:25:58 | 显示全部楼层
jade1988 发表于 2012-6-5 12:14
大于等于啊??


for(n=0;temp>=ad_date[n];n++);

怎么解释呢?我是向你虚心学习的。

出0入0汤圆

发表于 2012-6-5 12:45:20 | 显示全部楼层
NTC做+/-1C的精度是可以的。我常用的是10K的。

出50入0汤圆

发表于 2012-6-5 13:06:00 | 显示全部楼层
somuchso 发表于 2012-6-3 14:33
你10位的ADC想做到采样精度为1度劝你最好用温度传感器做,10K或100K NTC是做不到这个精度的。 ...

NTC可以做到0.3左右,这个我做过。

出0入0汤圆

发表于 2012-6-5 13:11:30 | 显示全部楼层
hetao7241 发表于 2012-6-5 12:25
for(n=0;temp>=ad_date[n];n++);

怎么解释呢?我是向你虚心学习的。

呵呵,别这样说,我也是菜鸟一个,好久没有写程序了;

我看那个意思,好象是拿读取的AD值与其中的一个表中的对应找出n的值,再在另一个表中找出对应温度的值;

出0入0汤圆

发表于 2012-6-5 13:29:37 | 显示全部楼层
hetao7241 发表于 2012-6-5 12:25
for(n=0;temp>=ad_date[n];n++);

怎么解释呢?我是向你虚心学习的。

大哥,你那个图片上你不都已经标上注释了么??

难道还是有什么特别的问题??

出0入0汤圆

 楼主| 发表于 2012-6-5 13:37:06 | 显示全部楼层
本帖最后由 hetao7241 于 2012-6-5 13:39 编辑

他是想表达这个意思,但是“>=”是用于比较,单两个数值比较,没有“if”什么,这个怎么理解?

出0入0汤圆

发表于 2012-6-5 13:56:27 | 显示全部楼层
hetao7241 发表于 2012-6-5 13:37
他是想表达这个意思,但是“>=”是用于比较,单两个数值比较,没有“if”什么,这个怎么理解? ...

他那也是两个值比较啊;只不过外面加了个循环;

把读取到的值与一个表中的值从小到大比较,那个n起到一个桥梁的作用;

我认为那个表你应该以你自己的真实环境实测一下;那个电阻在扳子上的位置不同也会有差别吧;

出0入0汤圆

 楼主| 发表于 2012-6-5 14:32:44 | 显示全部楼层
jade1988 发表于 2012-6-5 13:56
他那也是两个值比较啊;只不过外面加了个循环;

把读取到的值与一个表中的值从小到大比较,那个n起到一 ...


感谢!我的C语言功底不扎实,刚才把keil弄起,仿真了一下,确实是对的。

出0入0汤圆

 楼主| 发表于 2012-6-5 14:59:15 | 显示全部楼层
本帖最后由 hetao7241 于 2012-6-5 15:01 编辑
god-father 发表于 2012-6-5 13:06
NTC可以做到0.3左右,这个我做过。


请教一下,你们是怎么买这个NTC的,我刚才问了电子市场卖这个的,他们只晓得热敏电阻值大小,

B值大小就查不到了,这个B值好像对值影响很大的。

确定的某个值,比如50K的NTC,B值不同厂家应该会不一样嘛,矛盾呢

谢谢!

出0入0汤圆

发表于 2012-6-5 15:29:22 | 显示全部楼层
B值大小在不同的温度段落是有小许差别的,因为B值目的是用来模仿温度段落内真实的电阻曲线。使用温度段落两端的实测阻值,就能计算B出来。段落太大模仿就不准确了。

例如:

B(0~50C)    = 3892K
B(25C~50C) = 3936K
B(25C~85C) = 3976K

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-6-5 15:45:55 | 显示全部楼层
本帖最后由 hetao7241 于 2012-6-5 15:47 编辑

哦,明白了。

出0入0汤圆

 楼主| 发表于 2012-6-5 15:47:30 | 显示全部楼层
本帖最后由 hetao7241 于 2012-6-5 17:25 编辑
eblc1388 发表于 2012-6-5 15:29
B值大小在不同的温度段落是有小许差别的,因为B值目的是用来模仿温度段落内真实的电阻曲线。使用温度段落两 ...


原来B值也是变化的,那给的参数B值可能也是25时或25左右的温度范围。

那我在电子市场上买一个热敏电阻,比如50K的热敏电阻,怎么来弄R与T的对照表呢?电子市场卖器件的是没法提供B值的

根据经验一般怎么做,谢谢!

找到的一些资料:


ntc热敏电阻(关键词 热敏电阻 查找 B值):

http://www.elecfans.com/weiji/wi ... F%E7%94%B5%E9%98%BB

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-6-5 17:26:17 | 显示全部楼层
那就要看资料文档。通常 B 值是提供 B(25C~50C) 的。

>> 怎么来弄R与T的对照表呢?

如卖家不能提供,这只能用恒温箱自己直接测量。

出0入0汤圆

 楼主| 发表于 2012-6-5 17:28:37 | 显示全部楼层
eblc1388 发表于 2012-6-5 17:26
那就要看资料文档。通常 B 值是提供 B(25C~50C) 的。

>> 怎么来弄R与T的对照表呢?

哦,非常感谢!看来必须得找到B值,否则很麻烦的。

出0入0汤圆

发表于 2012-6-5 17:37:59 | 显示全部楼层
你如果买的量是以千计的,那卖方当然会给你提供或代你向厂家拿资料文档。

出0入0汤圆

 楼主| 发表于 2012-6-5 22:21:54 | 显示全部楼层
eblc1388 发表于 2012-6-5 17:37
你如果买的量是以千计的,那卖方当然会给你提供或代你向厂家拿资料文档。 ...


嗯,你说得好。但是开初不可能那么大的量。

出50入0汤圆

发表于 2012-6-5 23:03:38 | 显示全部楼层
hetao7241 发表于 2012-6-5 14:59
请教一下,你们是怎么买这个NTC的,我刚才问了电子市场卖这个的,他们只晓得热敏电阻值大小,

B值大小就 ...

B值是要用的。如果你用的是查表的方法,还需要厂商提供完整的拟合曲线。
记得网上有MF系列的拟合曲线,根据你的要求做拟合。
要注意,NTC是有精度的,
精度包括两方面,一个是阻值精度、另一个就是B值精度,你项目的精度高低及产品的一致性跟精度有直接关系。

出0入0汤圆

发表于 2012-6-5 23:25:16 | 显示全部楼层
致楼主,图中的 NTC 都标有 B 值的,至於B值精度就不知道了。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-6-6 08:55:27 | 显示全部楼层
god-father 发表于 2012-6-5 23:03
B值是要用的。如果你用的是查表的方法,还需要厂商提供完整的拟合曲线。
记得网上有MF系列的拟合曲线,根 ...

感谢!可能一致性确实不好弄,热敏电阻的精度应该不至于相差个2-3度嘛,我的要求不高,有两三度差异没事。

出0入0汤圆

 楼主| 发表于 2012-6-6 08:55:59 | 显示全部楼层
本帖最后由 hetao7241 于 2012-6-6 14:21 编辑
eblc1388 发表于 2012-6-5 23:25
致楼主,图中的 NTC 都标有 B 值的,至於B值精度就不知道了。


感谢提供的信息!

保存些有用的地址信息:

http://bbs.ednchina.com/BLOG_ARTICLE_224223.HTM

http://www.ourdev.cn/forum.php?m ... =%E6%B5%8B%E6%B8%A9

http://www.ouravr.com/forum.php?mod=viewthread&tid=756872

出0入0汤圆

发表于 2013-7-23 11:27:59 | 显示全部楼层
您这个最后做成了吗?NTC热敏电阻如何选取,精密电阻又是如何选取的呢??、

出0入0汤圆

发表于 2013-7-23 15:57:35 | 显示全部楼层
查表太麻烦,并且不同的电阻值和不同的B值需要不同的表,看看我的做法:
/*
根据公式R=R25*expB(1/T-1/T25)导出T=B/[ln(R)+B/T25-ln(R25)]或T=B/[ln(R/R25)+B/T25]
B=3950,则B/T25=13.2483649
NTC=100k,则ln(R25)=11.51292546
最后得出T=B/[ln(R)+1.735439452],计算结果是绝对温度
精确到1位小数的摄氏度算法是:
(int)((B*10)/(log(adc6)/(1024-adc6))+B/(273.15+25))-273.15*10+0.5)) */
#define NTC_B 4100
int adc2t(void){
        return((int)( (float)(NTC_B*10)/(log((float)adc6/(float)(1024-adc6))+NTC_B/298.15)-2747));
}

出0入0汤圆

发表于 2013-7-24 07:44:00 来自手机 | 显示全部楼层
mark,收了。

出0入0汤圆

发表于 2013-7-24 08:26:20 | 显示全部楼层
我用线性拟合的方法

出0入0汤圆

发表于 2013-7-24 10:48:18 | 显示全部楼层
deyun 发表于 2013-7-23 15:57
查表太麻烦,并且不同的电阻值和不同的B值需要不同的表,看看我的做法:
/*
根据公式R=R25*expB(1/T-1/T25) ...

这执行一次大概需要多长时间?

出0入0汤圆

发表于 2013-7-25 04:11:20 | 显示全部楼层
touch_mcu 发表于 2013-7-24 10:48
这执行一次大概需要多长时间?

完成这个运算需要5.8k左右个时钟周期,如果芯片的晶振频率比较低,就适合用曲线拟合程序了。

出0入0汤圆

发表于 2013-7-25 12:22:55 | 显示全部楼层
deyun 发表于 2013-7-25 04:11
完成这个运算需要5.8k左右个时钟周期,如果芯片的晶振频率比较低,就适合用曲线拟合程序了。 ...

这样的公式,单片机要执行这么多的时钟周期。还不如二分法查表。

出0入0汤圆

发表于 2013-7-25 14:31:13 来自手机 | 显示全部楼层
正需要,好帖

出0入0汤圆

发表于 2013-7-25 15:12:12 | 显示全部楼层
还可以用RC充放电测电阻

出0入0汤圆

发表于 2013-7-25 21:30:21 来自手机 | 显示全部楼层
热心的人很多啊

出0入0汤圆

发表于 2013-7-28 16:13:09 | 显示全部楼层
touch_mcu 发表于 2013-7-25 12:22
这样的公式,单片机要执行这么多的时钟周期。还不如二分法查表。

  无论是CRC还是浮点函数运算,AVR都需要消耗很多周期,但是代码可以做的短小或者编程变得比较容易,如果单片机工作到接近极限,查表就作为优先选择了,但是会占用很多程序代码空间。

出0入0汤圆

发表于 2013-7-28 16:47:03 | 显示全部楼层
常见的NTC一致性都很差的,一般又不会用烘箱标定,还是用Pt精度有保证。

出0入0汤圆

发表于 2013-7-29 13:52:43 | 显示全部楼层
我一般用10K的NTC

出0入0汤圆

发表于 2013-10-1 16:33:15 | 显示全部楼层
MARK

出0入0汤圆

发表于 2013-10-18 21:07:20 | 显示全部楼层
llssr 发表于 2012-6-3 12:43
10K或100K

下载后仔细看,谢谢!

出0入0汤圆

发表于 2013-10-22 15:20:38 | 显示全部楼层
大神啊。。。

出0入0汤圆

发表于 2014-3-2 14:27:35 | 显示全部楼层
收藏了     

出0入143汤圆

发表于 2014-3-2 16:06:49 | 显示全部楼层
测温在-40°-60°  这种NTC 应该要跟工厂确认,我们用的是这家WWW.SensorBase.com

出0入0汤圆

发表于 2014-5-15 15:48:20 | 显示全部楼层
学习了,NTC测温很详细

出0入0汤圆

发表于 2014-5-15 19:38:49 来自手机 | 显示全部楼层
Mark.         

出0入0汤圆

发表于 2014-5-15 20:09:21 | 显示全部楼层
我一般用33K的NTC

出0入0汤圆

发表于 2014-5-17 18:14:17 | 显示全部楼层
mark              

出0入0汤圆

发表于 2014-6-5 17:25:50 | 显示全部楼层
都是干货,很详细,收藏了

出0入0汤圆

发表于 2014-7-8 21:32:44 | 显示全部楼层
很好的资料

出0入0汤圆

发表于 2014-10-20 19:56:54 | 显示全部楼层
夜尽天明 发表于 2013-7-25 15:12
还可以用RC充放电测电阻

大神..求指导

出0入0汤圆

发表于 2014-12-29 10:48:08 | 显示全部楼层
不错的帖子,有学习到了

出0入0汤圆

发表于 2015-12-12 13:08:03 | 显示全部楼层

很好的资料

出0入0汤圆

发表于 2016-5-21 18:34:34 | 显示全部楼层
deyun 发表于 2013-7-23 15:57
查表太麻烦,并且不同的电阻值和不同的B值需要不同的表,看看我的做法:
/*
根据公式R=R25*expB(1/T-1/T25) ...

请问您这个算法中,NTC和多大的电阻串联呢?

出0入0汤圆

发表于 2016-7-7 13:06:10 | 显示全部楼层
好资料,多谢

出0入0汤圆

发表于 2016-9-21 09:45:13 | 显示全部楼层
ntc的零下貌似很差  我们一般用10K的

出0入0汤圆

发表于 2016-12-27 20:31:28 | 显示全部楼层
MARK !谢谢!

出0入0汤圆

发表于 2016-12-27 21:15:28 | 显示全部楼层
不错的资料,收了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-2 19:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表