2015-01-20 178 views
0

我想從Arduino讀取數據。我的Arduino的鱈魚是簡單將數據從Arduino中讀取到處理中返回null結果

void setup() 
{ 
//initialize serial communications at a 9600 baud rate 
Serial.begin(9600); 
} 

void loop() 
{ 
//send 'Hello, world!' over the serial port 
Serial.println("Hello, world!"); 
//wait 100 milliseconds so we don't drive ourselves crazy 
delay(100); 
} 

在處理我有以下鱈

import processing.serial.*; 

Serial myPort; 
String val; 


void setup() { 

    String portName = Serial.list()[1]; 
    myPort = new Serial(this, portName, 9600); 

} 

void draw() { 
    if (myPort.available() > 0) 
    { // If data is available, 
    val = myPort.readStringUntil('\n');   
    } 
println(val); //pr 

} 

VAL

始終是零。我不明白爲什麼每次都返回這個價值。該端口可用

回答

0

該代碼發佈應該工作。這裏要檢查的是你是否使用正確的串口。嘗試在安裝打印出串行端口的列表:

println(Serial.list()); 

如果你的代碼是正確的,你想要的端口將成爲第二個。如果這不正確,請在指定portName時更改數組索引的編號。

另一件需要檢查的是Arduino是否實際上打印了您認爲正在打印的內容。當你打開串行監視器時,它是否正在打印「你好,世界!」一堆?

1

在處理,如果你把在:

if (val == null) { 
val = "0"; 
} 

它應該工作。它將繼續打印'val'而不停止程序,但它會返回值「0」而不是「null」。

基本上,即使接收到「null」值,您也必須告訴Processing運行。