极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20161|回复: 11

为什么DS18b20总是显示不了温度???

[复制链接]
发表于 2015-6-2 22:24:19 | 显示全部楼层 |阅读模式
下面是程序哦!!
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 9   //使用Digital 12端口,其它端口也可以
OneWire  oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup(void)
{
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
  sensors.begin();
}
void loop(void)
{
  //Serial.requestTemper atures(); // 发送命令获取温度
  Serial.print("Requesting temperatures..."); //读取温度值并上传显示
  sensors.requestTemperatures();
  Serial.println("DONE");
  Serial.print("Temperature for the device 1 (index 0) is: ");
  Serial.println(sensors.getTempCByIndex(0));
  delay(1500);//延时很有必要,时间可以自己选择
}



同学说可能是不兼容,但是用的是老师给的东西,不应该有问题的,求大神帮忙!!!




原则上应该可以显示的,但是串口显示的却是






!

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-6-2 23:33:10 | 显示全部楼层
4.7K 上拉.    ONE_WIRE_BUS 9  你这是9脚,不是 12脚
回复 支持 反对

使用道具 举报

发表于 2015-6-3 08:29:14 | 显示全部楼层
单片机调试除了看代码还要看硬件连接以及硬件完好

最简单的就是 程序用例程,并按照注释连接硬件 测试通过后才用自己的代码

另外,可以采用替换法 把自己的原件放别人调通的单片机上调试 就知道是否硬件损坏 以及连线错误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-3 08:57:49 | 显示全部楼层
帕米 发表于 2015-6-2 23:33
4.7K 上拉.    ONE_WIRE_BUS 9  你这是9脚,不是 12脚

4.7K是接在2脚吗?BUS 9 后面的是备注应该没有影响吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-3 09:01:04 | 显示全部楼层
darkorigin 发表于 2015-6-3 08:29
单片机调试除了看代码还要看硬件连接以及硬件完好

最简单的就是 程序用例程,并按照注释连接硬件 测试通 ...

是Arduino开发板,不是单片机做,本来一条程序可以解决的事,但是就是没有反应
回复 支持 反对

使用道具 举报

发表于 2015-6-3 10:17:29 | 显示全部楼层
看了下,程序比较简单,没什么问题,一般这种情况,你需要把硬件连接图也发了份上来。我觉得最有可能的就是DS18B20那边连接的问题,电阻什么的接错了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-3 18:44:16 | 显示全部楼层
liuxue4503 发表于 2015-6-3 10:17
看了下,程序比较简单,没什么问题,一般这种情况,你需要把硬件连接图也发了份上来。我觉得最有可能的就是 ...

我用的是单总线,要接电阻吗?1,3脚都要接GND吗?
回复 支持 反对

使用道具 举报

发表于 2015-6-3 21:04:53 | 显示全部楼层
风暴若干个 发表于 2015-6-3 18:44
我用的是单总线,要接电阻吗?1,3脚都要接GND吗?

3个脚都要接的,1脚地,2脚I/O口,3脚接个5V,2脚和3脚之间接电阻
回复 支持 反对

使用道具 举报

发表于 2015-6-3 21:24:47 | 显示全部楼层
风暴若干个 发表于 2015-6-3 09:01
是Arduino开发板,不是单片机做,本来一条程序可以解决的事,但是就是没有反应

是Arduino开发板 本质就是一AVR单片机

单片机或者开发板 不能只看代码的 连线以及硬件的好坏都要测试
不同于PC高级语言编程不用考虑硬件 单片机是基于硬件的 哪里出问题都不行
18b20的测试代码可以看精华区 确认下连线以及代码都无误之后运行下看看 这样就知道硬件是否有故障
如果硬件没故障则是你后来的代码有问题 。
排除故障一般都是从最简单和最容易出错的方面进行排查
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-3 21:29:23 | 显示全部楼层
darkorigin 发表于 2015-6-3 21:24
是Arduino开发板 本质就是一AVR单片机

单片机或者开发板 不能只看代码的 连线以及硬件的好坏都要测试  ...

哦哦,知道了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-3 21:30:06 | 显示全部楼层
已经解决了,谢谢
回复 支持 反对

使用道具 举报

发表于 2015-6-16 14:41:33 | 显示全部楼层
用你的程序,那是什么问题
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 19:23 , Processed in 0.040541 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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