首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Adafruit的树莓派教程:DS18B20温度传感器(2)

Adafruit的树莓派教程:DS18B20温度传感器(2)

硬件部分下图展示了基本的DS18B20接法。
DS18B20单总线(1-wire)传感器可以以非并行连接接入,这一点几乎与其他市售的传感器都不同!所有传感器共享相同的针脚,所以你只需要一个4.7k的电阻就够了。
电阻被用于拉高数据输出线(data-line),并且保持数据输出的稳定。
要注意DS18B20的方向,弧形的一边在图中的左侧。如果你接反了,有可能会烧坏传感器。
尽管DS18B20+和TMP36都是温度传感器,但是它们完全不同,因此TMP36不适用于这篇教程!

如果你是用的是防水版的DS18B20,那我们需要连接3个针脚,红,黑,黄,身下一个引脚不用连接。
如果你是用的是高温版本的DS18B20,把橙色引脚接入3.3V,白色接地,蓝色与数据针pin 4相连。
你同样需要一个4.7k~10k的电阻接在3.3v和数据针之间。


DS18B20尽管DS18B20看上去就像一个普通的传感器,但它内部其实大有文章。
它的芯片包含了一个特别的单总线串行接口,逻辑控制部分以及一个温度传感器。
它的输出针输出数字消息以便Raspbian/Occidentalis能够在某一针上阅读。你可以在运行这个项目之前自己通过命令行或者SSH先试验一下。
在终端窗口里输入下面的命令。当你执行到”devices”目录下时,目录名称开头的”28-”可能与你的不一样,所以cd到你看到的目录下吧。
1
2
3
4
5
6
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ls
cd 28-xxxx (change this to match what serial number pops up)
cat w1_slave




这个接口有点不太稳定,但如果幸运的话系统会告诉我们有一个可供读取的温度。它类似于一个文件,所以我们要做的就是读这个文件。
在返回消息的第一行末尾都会有一个YES或NO,如果是yes,那第二行紧接着就是温度,以1/1000摄氏度为单位,所以在上面的例子中,实际读取到的温度是20.687和26.125摄氏度。
如果你接入了多个传感器,那么你将看到有多个28-xxx的文件,已经插入一个传感器,然后检查一下新生成的文件名,然后为这个传感器做上标记。这样才能区分出哪个传感器对应哪个文件。
返回列表