これは簡単です。Arduinoシリアル処理 - 文字列をintに変換できません
Arduinoがセンサー文字列をDEC文字列として送信しています。そのコードは動作しています...距離センサーの読み取り値の文字列を送ります。 「数字」の文字列はセンサを識別し、距離を表す。 20、217、3100、410
これは、Arduinoのから送信する方法である:
void printDistance(int id, int dist) {
Serial.print(id);//id's the sensor
if (dist >=150 || dist <= 0) {
int zero = 0;
Serial.print(zero, DEC);
} else {
Serial.print(dist, DEC);
}
Serial.println("");//line break
}//end print distance
処理で
void draw() {
if (myPort.available() > 0) {
myString = myPort.readStringUntil(lf);
int val = Integer.parseInt(myString);
//int val = Integer.valueOf(myString);
if (val >= 0) {
//center sensor
if ((val >= 30 && val <= 39) || (val >= 310 && val <= 399) || (val >= 3100 && val <= 3150)) {
//playBear();
println(val);
fill(13, 96, 115); //blue
rect(150, 150, 100, 100);
}
//right sensor
else if (((val >= 20) && (val <=29)) || ((val >= 210) && (val <= 299)) || ((val >= 2100) && (val <= 2150))) {
//playLaugh();
println(val);
fill(204, 102, 0); //orange
rect(50, 50, 100, 100);
}
...more else if's
処理が30、「入力文字列についてはNumberFormatException "を"
をスローします質問:Arduinoシリアルから実際に整数に変換された文字列を取得するにはどうしたらよいですか?書かれた条件文?
正しい文はコードにありますが、コメントアウトされています。 Integer.parseInt()を使用してください – mhopeng
ありがとうございますが、私は両方のステートメントを試してみましたが、両方とも同じエラーをスローします... –