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

Problems with connecting to the serial port of the arduino using processing

首先,我知道这个问题已经被问了很多,但我找不到任何能解决我问题的答案。因此,当我尝试使用处理将内容写入 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");
}

我知道这很基础,但我把代码做得尽可能小,同时仍然显示问题

提前致谢

看来,您尝试从 运行ning Processing sketch 访问串行端口,同时从 Arduino 串行监视器访问。

重要的是要注意,Arduino IDE 串行监视器本身就是一个进程,它与您的 Arduino 进行通信。 Arduino 不能同时与串行监视器和另一个程序通信。

但是你在监视你的 Arduino 必须说什么的过程中已经完成了一半。请改用处理。 您已经在发回消息。您所要做的就是在您的处理应用程序中记录传入的串行消息。

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

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

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

Serial.print,就像Serial.read一样,是插入USB线后与计算机上的任何程序进行通信的功能。 Serial Monitor 是其中之一,但还有很多其他的,其中包括 Processing。