Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement Arduino:错误:在';如果';(使用ping传感器)_If Statement_Arduino_Ping - Fatal编程技术网

If statement Arduino:错误:在';如果';(使用ping传感器)

If statement Arduino:错误:在';如果';(使用ping传感器),if-statement,arduino,ping,If Statement,Arduino,Ping,我修改的脚本有问题。我得到了一个“ Ping_Library_示例:9:错误:在“if”之前应为非限定id 我肯定我有一些小的语法错误,有什么想法吗? 顺便说一句,orrigional脚本使用“void loop”而不是“if”。使用when时也可能发生同样的错误。有什么想法吗 #include <Ping.h> Ping ping = Ping(13,74,29); void setup(){ Serial.begin(115200); } if(digitalRead

我修改的脚本有问题。我得到了一个“ Ping_Library_示例:9:错误:在“if”之前应为非限定id
我肯定我有一些小的语法错误,有什么想法吗? 顺便说一句,orrigional脚本使用“void loop”而不是“if”。使用when时也可能发生同样的错误。有什么想法吗

#include <Ping.h>

Ping ping = Ping(13,74,29);

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

if(digitalRead == HIGH){
  ping.fire();
  Serial.print("Microseconds: ");
  Serial.print(ping.microseconds());
  Serial.print(" | Inches ");
  Serial.print(ping.inches());
  Serial.print(" | Centimeters: ");
  Serial.print(ping.centimeters());
  Serial.println();
}
#包括
平平=平(13,74,29);
无效设置(){
序列号开始(115200);
}
如果(digitalRead==高){
ping.fire();
串行打印(“微秒:”);
串行打印(ping.microseconds());
连续打印(“英寸”);
串行打印(ping.inches());
连续打印(“|厘米:”);
串行打印(ping.cm());
Serial.println();
}

如果表达式超出函数范围,则无法编写。我认为应该是这样的:

void loop() {
   if(digitalRead(5) == HIGH){ //checks pin 5
     ping.fire();
     Serial.print("Microseconds: ");
     Serial.print(ping.microseconds());
     Serial.print(" | Inches ");
     Serial.print(ping.inches());
     Serial.print(" | Centimeters: ");
     Serial.print(ping.centimeters());
     Serial.println();
   }
}
void loop() {
  if(digitalRead(5) == HIGH) {
    ping.fire();
    // insert other code here
  }
}
此代码循环,检查digitalRead是否高,如果高,则执行ping。
希望有帮助:)

如果表达式超出函数范围,则无法编写。我认为应该是这样的:

void loop() {
   if(digitalRead(5) == HIGH){ //checks pin 5
     ping.fire();
     Serial.print("Microseconds: ");
     Serial.print(ping.microseconds());
     Serial.print(" | Inches ");
     Serial.print(ping.inches());
     Serial.print(" | Centimeters: ");
     Serial.print(ping.centimeters());
     Serial.println();
   }
}
void loop() {
  if(digitalRead(5) == HIGH) {
    ping.fire();
    // insert other code here
  }
}
此代码循环,检查digitalRead是否高,如果高,则执行ping。
希望有帮助:)

Arduino程序需要一个
循环()
函数才能运行;如果条件不起作用,只需将函数替换为
。尝试将
if
块放入
loop()函数中

另外,
digitalRead
是一个函数,您需要告诉它从哪个pin读取。e、 例如,
digitalRead(5)
从引脚5读取

试着这样做:

void loop() {
   if(digitalRead(5) == HIGH){ //checks pin 5
     ping.fire();
     Serial.print("Microseconds: ");
     Serial.print(ping.microseconds());
     Serial.print(" | Inches ");
     Serial.print(ping.inches());
     Serial.print(" | Centimeters: ");
     Serial.print(ping.centimeters());
     Serial.println();
   }
}
void loop() {
  if(digitalRead(5) == HIGH) {
    ping.fire();
    // insert other code here
  }
}

(将5更改为您要读取的管脚,或将该值指定给变量并传入)

Arduino程序需要运行
loop()
函数;如果
条件不起作用,只需将函数替换为
。尝试将
if
块放入
loop()函数中

另外,
digitalRead
是一个函数,您需要告诉它从哪个pin读取。e、 例如,
digitalRead(5)
从引脚5读取

试着这样做:

void loop() {
   if(digitalRead(5) == HIGH){ //checks pin 5
     ping.fire();
     Serial.print("Microseconds: ");
     Serial.print(ping.microseconds());
     Serial.print(" | Inches ");
     Serial.print(ping.inches());
     Serial.print(" | Centimeters: ");
     Serial.print(ping.centimeters());
     Serial.println();
   }
}
void loop() {
  if(digitalRead(5) == HIGH) {
    ping.fire();
    // insert other code here
  }
}

(将5更改为您想要读取的任何pin,或将该值指定给变量并传入)

如果您可以想象的话,我收到了由于注释中的反斜杠输入错误而导致的相同错误。令人不快的是:

int my_recvDone() {
    //=======================\
    if ( !g_patternReceived ) {

我假设这是由于解析器中的某种行连续性特性造成的,并且可能会在其他代码区域中表现为不同的编译器错误…

如果您可以想象的话,我收到了由于注释中的反斜杠输入错误而导致的相同错误。令人不快的是:

int my_recvDone() {
    //=======================\
    if ( !g_patternReceived ) {

我假设这是由于解析器中的某种行连续性功能造成的,并且可能会在其他代码区域中表现为不同的编译器错误…

有关可能对偶然发现此答案的人有用的其他信息


我只是有同样的问题,但我的问题是,有一个}意外地从结尾漏掉了。这导致if语句位于任何函数之外。简单的打字错误。

对于偶然发现此答案的人,可能会有帮助的其他信息

我只是有同样的问题,但我的问题是,有一个}意外地从结尾漏掉了。这导致if语句位于任何函数之外。简单的打字错误