首先,我要说谢谢你帮助我 所以最近我在做一个叫做Arduino的Green House的项目 然后我将要编写一个读取传感器的函数,并在function1中打印该值的函数,我刚遇到一些问题, 这是我的代码 首先,我定义了每个引脚,然后 书面职能 这是有问题的函数和主要代码
void GetState();
void loop() {
// put your main code here, to run repeatedly:
GetState();
PrintState();
delay(2000);
}
void PrintState()
{
Serial.println("TEMP ");
Serial.println(temp);
Serial.println("Rotobate Khak");
Serial.println(soilstate);
Serial.println("Humidity");
Serial.println(hum);
Serial.println("LDR === ");
Serial.println(LDRSTATE);
Serial.print("\n");
}
void GetState()
{
DHT.read11(Sensor);
int LDRSTATE=analogRead(LDR);
return LDRSTATE;
int soilstate=analogRead(soil);
soilstate= map(soilstate,0,1023,100.00,0);
return soilstate;
int temp=DHT.temperature;
return temp;
int hum=DHT.humidity;
return hum;
}
and I get 'temp' was not declared in this scope error
答案 0 :(得分:0)
将GetState()
函数放在之前 loop()
(在此位置)。或者,您也可以根据需要在loop()
之前添加一个原型:
void GetState();
void loop() {
...
答案 1 :(得分:0)
认为您是编程的新手。请尝试在其定义上方给出GetState()
和PrintState()
函数的原型。这是因为C / C ++编译器假定如果没有任何原型,则默认情况下将返回int
。
否则,您可以创建一个头文件,然后将该头文件包含在此程序中。
答案 2 :(得分:0)
声明“ int temp;”在顶部。所有其他变量相同。不要在GetState中声明变量,只需使用它们即可。 从Getstate()中删除所有“返回”行。只需设置“ temp = DHT.temperature;”设置变量,就足够了。