バージョン情報
Arduino Uno , Arduino IDE 1.0.5 , windows 8.1, Xperia Z , Android 4.4.2 , 1Sheeld 1.1.2
過去の記事
・Arduino + 1Sheeld で遊ぼう。その1
・Arduino + 1Sheeld で遊ぼう。その2。 7セグ
今回は久しぶりに1SHEELDで遊んでみた。
超音波センサで測定した距離をスマホの1SHEELDアプリのLCDに表示してみよう。
材料
Arduino Uno
HC-SR04 超音波距離センサーモジュール For Arduino
回路
ソースコード
#include <OneSheeld.h> const int TrigPin = 2; const int EchoPin = 3; float cm; int mm; String str_buf = "string"; void setup() { OneSheeld.begin(); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); LCD.begin(); } void loop() { digitalWrite(TrigPin, LOW); //Low high and low level take a short time to TrigPin pulse delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0; //Echo time conversion into cm mm = int(cm * 10.0); if (mm < 20 || mm > 4000){ str_buf = "----"; }else{ str_buf = String(mm); for (int iii=4; iii>str_buf.length();iii--){ str_buf = ' ' + str_buf; } } //LCD.print(str_buf); //エラー LCD.print(str_buf[0]); LCD.print(str_buf[1]); LCD.print(str_buf[2]); LCD.print(str_buf[3]); LCD.print(" mm"); LCD.clear(); LCD.home(); }
LCD.print(str_buf);がなぜかエラーになる。
どうやらstringは定数しか受け付けてくれないようだ。
仕方がないのでcharで一文字づつ送信してみた。
動作確認
動くのは動いたが反応が遅い。