Arduino端口陷入困境

时间:2014-04-17 05:35:21

标签: java serial-port arduino

我正在尝试创建一个可以打开和关闭其中一个Arduinos端口的模式。然而,在大约2次开/关之后它会被卡住并且不会关闭,除非我拔掉Arduino。我尝试了很多解决方案,例如在向端口发送电源后尝试将int设置为0。这是我的服务器端和arduino端的代码:

Arduino代码:

int Relay = 13;
//The pin that the relay is attached to
//int time;
//Creates temp variable

void setup() {
    Serial.begin(9600);
    pinMode(Relay, OUTPUT);
}

void loop() {
    while(true) {
        //Check if data has been sent from the computer:
        if (Serial.available()) {
              int time;
          //Assign serial value to temp
          time = Serial.parseInt();
          //Output value to relay

              delay(1000);
              digitalWrite(Relay, HIGH);
          delay(time);
          digitalWrite(Relay, LOW);
        }
    }
}

服务器代码:

for(int i = 0; i < 11; i++) {
    out.write("10000".getBytes("UTF-8"));
        out.flush();
        Thread.sleep(1500);
}

如果有人发现任何错误或看到解决方案,请告诉我。

谢谢:)

1 个答案:

答案 0 :(得分:0)

我刚刚意识到我做错了什么。在这段代码中:

out.write("10000".getBytes("UTF-8"));
out.flush();
Thread.sleep(1500);

我期待它等待10秒,直到它发出另一个信号,但它发送了out.write("10000".getBytes("UTF-8")); 每1.5秒,造成一些问题。为了解决这个问题,我改变了

Thread.sleep(1500);

Thread.sleep(11500);

谢谢:)