我需要从arduino板获取串行信号到处理草图 . 我正在以字符串格式发送值,如“R12”“S40”“T80”,当我从处理中捕获这些字符串时,它将垂直打印(每个字符的新行)任何人都可以告诉我如何将其作为字符串获取,因为它是我们发送 . 我需要一个可以放入处理内部的serialEvent方法的代码 .
Arduino Code :
void loop() {
int r = random(10,100);
int s = random(10,100);
int t = random(10,100);
Serial.print("R"+String(r));
Serial.print("S"+String(s));
Serial.print("T"+String(t));
delay(1000);
}
Processing Code :
String data = "";
int R,S,T;
void serialEvent(Serial p) {
while(p.available()>0){
data = p.readString();
}
println(data);
}
我需要将最后收到的R S T值分别输入到R S T变量中 .
谢谢!
1 回答
如前所述,最好让所有代码找到问题所在 . 我想你没有在处理设置中添加函数“bufferUntil()”,所以每次串口收到一个值时,它只显示它 . 我可以为你提出一个解决方案,它不是唯一的解决方案,但似乎有效 .
在您的Arduino代码上,您应该使用Serial.println()来分隔您的消息,而不是Serial.print() .
所以你会发送消息为
在处理中,您必须使用函数“bufferUntil(lf)” . 它将保存来自串口的所有消息,直到收到“/ n” . 之后,您应该使用另一个函数将标识符与值相关联 .