返回从Arduino读取数据到处理的null结果

时间:2015-01-20 21:10:09

标签: java arduino processing arduino-ide

我想从Arduino读取数据。我的arduino鳕鱼很简单

void setup() 
{
//initialize serial communications at a 9600 baud rate
Serial.begin(9600);
}

void loop()
{
//send 'Hello, world!' over the serial port
Serial.println("Hello, world!");
//wait 100 milliseconds so we don't drive ourselves crazy
delay(100);
}

在处理中我有以下鳕鱼

import processing.serial.*;

Serial  myPort;
String val;


void setup()  { 

  String portName = Serial.list()[1];
  myPort = new Serial(this, portName, 9600);

} 

void draw()  { 
  if ( myPort.available() > 0) 
  {  // If data is available,
  val = myPort.readStringUntil('\n');        
  } 
println(val); //pr

} 

但是

  

VAL

永远是空的。我不明白为什么每次都会返回这个值。该端口可用

2 个答案:

答案 0 :(得分:1)

在处理中,如果你输入:

if (val == null) {
val = "0";
}

它应该有用。它会继续印刷' val'不停止程序,但它会返回" 0"而不是" null"。

基本上,你必须告诉Processing即使它收到" null"值。

答案 1 :(得分:0)

发布的代码应该有效。这里要检查的是你是否使用正确的串口。尝试在设置中打印出串口的列表:

println( Serial.list() );

如果您的代码正确,您想要的端口将是第二个。如果这不正确,请在指定portName时更改数组索引的编号。

要检查的另一件事是Arduino是否实际打印了您认为打印的内容。当你打开串行监视器时,它实际上是打印"你好,世界!"一堆次?