arduino编译DS18B20程序时,提示 no matching function for call to‘Dallas Temperature::begin(int&)’

#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();
}
库文件下载地址:http://www.arduino.cn/thread-1345-1-1.html

用两个头文件试试
#include <OneWire.h>
#include <DallasTemperature.h>
我的已经通过了追问

加了#include <OneWire.h>
还是不行  提示“'oneWire‘does not name a type”

 

追答

我把整理好的Arduino DS18B20测试程序给你,
/*Arduino_DS18B20测试程序
**百度__慢生活ican__20140506整理
*/
#include
#include
#define ONE_WIRE_BUS 12 //使用Digital 12端口,其它端口也可以
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature tempSensor(&oneWire);
void setup(void)
{
Serial.begin(9600);
tempSensor.begin();
}
void loop(void)
{
tempSensor.requestTemperatures(); // 发送命令获取温度
Serial.print(tempSensor.getTempCByIndex(0)); //读取温度值并上传显示
Serial.print("C");
Serial.println();
delay(1500);//延时很有必要,时间可以自己选择
}

追问

小弟感激涕零,最终重新下了库文件,运行了你给的程序,编译通过。
太感谢啦,真想当面感谢,能否给小弟留个联系方式,以后有不懂的再向您请教(我的邮箱[email protected])!
这个程序好想只能读DS18B20零上的温度,零下的读不了是吗?

追答

不用客气,应该互相帮助的,零下温度我没有试过,试试看应该可以。
我的邮箱
[email protected]

追问

在冰箱里试了,可以测量零下的温度。

追答

好呀

温馨提示:答案为网友推荐,仅供参考
相似回答