我想从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
永远是空的。我不明白为什么每次都会返回这个值。该端口可用
答案 0 :(得分:1)
在处理中,如果你输入:
if (val == null) {
val = "0";
}
它应该有用。它会继续印刷' val'不停止程序,但它会返回" 0"而不是" null"。
基本上,你必须告诉Processing即使它收到" null"值。
答案 1 :(得分:0)
发布的代码应该有效。这里要检查的是你是否使用正确的串口。尝试在设置中打印出串口的列表:
println( Serial.list() );
如果您的代码正确,您想要的端口将是第二个。如果这不正确,请在指定portName时更改数组索引的编号。
要检查的另一件事是Arduino是否实际打印了您认为打印的内容。当你打开串行监视器时,它实际上是打印"你好,世界!"一堆次?