arduino中使用温度传感器18B20
18B20
·
18B20作为用途最广精度不错的热传感器常常被用在各种应用和实验中,当然,也因为其价格低廉,否则,想用也不是很方便,至少做实验的时候成本不能太高。关于热传感器的介绍可以参看《Arduino传感器专题》
传感器18B20的中间管脚为信号,一定要在信号与高电平之间接一个1K以上的电阻(这里给的电阻是4.7K)。
实物连接图
程序结构如下:
代码如下:
#include "OneWire.h"
#include "DallasTemperature.h"
OneWire onewire;
DallasTemperature ds18b20(&onewire);
void setup(){
Serial.begin(115200);
onewire.select(4);
ds18b20.begin();
}
void loop(){
ds18b20.requestTemperatures();
Serial.println(String("Temp") + String("=") + String(ds18b20.getTempCByIndex(0)));
delay(1*1000);
}
通过上述代码我们知道,主要参与驱动的是DallasTemperature.h,其中OneWire.h只是为生成oneWire对象,为DallasTemperature的初始化提供一个OneWire类型的参数而已。
DallasTemperature在后续使用中必须通过begin方法和requestTenperatures方法开启获取温度参数模式。最终通过getTemp?CByIndex来获取指定设备序号的温度值。
#include "OneWire.h"
#include "DallasTemperature.h"
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup(void)
{
Serial.begin(9600);
Serial.println("Begin get temp!");
Serial.println();
sensors.begin();
delay(5000);
}
void loop()
{
sensors.requestTemperatures();
Serial.print("Temperature : ");
Serial.println(sensors.getTempCByIndex(0));
delay(1000);
}
用手指触摸改变温度,效果如下:
别看这个电路简单,程序简单,可应用的场景是比较丰富的,许多常见的温控电路都可以利用它来完成,比如米酒发酵的温度控制、鸡鸭禽类的孵化器温控都可以用上面的控制来实现。
更多推荐
所有评论(0)