我的Processing sketch有点问题。我试图通过串行连接从我的Arduino获取一个值。在这种情况下,它是一个超声波传感器,应该返回距离。在Arduino软件串行监视器中,我有2到300之间的正确值。但是在将它发送到Processing之后,我只获得了ASCII代码,我想将其转换为String。但是转换后的String然后还包含换行和回车 - 我不想要这些。
我想,我可以使用修剪来擦除此换行并返回托架。但现在我只在NullPointerException
中获得trim(distance)
。我现在不知道该怎么做。
超声波部分中的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);
答案 0 :(得分:0)
您的distance
变量为null
。尝试打印出它的值来检查:
String distance = port.readString();
println(distance);
String distanceTrim = trim(distance);
println (distanceTrim);
您对port.readString()
的来电正在返回null
。我不确切知道为什么会这样,但NullPointerException
的来源是将null
传递给trim()
函数。