Arduino值在处理和Arduino串行监视器中的到达方式不同
我有一个Arduino Mega2560,它从传感器(Grove响度传感器)读取模拟值,并通过USB将其发送到树莓派3b+。这些值在Arduino IDE的串行监视器中完美无延迟地到达。但是,当我在处理过程中尝试接收它们时,无论我发出多少噪声,我都会得到几乎为零的值,这里和那里都有随机的峰值 我的第一个猜测是,我的处理代码将接收到的数据弄乱了,因此我更改了Arduino草图,以发送一个递增的整数,而不是传感器值-并且这些测试值在处理过程中正确显示!接下来,我尝试在一些字符串中填充传感器值,如Arduino值在处理和Arduino串行监视器中的到达方式不同,arduino,processing,raspberry-pi3,Arduino,Processing,Raspberry Pi3,我有一个Arduino Mega2560,它从传感器(Grove响度传感器)读取模拟值,并通过USB将其发送到树莓派3b+。这些值在Arduino IDE的串行监视器中完美无延迟地到达。但是,当我在处理过程中尝试接收它们时,无论我发出多少噪声,我都会得到几乎为零的值,这里和那里都有随机的峰值 我的第一个猜测是,我的处理代码将接收到的数据弄乱了,因此我更改了Arduino草图,以发送一个递增的整数,而不是传感器值-并且这些测试值在处理过程中正确显示!接下来,我尝试在一些字符串中填充传感器值,如“M
“MICRO”(+theSensorValue+”);“
。串行监视器显示整个字符串和正确的传感器值,Processing显示整个字符串,但其中的值仍然是垃圾
这对我来说毫无意义。处理可以正确地从Arduino接收任何值,除非是传感器值
阿杜伊诺:
void setup() {
Serial.begin(9600);
}
void loop() {
int micLevel = analogRead(A0);
Serial.println(micLevel,DEC);
}
处理:
Serial port;
void setup() {
port = new Serial(this, "/dev/ttyACM0", 9600);
}
void draw() {
String s = "";
if(port.available() > 0) {
s = port.readStringUntil(10);
println(s);
}
}
在Serial.println中(micLevel,DEC)代码>为什么要将值转换为十进制?
尝试只Serial.println(micLevel)代码>或转换为字符串,如果您想发送带有它的文本Serial.println(“值为:”+String(micLevel))在Serial.println(micLevel,DEC)中编码>代码>为什么要将值转换为十进制?
尝试只Serial.println(micLevel)代码>或转换为字符串,如果您想发送带有它的文本Serial.println(“值为:”+String(micLevel))代码>Serial.println(micLevel,DEC)代码>和Serial.println(micLevel)代码>是一样的。Serial.println(micLevel,DEC)代码>和Serial.println(micLevel)代码>是一样的。