找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8490|回复: 43
打印 上一主题 下一主题
收起左侧

刚刚告知老师不允许用DS18B20数字传感器测温,还有什么吗?

  [复制链接]
跳转到指定楼层
楼主
ID:143848 发表于 2016-10-23 15:40 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
大家有没有用PT100或是热敏电阻还是其他温度传感器做测温系统,请奉上思路与图,感谢万分⊙﹏⊙
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:57657 发表于 2016-10-23 15:51 | 只看该作者
还有DS18S20的,再就是热敏电阻和热电偶,红外线测量,最后用各种元件的温度漂移做测量。
回复

使用道具 举报

板凳
ID:51321 发表于 2016-10-23 16:20 | 只看该作者
热敏电阻
回复

使用道具 举报

地板
ID:143848 发表于 2016-10-23 18:17 来自手机 | 只看该作者
npn 发表于 2016-10-23 15:51
还有DS18S20的,再就是热敏电阻和热电偶,红外线测量,最后用各种元件的温度漂移做测量。

老师说必须自己动手做,不准用模块,要测温度然后用A/D转换器最后接到单片机实现显示,请问有具体方案吗?我百度都百度不到什么有用的
回复

使用道具 举报

5#
ID:144110 发表于 2016-10-23 20:25 | 只看该作者
热敏电阻一般都有一个温度对应的线段吧,如果有公式的话,可以选择用公式的方法算出温度,不然用一个码表,把对应温度的AD输出的值对应出来就可以了吧。
回复

使用道具 举报

6#
ID:143848 发表于 2016-10-23 21:58 来自手机 | 只看该作者
尚尚123 发表于 2016-10-23 20:25
热敏电阻一般都有一个温度对应的线段吧,如果有公式的话,可以选择用公式的方法算出温度,不然用一个码表, ...

好像不行哎,要做一个测温系统
回复

使用道具 举报

7#
ID:123289 发表于 2016-10-23 22:29 | 只看该作者
比如用“标称值为10K的热敏阻”,与一个温漂小的“10K电阻”串联。则当温度变化时,其分压值会随温度变化。采样这个电压,就能得到对应这个电压值的温度。
回复

使用道具 举报

8#
ID:111634 发表于 2016-10-23 22:34 | 只看该作者
本帖最后由 zl2168 于 2016-10-23 22:49 编辑

二极管测温
智能型即热式热水器控制实例(已实用于产品)
水温检测和A/D转换电路


R4、D1R5、R7、RP1组成桥式水温检测电路,经IC5、IC6变换放大,输入ADC 0832 CH0通道进行串行A/D转换,RP1RP2可分别调节零度和满度两点A/D值为00HFFH
以上摘自张志良编著《单片机原理与控制技术——双解汇编和C51》第2版  ISBN7-111-08314-8  机械工业出版社
10.6   智能型即热式热水器控制实例
有问题,可email咨询。zzlls@126.com









回复

使用道具 举报

9#
ID:123289 发表于 2016-10-23 22:35 | 只看该作者
采样电压变化的原因,是“10K的热敏阻”阻值的变化,将“热敏阻”阻值与温度的关系特性(与生产商索取)进行计算(计算:与10电阻分压后的电压),制成一个:“分压采样值”与“温度”关系的表格,将此表格放在程序中,采样、查表后就达成楼主的目的了。
回复

使用道具 举报

10#
ID:123289 发表于 2016-10-23 22:38 | 只看该作者
表格不必做得很密,表格之间的数据(指两个相邻数据之间的数据),无法直接取得温度值,可以用插值的方法估算得到。
回复

使用道具 举报

11#
ID:123289 发表于 2016-10-23 22:47 | 只看该作者
温度℃ 3950电阻K  采样电压                AD值                     AD取整

-20        98.26        2.995178275        928.95908                929
-19        92.74        2.978800857        923.879599        924
-18        87.55        2.961711943        918.5794464        919
-17        82.69        2.943974539        913.0781638        913
-16        78.12        2.925510667        907.351566        907
-15        73.83        2.906346177        901.4076703        901
-14        69.8        2.886466165        895.2418546        895
-13        66.01        2.865846599        888.8466649        889
-12        62.45        2.844513458        882.2301587        882
-11        59.1        2.822431259        875.3813314        875
-10        55.95        2.799620925        868.3066717        868
-9        52.98        2.776024135        860.9880915        861
-8        50.19        2.751736169        853.4551421        853
-7        47.57        2.726784784        845.7164322        846
-6        45.09        2.700980214        837.7131058        838
-5        42.76        2.674526156        829.5083397        830
-4        40.56        2.647310127        821.0672468        821
-3        38.49        2.619447309        812.4255517        812
-2        36.53        2.590780142        803.5343864        804
-1        34.68        2.561414503        794.4265891        794
0        32.94        2.531485794        785.1441546        785
1        31.3                2.500968523        775.6791768        776
2        29.74        2.469602416        765.9509311        766
3        28.28        2.437931034        756.1280042        756
4        26.89        2.405448631        746.0535375        746
5        25.58        2.372512648        735.8383924        736
6        24.34        2.339021549        725.4510775        725
7        23.17        2.305125113        714.9380464        715
8        22.06        2.270679975        704.2548347        704
9        21.01        2.235827153        693.445179        693
10        20.01        2.200366544        682.4470177        682
11        19.07        2.164809082        671.4188166        671
12        18.18        2.128956707        660.2991483        660
13        17.33        2.092535675        649.0031101        649
14        16.53        2.056125141        637.7103279        638
15        15.77        2.019441211        626.3327513        626
16        15.05        1.982634731        614.9171657        615
17        14.37        1.945876077        603.5164136        604
18        13.72        1.908768971        592.0075885        592
19        13.1                1.871428571        580.4264069        580
20        12.52        1.834635879        569.0150977        569
21        11.96        1.79726776        557.4253188        557
22        11.43        1.76010266        545.8985068        546
23        10.93        1.723315815        534.489011        534
24        10.45        1.686308068        523.0110024        523
25        10                1.65                       511.75                512
26        9.569        1.613659359        500.4788952        500
回复

使用道具 举报

12#
ID:123289 发表于 2016-10-23 22:48 | 只看该作者
发一部分计算值给你参考,3950是热敏电阻的型号
回复

使用道具 举报

13#
ID:143848 发表于 2016-10-23 22:56 来自手机 | 只看该作者
yzwzfyz 发表于 2016-10-23 22:48
发一部分计算值给你参考,3950是热敏电阻的型号

很感谢大神,我明白你的思路,不过让我设计电路图想想小女子就汗颜,蓝瘦。不过嘛我在想是用PT100还是其他你这个热敏电阻电路会简单些
回复

使用道具 举报

14#
ID:144157 发表于 2016-10-24 07:52 来自手机 | 只看该作者
你老师意思肯定是不能用数字传感器咯
回复

使用道具 举报

15#
ID:61002 发表于 2016-10-24 08:50 | 只看该作者
用pt100吧,这个器件的线性很好
以下代码是我拟合了PT100,cu50,BA1,BA2的曲线,你可以参考使用。
  1. _Data_Ch Data_Ch[4]=
  2. {
  3. {{-2.194e-11,2.349e-8,-8.453e-6,0.002422,2.245,-242.5},5,PT100,},
  4. {{0.0001619,4.648,-232.7},2,CU50,},
  5. {{-4.31e-9,1.825e-6,-0.0002766,0.02346,4.486,-236.5},5,BA1,},
  6. //{{-7.958e-11,3.256e-08,-4.766e-06,0.0002932,-0.0009193,4.955,-239.5},6,BA1,},
  7. {{-3.406e-11,3.345e-08,-1.145e-05,0.002776,2.194,-238.7},5,BA2,},
  8. };
  9. float jisuan(_InputType type,float val)
  10. {
  11.         float d=0;
  12.         uint8_t i,j;
  13.         for(i=0;i<10;i++)
  14.         {
  15.                 if(Data_Ch[i].type==type)
  16.                         break;
  17.         }
  18.        
  19.         for(j=0;j<=Data_Ch[i].cishu;j++)
  20.                 d+=Data_Ch[i].Confing[j]*pow(val,Data_Ch[i].cishu-j);
  21.         return d;
  22. }
复制代码
回复

使用道具 举报

16#
ID:123289 发表于 2016-10-24 12:32 | 只看该作者
PT100贵!
电路差别不大,因为都属于电阻转电压。
对照表的生成,在PC机上完成,复制到单片机中即可。
回复

使用道具 举报

17#
ID:123289 发表于 2016-10-24 12:39 | 只看该作者
我有上面提到的方式,是我们产品应用的实例,硬件上就是两个电阻分压(一个是热敏),采样分压值。已是最简单了。温度表格的计算稍麻烦一点,不过用EXCEL计算也很方便。单片机程序就是采样、查表、温度的小数部分,做个插值就OK了。
回复

使用道具 举报

18#
ID:123289 发表于 2016-10-24 12:43 | 只看该作者
PT100测温范围广,耐高温,是温敏电阻是比较高级的传感器,就是价格高。Pt是贵金属。
回复

使用道具 举报

19#
ID:143848 发表于 2016-10-24 14:49 来自手机 | 只看该作者
1062298577 发表于 2016-10-24 07:52
你老师意思肯定是不能用数字传感器咯

是滴嘞,老师说数字传感器里面已经是一个模块了,除了自己要做一个最小系统自己什么都不用干,哪能这么简单,我也是要晕了~
回复

使用道具 举报

20#
ID:143848 发表于 2016-10-24 14:57 来自手机 | 只看该作者
yzwzfyz 发表于 2016-10-24 12:43
PT100测温范围广,耐高温,是温敏电阻是比较高级的传感器,就是价格高。Pt是贵金属。

请问有没有电路图呀?我找了一个图,也不知道可不可以可还有具体原件什么作用我不清楚

6231218265222.jpg (22.24 KB, 下载次数: 92)

6231218265222.jpg
回复

使用道具 举报

21#
ID:111634 发表于 2016-10-24 21:38 | 只看该作者
本帖最后由 zl2168 于 2016-10-25 09:34 编辑

给你的电路不看,自己找一个不太好的电路。
你自己找的电路可勉强用,但不太好,有问题。
第一级运放,差动放大,Uo1=91Ut-90Uref,其中Ut为温度信号,Uref为基准电压。这种91Ut-90Uref的差动比例放大,本身就是非线性的
第二级运放,反相放大,Uo1=2Ut-Uref
你用的运放为LM358,双运放,但加的电源电压是单极性的,那么0点及最高点5V处会产生非线性放大,你除了测温元件非线性,放大电路也是非线性的。
优点是取样电路电源电压比较稳定,由431稳压。但意义不是很大,因电源电压略有波动对Ut和Uref作用是相同的。具有共模性质,被运放抑制。

我给你介绍的电路与你的电路结构基本相同,但细节好得多。

桥式取样。由R4、D1分压取得温度信号Ut,不过测温元件是二极管;由R5、R7、RP1分压取得基准电压Uref,这个Uref是可调的,RP1用于调节零度基准(对应于AD转换器的最小值00H),而且为了防止电位器噪声,加了一个滤波电容。
第一级运放,差动放大。由于4个10k,组成减法器,Uo1=Uref-Ut。
第二级运放,反相放大,Uo2=Au*Uo1,Au可调,RP2用于调节满度(AD最大值FFH)
为了是运放放大有较好的线性度,运放正电源电压比AD转换器的电源电压略高,取6.2V;运放负电源电压取-0.7V。就避免了你电路0V和5V处的非线性。
再有,你只需一路AD,用不着8路AD 0809,0809是并行AD,太庞大复杂,没必要。用只有2路AD的串行AD,足够了,体积小,成本低,编程相对方便。
好了,不说了,我已经对你说得太多了。




回复

使用道具 举报

22#
ID:143848 发表于 2016-10-24 23:39 来自手机 | 只看该作者
zl2168 发表于 2016-10-24 21:38
给你的电路不看,自己找一个不太好的电路。
你自己找的电路可勉强用,但不太好,有问题。
第一级运放,差 ...

谢谢你了^_^我会好好看你的资料和分析的。让你费心了,主要我又不太有设计理念,就想照搬一下,做出东西来
回复

使用道具 举报

23#
ID:140444 发表于 2016-10-25 03:36 | 只看该作者
热敏电阻测温可以实现,根据电阻特性解方程t=(Rt-B)/K就可以得到温度了
回复

使用道具 举报

24#
ID:123289 发表于 2016-10-25 07:55 | 只看该作者
不要以为不线性,就对测温有影响了。其实没有电阻与成线性关系的。不线性也无关系,计算机就是干这个活的!
定定心心来做,哪一种方式都可以实现。
做复杂了,可以多积累一点经验。做简单了,完成的胜算多一点。不必纠结。开工吧。
做这个题目,你跳不掉做一个查表的程序。除非老师不考你“对非线性的处理及不规则曲线的处理”
回复

使用道具 举报

25#
ID:123289 发表于 2016-10-25 07:56 | 只看该作者
逝者如斯夫。
回复

使用道具 举报

26#
ID:111634 发表于 2016-10-25 08:55 | 只看该作者
本帖最后由 zl2168 于 2016-10-25 09:31 编辑

测温元件的非线性几乎是不可避免的,无论是二极管、热敏电阻抑或其他元件,修正的简单方法就是查表,预先测得真实温度与非线性测温元件的一一对应数表,然后在程序中查表修正
我上文所提及的非线性是指放大电路的非线性,例如,对温度信号Ut与基准电压之间差值的非线性:Uo1=91Ut-90Uref。还有对接近电源电压+5V时的运放饱和区非线性,接近0电压时的运放截止区非线性,等等。
回复

使用道具 举报

27#
ID:111634 发表于 2016-10-25 09:37 | 只看该作者
本帖最后由 zl2168 于 2016-10-25 09:41 编辑

楼主选择测温元件可以选二极管,也可选择热敏电阻抑或其他测温元件。但桥式取样电路是经典的,其连接方式应根据测温元件属正温度系数还是负温度系数。正温度系数测温元件可按我上传的电路形式连接,若是负温度系数测温元件,与运放连接应交换输入端,否则输出电压为负极性。
回复

使用道具 举报

28#
ID:111634 发表于 2016-10-25 09:47 | 只看该作者
本帖最后由 zl2168 于 2016-10-25 09:54 编辑

给你提供几个参考案例
实例83  ADC0832串行A-D(TXD输出CLK)



Proteus仿真一下,确认有效。
实例85 ADC0832串行A-D( TXD输出CLK).rar (36.86 KB, 下载次数: 8)


以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1


书中电路和程序设计有详细说明,程序语句条条有注解。


回复

使用道具 举报

29#
ID:111634 发表于 2016-10-25 09:51 | 只看该作者
本帖最后由 zl2168 于 2016-10-25 09:53 编辑

实例84  ADC0832串行A-D(虚拟CLK)


Proteus仿真一下,确认有效。
实例86 ADC0832串行A-D(虚拟CLK).rar (35.29 KB, 下载次数: 5)


以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1


书中电路和程序设计有详细说明,程序语句条条有注解。


回复

使用道具 举报

30#
ID:111634 发表于 2016-10-25 09:56 | 只看该作者
实例67  LCD1602显示屏显示


Proteus仿真一下,确认有效。
实例61 LCD1602显示屏显示.rar (49.26 KB, 下载次数: 7)


以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1


书中电路和程序设计有详细说明,程序语句条条有注解。


回复

使用道具 举报

31#
ID:111634 发表于 2016-10-25 10:02 | 只看该作者
顺便提一下,二极管测温范围有限,0~60。太高了,不好。
回复

使用道具 举报

32#
ID:123732 发表于 2016-10-25 21:35 | 只看该作者
回复

使用道具 举报

33#
ID:123289 发表于 2016-10-26 00:06 | 只看该作者
“二极管测温范围有限,0~60“?
理论上,二极管特性与温度有关,并不受温度限制,只要二极管不坏(超高温引起的物理损坏)。
所以低于0.高于60都能用于测温!
回复

使用道具 举报

34#
ID:144529 发表于 2016-10-26 13:12 | 只看该作者
谢谢分享
回复

使用道具 举报

35#
ID:143848 发表于 2016-10-26 21:49 来自手机 | 只看该作者
刘海龙 发表于 2016-10-25 21:35
NTC10K热敏电阻测温系统

哇噻噻~真的是大神呐~崇拜,星星眼(☆_☆)
回复

使用道具 举报

36#
ID:143848 发表于 2016-10-26 21:58 来自手机 | 只看该作者
刘海龙 发表于 2016-10-25 21:35
NTC10K热敏电阻测温系统

我看了大神的,那个单片机可不可以用51单片机呀?还有我觉得老师的意思好像是还要我利用A/D转换器然后将模拟信号变成数字信号,然后显示出来
回复

使用道具 举报

37#
ID:123732 发表于 2016-10-26 22:47 | 只看该作者
七颗星星 发表于 2016-10-26 21:58
我看了大神的,那个单片机可不可以用51单片机呀?还有我觉得老师的意思好像是还要我利用A/D转换器然后将 ...

stc单片机就是51单片机,只不过是增强型51单片机(把ADC转换器PWM模块等集成到了单片机内部)
我写的NTC10k测温系统的程序其实就是利用单片机内部的ADC转换器将模拟信号转化为数字信号显示出来的,完全符合你们老师的要求。
回复

使用道具 举报

38#
ID:143848 发表于 2016-10-26 23:04 来自手机 | 只看该作者
刘海龙 发表于 2016-10-26 22:47
stc单片机就是51单片机,只不过是增强型51单片机(把ADC转换器PWM模块等集成到了单片机内部)
我写的NTC ...

(⊙o⊙)哦,是这样啊,不过我刚刚问了老师,他老古董,只准用89C51单片机,可能A/D 0809转换电路还要重新单独做,我们最后得仿真然后焊接出来,所以现在正在确定电路,因为老是被打下来,说太简单,不准用模块,心塞
回复

使用道具 举报

39#
ID:143848 发表于 2016-10-26 23:09 来自手机 | 只看该作者
刘海龙 发表于 2016-10-26 22:47
stc单片机就是51单片机,只不过是增强型51单片机(把ADC转换器PWM模块等集成到了单片机内部)
我写的NTC ...

刚刚老师又回复我了说A/D转换电路不一定用0809,看自己的需求
回复

使用道具 举报

40#
ID:143848 发表于 2016-10-26 23:15 来自手机 | 只看该作者
yzwzfyz 发表于 2016-10-26 00:06
“二极管测温范围有限,0~60“?
理论上,二极管特性与温度有关,并不受温度限制,只要二极管不坏(超高温 ...

我昨天认真的看了你给我的那个图,看分析不是很明白,我又不敢问你了,你说你说的已经够多了,哎,人傻了,不过还是很谢谢你给我的指点啦^_^
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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