2014-02-27 81 views
0

我目前正在寫這個簡單的代碼來檢查溫度傳感器DS18B20溫度傳感器和Arduino的

#include <One Wire . h> 

int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2 

//Temperature chip i/o 
OneWire ds(DS18S20_Pin); // on digital pin 2 

void setup(void) { 
Serial.begin(9600); 
} 

void loop(void) 
{ 
float temperature = getTemp(); 
Serial.println(temperature); 

delay(100); //just here to slow down the output so it is easier to read 

} 

我m到處「sketch_feb27a:14:錯誤:‘getTemp’在此範圍內未聲明」
能有人告訴我爲什麼?

+0

是getTemp()的一個庫函數?你有收錄嗎? –

回答

1

要麼您沒有將OneWire庫提取到正確的位置,要麼在#include行中出錯。 包括它沒有空格

*include<OneWire.h> 

如果getTemp()不是圖書館OneWire的一部分,那麼很明顯,你必須使自己的getTemp()函數

0

這裏您試圖調用getTemp();。但是下面的函數沒有在草圖本身下定義..如果你添加了與getTemp()相關的活動,它必須工作。

float temperature = getTemp(); 
0

您可以使用DallasTemperature庫。

使用方法如下:

#include <OneWire.h> 
#include <DallasTemperature.h> 

// Data wire is plugged into port 2 on the Arduino 
#define ONE_WIRE_BUS 2 

OneWire dsOneWire(DS_ONE_WIRE_BUS); 

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature dsSensorControler(&dsOneWire); 

dsSensorControler.begin(); 

dsSensorControler.requestTemperatures(); 

float temp = dsSensorControler.getTempCByIndex(0); 

代碼從DallasTemperature library樣品。