搜索
bottom↓
回复: 88

DS18B20引线超过十米就不工作?

[复制链接]

出0入0汤圆

发表于 2009-5-23 14:24:19 | 显示全部楼层 |阅读模式
上拉电阻用了4.7K,距离还是这么近,大家有没有好的方法?急

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入90汤圆

发表于 2009-5-23 14:28:50 | 显示全部楼层
距离还近吗?都10米了!

出0入0汤圆

发表于 2009-5-23 14:42:23 | 显示全部楼层
呵呵,RS232的通信有效也不过是几十米。。。

出0入0汤圆

发表于 2009-5-23 15:00:45 | 显示全部楼层
晕,这么长

出0入0汤圆

发表于 2009-5-23 15:26:01 | 显示全部楼层
TTL电平原则上来说是不应该超过1米的.

出0入0汤圆

发表于 2009-5-23 15:59:06 | 显示全部楼层
我看别人的多点温度测量系统,单总线上能挂几十个节点,传输距离能超过百米

需要增加相应的驱动才行。

出0入0汤圆

发表于 2009-5-23 16:18:51 | 显示全部楼层
不需要增加驱动。
1、采用双绞线,我是采用超5类双绞线。
2、减小上拉电阻。
3、微调采集时序。(通过示波器观察18b20端)

注意线的分布参数对时序的影响。

单个节点我的距离是300米,就是一箱网线的长度(305米)。没有准确计算网线的长度,新的网线,怎么也得250米以上。

5V,ttl电平。

出0入90汤圆

发表于 2009-5-23 16:24:51 | 显示全部楼层
牛逼,牛逼!

出0入0汤圆

发表于 2009-5-23 16:32:20 | 显示全部楼层
或者试试一芯的屏蔽线  线真的是太长了  你现在还是在实验室里 到产品的应用上成功系数又小了  最好拿个示波器好好瞧瞧时序  祝你成功

出0入0汤圆

发表于 2009-5-23 16:38:14 | 显示全部楼层
我用20米的也貌似没啥问题。。。。。
不过确实要加驱动。。。

出0入0汤圆

发表于 2009-5-23 16:49:00 | 显示全部楼层
忘了在哪下的18B20的资料了,它的转换电流要1mA的。你现在的上拉用的4.7K的,供电可能有问题吧,可以用强上拉。

出0入0汤圆

发表于 2009-5-23 17:39:59 | 显示全部楼层
窃电工作时特别要注意上拉电阻。我们用1K的,非窃电方式,150米挂5个肯定可以,更多的没测试

出0入0汤圆

发表于 2009-5-23 17:52:55 | 显示全部楼层
【6楼】 ndust  
不需要增加驱动。
1、采用双绞线,我是采用超5类双绞线。
2、减小上拉电阻。
3、微调采集时序。(通过示波器观察18b20端)

注意线的分布参数对时序的影响。

单个节点我的距离是300米,就是一箱网线的长度(305米)。没有准确计算网线的长度,新的网线,怎么也得250米以上。

5V,ttl电平。
=========================================

你能上图吗?或者其他资料.否则我难以置信.

出0入0汤圆

发表于 2009-5-23 17:57:11 | 显示全部楼层
我这样说吧.

谁在实际应用当中.超过5M没有外加驱动的.请讲讲是如何实现的.包括楼主所谓的10M

出0入0汤圆

发表于 2009-5-23 18:02:40 | 显示全部楼层
楼上只有单个18B20的话,这个是可以做到的。
我有更强的方案,可以挂上几百个点,通信距离稳定的做到500m以上,甚至加到700米左右的电缆还是可以准确读数,当然不是用的网线了,这是试了几个月才弄出来的。

达拉斯有个这方面的应用文章,看看就知道怎么搞了

出0入0汤圆

发表于 2009-5-23 18:05:43 | 显示全部楼层
你说的是加驱动嘛.我做过传20M.没有再长的线了.所以再长久不知道了.

出0入0汤圆

发表于 2009-5-23 20:34:12 | 显示全部楼层
18B20可以做到这种程度:
距离可以达到1KM左右(最远的18B20离控制板的距离),而且1根电缆线上可以挂接20个以上的18B20同时温度采样,别怀疑我所说的,我做过这样的实际系统,而且在矿业级系统中有这样的板在应用

出0入0汤圆

发表于 2009-5-23 20:52:08 | 显示全部楼层
我在实际应用中是上拉4.7K电阻改可调电阻,多P口挂DS18B20,最多用过20个点的.

出0入0汤圆

发表于 2009-5-23 21:26:19 | 显示全部楼层
有专门的驱动芯片 加一个就搞定了....

出0入0汤圆

发表于 2009-5-23 22:08:37 | 显示全部楼层
微调时序, 这个很重要

出0入0汤圆

发表于 2009-5-24 00:14:19 | 显示全部楼层
用专用接口芯片就很爽了,加了缓冲,怎么的也安全了许多。转成串口用,还解放了CPU,可就是买不到,一问北京美信,要订,1000个。我才需要10个,晕

出0入0汤圆

发表于 2009-5-24 09:50:27 | 显示全部楼层
用专门的护理巾就很爽了,加了吸收垫。怎么的也安全了许多.............一问北京美信,要订,1000个。我才需要10个,晕  

出0入0汤圆

发表于 2009-5-24 10:35:16 | 显示全部楼层
线长越长,TTL双向信号传输速率越慢。
1km?太牛了。不加驱动就是牛神了!户外用不加防雷超越牛神了!
还是搞个RS485网络吧。价格便宜安全又实惠,我们一直都用它!

出0入0汤圆

发表于 2009-5-24 10:41:14 | 显示全部楼层
呵呵.没错.要是远的话.超过百米.我还是建议用RS485+个小单片机的方法.

出0入0汤圆

发表于 2009-5-24 14:04:47 | 显示全部楼层
18B20 可以达到 700m
我做过 500M 单线挂 196点 不过不能用寄生供电方式
注意事项:1.上拉电阻改1K5
         2.用带强高电平输出的单片机,所有的高电平都用强输出来代替,所有的低电平都用强输入来代替,读18B20的数据时,用高阻状态
         3.用示波器,仔细调整时序

用AVR , STC , PIC 都实现过,标准51不行,标准51用自己设计的驱动电路也实现过,MAX的驱动器没有作用,效果不好,和IO直接驱动距离一样.

这个方案,我是用来做粮库温度检测的,投运5年以上了,效果理想,输入口加电感,气体放电管,半导体放电管和TVS防雷.压敏电阻防雷无效!

出0入0汤圆

发表于 2009-5-24 18:02:00 | 显示全部楼层
注意事项:
1.上拉电阻改1K5
2.用带强高电平输出的单片机,所有的高电平都用强输出来代替,所有的低电平都用强输入来代替,读18B20的数据时,用高阻状态
3.用示波器,仔细调整时序


我试一试.还用我上次的20M的线.

出0入0汤圆

发表于 2009-5-24 18:54:50 | 显示全部楼层
不需要什么驱动,不过电路方面要复杂点,用三极管做(其实相当于驱动了),使用寄生方式,用485方式是指多个单片机板构成网络通讯,每块板接一定长度的18B20测量距离?我说的不是这样,就是一根电缆线上挂接多个18B20,当时我们测试时挂接了25个,而且当时的测量线的总长度800M应该是有了

出0入0汤圆

发表于 2009-5-24 21:43:02 | 显示全部楼层
这么长的距离,
要不就用 MCU + 485 or Ethernet
或者用模拟信号传输。

至于用18B20这类东西长距离通信,最好别用,后患无穷。

出0入0汤圆

发表于 2009-5-24 22:06:12 | 显示全部楼层
个人建议对这类远程传感用M-BUS或任何能带载的4-20mA方案

把18B20直接连这么远,我开公司的话决不会在产品中选这种设计方案

出0入0汤圆

 楼主| 发表于 2009-5-25 08:54:54 | 显示全部楼层
我用了8M的晶振,大家用8M晶振的延时子程序有没有?我目前硬件上已经没法改了,只有这个端口可以用了,所以硬件上只能换线和调时序了,我要求不高,50米左右就可以,大家有没有好的建议?谢谢

出0入0汤圆

发表于 2009-5-25 23:16:13 | 显示全部楼层
M bus 才真正带不了几个设备,也传不远

出0入0汤圆

发表于 2009-5-26 00:43:13 | 显示全部楼层
本来还担心50cm的线挂两个能不能正常工作的,看了此贴……

出0入0汤圆

发表于 2009-5-26 06:43:50 | 显示全部楼层
屏蔽线可以达到100M,双绞线可以超过500米

出0入0汤圆

发表于 2009-5-26 08:05:12 | 显示全部楼层
50米没有问题的,我做过,用2051,寄生电源,时序也不用很严格,上拉电阻2K,就是最普通的两心的电缆,0.5平方的那种。
用示波器看CPU端的波形,不是看1820端的。如果波形有振铃,试试看对地接一个2000P左右的电容。

出0入0汤圆

 楼主| 发表于 2009-5-26 09:00:25 | 显示全部楼层
还有个问题,我上拉电阻改起来是比较方便,但这个上拉是接在CPU端还是DS18B20端?
楼上能做到50米的,能否谈谈经验
还有,我用的是超五米线(优质网线)有没有要注意的?网线内有8芯,我随便抽取三芯在用,会不会有影响?

出0入0汤圆

发表于 2009-5-26 15:35:38 | 显示全部楼层
10米还近啊.

出0入0汤圆

发表于 2009-5-26 17:29:10 | 显示全部楼层
网线我没有用过啊,上拉电阻当然是加在CPU端了,加1820端就不如不要寄生电源了吧。哈哈!

出0入0汤圆

 楼主| 发表于 2009-5-30 14:18:44 | 显示全部楼层
打电话给美信的技术支持,只是叫我用2.2K上拉,从头到尾都没说时序的事,这帮人太过分了,技术也不懂,支支唔唔的说了半天来来回回就这一句,最后居然说可能我买到假货了,NND.我们用了一年多了,真是郁闷

出0入0汤圆

发表于 2009-6-1 19:02:09 | 显示全部楼层
试验成功80米的,没加上拉

实验板 (原文件名:控制板.jpg)


昨天用这个不行 (原文件名:网线.jpg)


(原文件名:网线传感器一头.jpg)


今天用这个 (原文件名:100米屏蔽线.jpg)


2头接线 (原文件名:屏蔽线2头.jpg)



似乎上升沿拉长了 (原文件名:CPU端波形.jpg)

出0入0汤圆

发表于 2009-6-1 22:52:05 | 显示全部楼层
疯了

出0入0汤圆

 楼主| 发表于 2009-6-2 10:48:17 | 显示全部楼层
gumogumo兄有没有联系方式?我再向你请教一下,我也是和你差不多的硬件,用示波器看波形:
DS18B20的存在脉冲拉得不够低(我用近距离可以通信的范围看也是如此,所以问题应该不在这里)
DS18B20返回出来的波型高电平时间太窄,类似于三角波,不知道如何解决?
我的QQ:76905129

出0入0汤圆

 楼主| 发表于 2009-6-2 11:19:59 | 显示全部楼层

(原文件名:wave1.gif)


(原文件名:wave2.gif)

出0入0汤圆

 楼主| 发表于 2009-6-3 11:08:09 | 显示全部楼层
自己顶一下

出0入0汤圆

发表于 2009-6-3 15:50:49 | 显示全部楼层
我帮你 顶一下

出0入0汤圆

发表于 2009-6-3 21:37:56 | 显示全部楼层
首先保证传输线的质量,我实验的是0.75平方的。看你给的波形的样子,高电平才3V,不知道是不是这个原因,你量下1820端电压是多少。写1,0,时间保证在40uS以上。以上是我个人看法。本站上有解决方案,你自己搜下。还有相应的程序。

0.75平方的线 (原文件名:线粗.jpg)


100米的 (原文件名:线长.jpg)


终端显示 (原文件名:显示.jpg)
下面程序是坛内一大侠给的,在此表示感谢。
编一简单程序,使某端口输出的方波,周期用下面程序中的延时,一个一个带入修改,用示波器测是否达到要求。
unsigned char init_1820(void)
{
     out_dat;               //set output
     set_dat;               //set dat
     clr_dat;               //clr dat
     delay_us(480);         //wait 480us
     set_dat;               //set dat
     in_dat;                //set input
     delay_us(60);          //wait 15~60us
     while(!ds_dat);
      out_dat;               //set output
      set_dat;               //set dat
     delay_us(140);          //wait 60~240us
}

//***********************************
//功能:写一BYTE
//说明:

void write_1820(unsigned char x)
{   
     unsigned char m;
    for(m=0;m<8;m++)
    {
       clr_dat;
       if(x&(1<<m))   
       set_dat;
       else
       clr_dat;
       delay_us(60);   
       set_dat;
    }
       set_dat;
}

//***********************************
//功能:读一BYTE
//说明:
unsigned char read_1820()
{     
    unsigned char temp,k,n;
    temp=0;
    for(n=0;n<8;n++)
       {
      clr_dat ;
      set_dat;
      in_dat;
      k=ds_dat;    //read data
      if(k)
      temp|=(1<<n);
      else
      temp&=~(1<<n);
      delay_us(40);     
      out_dat;
   }
   return (temp);
}

出0入0汤圆

 楼主| 发表于 2009-6-4 08:33:06 | 显示全部楼层
一定要这么粗的屏蔽线吗?我看了你上面发的是用双绞线,我买了50米双绞线波形就是上面这个样子,把它减到25米也是一样.
请问楼上兄弟,这个用双绞线可否实现?

出0入0汤圆

 楼主| 发表于 2009-6-4 15:37:25 | 显示全部楼层
特地去买了3*0.75的屏蔽线30米,还是不行,幅度是上去了,但波形不是很好,CPU读不到,不知道如何解决,急啊

出0入0汤圆

发表于 2009-6-5 00:54:39 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题

出0入0汤圆

发表于 2009-6-5 00:55:12 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题

出0入0汤圆

发表于 2009-6-5 00:55:45 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题

出0入0汤圆

发表于 2009-6-5 00:56:18 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题

出0入0汤圆

发表于 2009-6-5 00:56:52 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题

出0入0汤圆

发表于 2009-6-5 00:56:59 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题

出0入0汤圆

发表于 2009-6-5 00:57:29 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题

出0入0汤圆

发表于 2009-6-5 00:58:56 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题.回的贴都看看啊

出0入0汤圆

发表于 2009-6-5 00:59:29 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题.回的贴都看看啊

出0入0汤圆

发表于 2009-6-5 01:00:01 | 显示全部楼层
什么单片机?用上面的程序试试.硬件达到要求了,那就是软件问题.回的贴都看看啊

出0入0汤圆

 楼主| 发表于 2009-6-5 09:30:22 | 显示全部楼层
M128的单片机,单片机发出来的时序应该都是达到要求的,就是DS18B20返回的波形有问题,有毛刺.

出0入0汤圆

发表于 2009-6-5 22:07:49 | 显示全部楼层
晕!手机上网!请斑竹删多余的帖子

出0入0汤圆

 楼主| 发表于 2009-6-8 09:02:27 | 显示全部楼层
软件时序我全验证过了,凡是CPU发出去的都对的,就是DS18B20返回回来不对,是三角波,各位帮我想想办法,急啊

出0入0汤圆

 楼主| 发表于 2009-6-8 14:47:40 | 显示全部楼层
这么远的距离,在DS18B20端不用加电容之类器件吗?请做过的朋友给点意见

出0入0汤圆

发表于 2009-11-2 10:39:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-4 11:15:28 | 显示全部楼层
【13楼】 wisebaby 明君
哥们,你去看看粮库检温的,300个节点,500米是最基本要求

不要用美信的驱动,效果并不好,把收和发分开有两个IO处理,并且上拉电阻减小,900-1K

出0入42汤圆

发表于 2009-11-4 12:43:07 | 显示全部楼层
上面说了,要注意线路分布参数,有文章有专门讲这个,放狗找下.振荡啊,波形边缘变圆滑啊,都可能出现.

出0入0汤圆

发表于 2009-11-18 15:07:19 | 显示全部楼层
我一直都在用这个芯片,曾经做过实验,用RVVP3*0.12的屏蔽电缆,一卷,200m,没有问题,不过绕了2圈变频器的输出就会出现问题。

出0入0汤圆

发表于 2010-8-11 15:40:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-27 20:07:29 | 显示全部楼层
回复【41楼】98dian
-----------------------------------------------------------------------

期待一个更合理的解决方案

出0入0汤圆

发表于 2011-1-14 14:25:47 | 显示全部楼层
回复【24楼】zhxzhx  一丁
-----------------------------------------------------------------------

真的吗?

出0入0汤圆

发表于 2011-1-14 16:03:33 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-1-16 10:59:19 | 显示全部楼层
我买到过质量不好的,用寄生电源无论如何也不好使的

出0入0汤圆

发表于 2011-1-16 13:23:39 | 显示全部楼层
导线上面会有电阻和寄生电容,线太长会导致18B20的脉冲上升时间变长,而你的CPU对上升沿时间是有要求的,超过了就无法识别了,所以,如果太长的话,加个中继吧!用低成本的单片机,做个小板,然后用485或者别的总线发给你的上位机

出0入0汤圆

发表于 2011-4-20 03:28:29 | 显示全部楼层
回复【16楼】quest
18b20可以做到这种程度:
距离可以达到1km左右(最远的18b20离控制板的距离),而且1根电缆线上可以挂接20个以上的18b20同时温度采样,别怀疑我所说的,我做过这样的实际系统,而且在矿业级系统中有这样的板在应用
-----------------------------------------------------------------------

回复【26楼】quest
不需要什么驱动,不过电路方面要复杂点,用三极管做(其实相当于驱动了),使用寄生方式,用485方式是指多个单片机板构成网络通讯,每块板接一定长度的18b20测量距离?我说的不是这样,就是一根电缆线上挂接多个18b20,当时我们测试时挂接了25个,而且当时的测量线的总长度800m应该是有了
-----------------------------------------------------------------------

这位大侠被大家完全忽略了,大家在叽里呱啦的讨论话题,
这位高手已经给出了方案,大家怎么就不去学习他的厉害之处:用三极管做(其实相当于驱动了),使用寄生方式
在这里我请教这位quest高手了,你这个方法能传上图让我学习下吗?

出0入0汤圆

发表于 2011-4-20 10:06:04 | 显示全部楼层
这位大侠还没有出现哦,有知道他的方法的吗?

出0入0汤圆

发表于 2011-5-16 10:56:58 | 显示全部楼层
这种方法已经是商业上在用的了,矿业产品中已用,不方便透露更详细的,抱歉。其实DALAS在应用笔记中也提到了。

出0入0汤圆

发表于 2011-5-16 11:30:46 | 显示全部楼层
回复【74楼】quest
这种方法已经是商业上在用的了,矿业产品中已用,不方便透露更详细的,抱歉。其实dalas在应用笔记中也提到了。
-----------------------------------------------------------------------

呵呵,不过18b20经测试,加强干扰会出现自动复位和死机,我是不敢再用它开发产品的了

出0入0汤圆

发表于 2011-5-16 13:08:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-16 14:34:00 | 显示全部楼层
回复【75楼】GZLJZ  
-----------------------------------------------------------------------

可能是时序受到了干扰,我并没有加强干扰去测试它,不过目前还没发现问题。

出0入0汤圆

发表于 2011-6-7 07:03:03 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-6-7 10:20:06 | 显示全部楼层
还是RS485通信吧,线长了很容易被干扰

出0入0汤圆

发表于 2011-8-11 19:57:30 | 显示全部楼层
收藏。

出0入0汤圆

发表于 2011-8-11 20:37:30 | 显示全部楼层
回复【楼主位】98dian
-----------------------------------------------------------------------

听说用双胶线,会好些

出0入0汤圆

发表于 2013-1-18 23:05:31 | 显示全部楼层
quest 发表于 2009-5-23 20:34
18B20可以做到这种程度:
距离可以达到1KM左右(最远的18B20离控制板的距离),而且1根电缆线上可以挂接20个以 ...

能与你交流DS18B20的问题么,

出0入0汤圆

发表于 2014-8-23 17:05:53 | 显示全部楼层
是个问题~~~

出0入0汤圆

发表于 2014-11-2 09:47:43 | 显示全部楼层
各种秀距离啊

出0入0汤圆

发表于 2014-11-3 16:06:38 | 显示全部楼层
减小上拉电阻

出0入0汤圆

发表于 2014-11-3 16:47:10 | 显示全部楼层
还有一招:将DS18B20的收发通道分离,做成差分的,距离可以更远,且波形不易失真。

出0入0汤圆

发表于 2016-7-8 10:00:21 | 显示全部楼层
学习力啦啦啦

出50入0汤圆

发表于 2016-7-8 11:05:54 | 显示全部楼层
本帖最后由 god-father 于 2016-7-8 11:07 编辑

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

本版积分规则

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

GMT+8, 2024-7-23 10:24

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

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