存储Arduino数据从串行连接使用处理读入
问题描述:
我想通过使用处理通过(伪)串行连接从Arduino读取100个传感器数据条目。我使用的处理草图如下:存储Arduino数据从串行连接使用处理读入
// import the serial library for Processing
import processing.serial.*;
// define a new port object
Serial port;
PrintWriter outputFile;
int i = 0;
// setup a port
void setup()
{
outputFile = createWriter("data.txt");
port = new Serial(this, "COM3", 9600);
port.bufferUntil('n');
}
void draw()
{
delay(100); //must be the same delay as used in the arduino sketch
// create a string to store the read-in values
String serialBuffer = port.readString();
if(serialBuffer != null)
{
i++;
outputFile.println(serialBuffer);
outputFile.flush();
}
if(i==99)
{
outputFile.close();
exit();
}
}
不幸的是,我得到存储在平时我的data.txt文件小于100项,有的条目(约3-5)都出现在其中的换行符。我究竟做错了什么? Arduino IDE的串口监视器没有打开!
答
在你setup()
功能,我相信你输入了错误的换行字符:
port.bufferUntil('n');
你的意思是'\n'
?现在你正在缓冲,直到一个'n'出现,这似乎并不明显。看起来,许多教程都将它传递给int,其值为10
,这是ASCII中的换行符。