If statement arduino如何停止返回';其他';价值

If statement arduino如何停止返回';其他';价值,if-statement,arduino,serial-port,communication,If Statement,Arduino,Serial Port,Communication,我在arduino中使用“if else”与串行通信。我使用串行通信在“if”和“else”部分发送数据。但是我不能停止在串行通信部分发送数据。我如何提供它 比如说 void setup() { Serial.begin(9600); pinMode(2, INPUT); } void loop() { if (Serial.avaliable() > 0) { if (digitalRead(2) == HIGH) {

我在arduino中使用“if else”与串行通信。我使用串行通信在“if”和“else”部分发送数据。但是我不能停止在串行通信部分发送数据。我如何提供它

比如说

void setup() {
   Serial.begin(9600);
   pinMode(2, INPUT);
}
 void loop() {
   if (Serial.avaliable() > 0) {

        if (digitalRead(2) == HIGH)
        {
          Serial.print("Yes");
        }
        else {
          Serial.print("No");
        }
      }
  }

当我将数字5指定给数字引脚2时,“是”会连续通过串行端口。我知道它在“循环”部分。但是我该怎么阻止它呢?因此,当我给出相关引脚5v时,我能得到一个响应吗?(很抱歉英语不好)

仅当状态正在更新时才将状态保存到并打印。

这是因为循环函数被称为无限时间。 您有两个选择:

1.将代码从循环移动到设置,并让循环函数为空

    void setup() {
       Serial.begin(9600);
       pinMode(2, INPUT);
       if (Serial.avaliable() > 0) {

        if (digitalRead(2) == HIGH)
        {
          Serial.print("Yes");
        }
        else {
          Serial.print("No");
        }
      }
    }
    void loop() {

    }
2.添加一些如下的控制逻辑

boolean alreadySent = false;
void setup() {
   Serial.begin(9600);
   pinMode(2, INPUT);
}
 void loop() {
   if (Serial.avaliable() > 0) {
    if(alreadySent == false) {

        if (digitalRead(2) == HIGH)
        {
          Serial.print("Yes");
        }
        else {
          Serial.print("No");
        }

        alreadySent = true;
        }
      }
     }