if语句基于串行数据(处理)

时间:2014-09-23 08:34:19

标签: button if-statement arduino processing

我有一个Arduino将串行数据发送到Processing。喜欢" 3High"," 3Low"等...

我希望处理能够不断读取数据并使用if语句来触发事件。 EG,如果它看到字符串" 4High",它会做一些事情。

这就是我所拥有但却无法弄清楚If语句......

import processing.serial.*;

Serial myPort;  // Create object from Serial class
String val;     // Data received from the serial port

void setup() 
{
    size(600, 600);
// Open whatever port is the one you're using.
String portName = Serial.list()[1]; //change the 0 to a 1 or 2 etc. to match your port
myPort = new Serial(this, portName, 9600); 
}

void draw()
{
  if ( myPort.available() > 0) 
  {  // If data is available,
  val = myPort.readStringUntil('\n');         // read it and store it in val
  } 
println(val); //print it out in the console



  if (val == "3High"){
    fill(255,200,200);
    ellipse(60,20,100,100);
  }
  if (val == "3Low"){
    fill(200);
    ellipse(250, 250, 100, 100);    
  }


}

1 个答案:

答案 0 :(得分:0)

处理是基于Java的语言,比较两个字符串的正确方法是使用equals()函数。有关字符串的详细信息,请阅读herehere

if (val.equals("4High")) {
  println("Yes");
}

要阅读序列数据,您应该考虑使用serialEvent查找更多信息和示例here,对于不同的字符串值,只需使用单独的if语句,如示例所示。