DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。
前几天有位朋友让我帮忙写个DS18B20的Arduino驱动程序,忙了一个小时,终于成功了。
对比DS18B20与DHT11,他们的相同点是:都是数字信号,所需IO口都是1,都是温度传感器。但是DS18B20不具备DHT11所具有的湿度测量功能,DS18B20的优点是精度高(比DHT11强的没影),体积小。
好了,话不多说,上代码。
int DSPIN = D4;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
double temp = TempRead();
temp *= 0.0625;//转换精度为0.0625/LSB
Serial.println(temp);
delay(500);
}
boolean DS18B20_Init()
{
pinMode(DSPIN, OUTPUT);
digitalWrite(DSPIN, HIGH);
delayMicroseconds(5);
digitalWrite(DSPIN, LOW);
delayMicroseconds(750);//480-960
digitalWrite(DSPIN, HIGH);
pinMo