• 締切済み

Arduino

Arduinoのシリアル通信を用いてLCDに文字列を表示しようと思っています。 以下コード #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //初期設定 void setup() { //LCDの初期設定(縦横のスケール) lcd.begin(16, 2); //起動後一回のみ表示 lcd.setCursor(2, 0); lcd.print("Hello world!"); delay(2000); lcd.clear(); //シリアル通信開始 Serial.begin(9600); } //動作開始 void loop() { lcd.setCursor(0, 0); lcd.print("Auto Mode"); lcd.setCursor(0, 1); lcd.print("Voltage = "); //データを受信時のみの動作 if (Serial.available()) { delay(100); lcd.clear(); while (Serial.available() > 0) { Serial.println("LCD Received!"); lcd.setCursor(10, 1); lcd.print(Serial.available()); } } } このコードでコンパイル後モニタを開き文字列を送信すると、 例 100を送信したとき⇒”0”のみ表示   101を送信したとき⇒”1”のみ表示 のように、最後の文字しか反映されません。 どのように修正したらよいでしょうか。

みんなの回答

回答No.2

> つまり、"string"を使えばいいという事でしょうか? そう思うならやってみれば?

回答No.1

Serial.available() から得られるのは文字ですか? 文字列ですか? 前者であるなら、最後の文字しか表示されないのはアタリマエ。 受信した文字を配列かなにかに貯めこんで文字列を作らんならんでしょうね。

noname#226671
質問者

補足

前者の可能性が高いです。 つまり、"string"を使えばいいという事でしょうか?

関連するQ&A