arduino中的函数和打印函数值问题

时间:2019-01-17 05:18:15

标签: c++ function arduino

首先,我要说谢谢你帮助我 所以最近我在做一个叫做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    

3 个答案:

答案 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;”设置变量,就足够了。