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

Problem With Functions And Printing Function Values in arduino

本文关键字:函数 问题 打印 Arduino      更新时间:2023-10-16

首先,我要对帮助我的人说声谢谢所以最近我正在做一个项目,叫做Arduino的温室。然后我正要编写一个读取传感器的函数,以及一个在函数 1 中打印该值的函数,我只是想出了一些问题,这是我的代码首先,我只是定义了每个引脚,然后书面函数这是有问题的函数和主代码

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    

在顶部声明"int temp;"。所有其他变量也是如此。不要在 GetState 中声明变量,只需使用它们即可。从 Getstate() 中删除所有"返回"行。只需设置"temp=DHT.temperature;"即可设置变量就足够了。

GetState() 函数放在 loop() 之前(调用它的位置)。 或者,如果您愿意,可以在loop()之前添加原型:

void GetState();
void loop() {
...


认为你对编程很陌生。请尝试提供高于其定义的GetState()PrintState()函数的原型。这是因为 C/C++ 编译器假定如果没有任何原型,则默认返回int
否则,您可以创建一个头文件,然后将该头文件包含在此程序中。