使用处理连接到arduino的串行端口的问题

时间:2019-02-14 19:20:24

标签: java arduino processing arduino-uno

首先,我知道这个问题已经问了很多,但是找不到解决我问题的答案。因此,当我尝试使用处理将内容写入Arduino的串行监视器时,它说该端口(在我的情况下为“ com3”)繁忙。我不知道它会忙什么,因为我已经设置了读取串行监视器的延迟。

Arduino代码:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
 //  Serial.println("started");
 //  Serial.println();
}

void loop() {
   if(Serial.available()){
      char ch = (char) Serial.read();
      Serial.println(ch);
      ch = "";
      delay(100);
}

处理代码:

import processing.serial.*;

Serial sPort;
String port;

void setup() {
  port = Serial.list()[0];
  sPort = new Serial(this, port, 9600);
  //port.write("hey, its working");
}

我知道这真的很基础,但是我在使代码显示错误的同时使代码尽可能的小

预先感谢

1 个答案:

答案 0 :(得分:1)

似乎您尝试与从Arduino串行监视器同时从运行的Processing草图访问串行端口。

值得注意的是,Arduino IDE串行监视器本身就是一个与Arduino通信的进​​程。 Arduino无法同时与串行监视器和其他程序对话。

但是您要监视Arduino必须说的内容。请改用处理。 您已经将邮件发送回去了。您要做的就是在处理应用中记录传入的串行消息。

只需将其添加到您的处理绘制循环中即可:

if (sPort.available() > 0) {
  print(sPort.readSring());
}

关闭Arduino串行监视器,运行处理草图,您应该在处理控制台中看到发送的所有内容(使用Arduino中的Serial.print)。

Serial.print和Serial.read一样,是一旦您插入USB电缆即可与计算机上任何程序进行通信的功能。串行监视器是其中之一,但还有许多其他功能,其中包括“正在处理”。