我的处理草图出了点小问题。我正在尝试通过串行连接从我的Arduino中获取一个值。在这种情况下,它是一个超声波传感器,它应该返回距离。在Arduino Software Serial-Monitor中,我有介于2和300之间的正确值。但在将其发送到Processing之后,我只得到了ASCII代码,我想将其转换为字符串。但是转换后的字符串还包含换行符和回车符-我不需要这些。
我想,我可以通过使用trim删除这个换行符和回车符。但是现在我只能在trim(distance)中得到一个NullPointerException。我不知道现在该怎么办。
我在超声波部分的Arduino素描:
//Ultraschall
int duration, distance
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in mm)
distance = duration / 5.8;
Serial.println(distance);
delay(50);我在超声波部分的处理草图:
以上设置:
import processing.serial.*;
Serial port;在绘图中:
String distance = port.readString();
String distanceTrim = trim(distance);
println (distanceTrim);发布于 2016-01-19 02:15:18
您的distance变量是null。尝试打印出它的值以检查以下内容:
String distance = port.readString();
println(distance);
String distanceTrim = trim(distance);
println (distanceTrim);您对port.readString()的调用将返回null。我不知道这到底是为什么,但是您的NullPointerException的源代码来自将null传递给trim()函数。
https://stackoverflow.com/questions/34853415
复制相似问题