Arduino 中国 | Flamingo EDA

CAT | 电路板

DS18B20是DALLAS公司推出的单线数字温度传感器,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内的精度为±0.5°C,由于其优越的性价比,因此在实际项目中被大量采用。同基于热敏电阻的温度传感器不同,使用数字温度传感器避免了复杂的换算,可以直接从传感中读出温度的数值。

由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,这对硬件上并不支持单总线协议的单片机来讲可是一个不小的麻烦,因为只能采用软件的方法来模拟单总线的协议时序,从而完成对DS18B20芯片的访问。听起来有点复杂,好在Arduino上已经有了相应的实现,并封装好了相应的库来让我们直接读出DS18B20的数据。

我们提供了DS18B20的电子积木模块,以方便在Arduino上的使用:

连接上依然使用的是通用传感器连接线和Arduino专用传感器扩展板V4,此处我们将数字温度传感器连接到了数字I/O第12号引脚上了:

硬件准备好之后,首先下载相应的软件包,并将其解压缩到Arduino安装目录下的hardware\libraries目录下:

重新启动Arduino之后,就可以在代码中使用这一为DS18B20量身打造的库了,下面是我测试时所使用的代码:

#include <DallasTemperature.h>

DallasTemperature tempSensor;

void setup(void) {
  Serial.begin(9600);
  tempSensor.begin(12); // DS18B20接在数字I/O第12号引脚上
}

void loop(void) {
    // 检查温度传感器是否正常工作
    switch(tempSensor.isValid())
    {
        case 1:
            Serial.println("Invalid CRC");
            tempSensor.reset(); // 重置温度传感器
            return;
        case 2:
            Serial.println("Not a valid device");
            tempSensor.reset(); // 重置温度传感器
            return;
    }

  // 从DS18B20读取温度值
  Serial.print(tempSensor.getTemperature());
  Serial.print("C");
  Serial.println();
}

在将代码下载到Arduino中并运行起来之后,打开Arduino的串口监视工具,我们就可以看到从数字温度传感器DS18B20中读出来的温度值了:

Hide

Apr/08

21

Wiring元件清单

Wiring元件清单

No tags Hide

Mar/08

7

Arduino Diecimila

类型 标记 数量 规格
USB转串口芯片 IC3 1 FT232BM
电阻 R1,R2 2 10K, 1/4W
电阻 R3,R4 2 27, 1/4W
电阻 R5 1 1.5K, 1/4W
电阻 R6 1 470, 1/4W
电阻 R7,R9,R10,R11,R12 5 1K, 1/4W
电阻 R8 1 220, 1/4W
LED PWR 1 绿, 3mm
LED L 1 红, 3mm
LED TX,RX 2 黄, 3mm
电容 C2,C3 2 22pF,独石
电容 C1,C4,C5,C8,C9,C10,C11, 7 100nF, 安规
晶振 OSC 1 6MHz oscillator, 3-pin
电容 C6,C7 2 100uF,电解
电源芯片 power 1 78M05
稳压二极 D1 1 1N4004
石英晶振 Q1 1 16MHz
按钮 S1 1

No tags Hide

Jan/08

30

温度传感器

类型 标记 数量 规格
电阻 R1 1 2K, 1/4W
温敏电阻 R2 1  

No tags Hide

Jan/08

23

Arduino专用XBee扩展板

类型 标记 数量 规格
电阻 R1 1 10K, 1/4W
电阻 R2 1 15K, 1/4W
电阻 R3, R4 2 1K, 1/4W
三极管 T1 1 BC547
电容 C1 1 100nF, 独石
电容 C2, C3 2 10uF, 电解
电源芯片 IC1 1 TLV2217-33

No tags Hide

Older posts >>

Find it!

Theme Design by devolux.org