バージョン情報
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で一文字づつ送信してみた。
動作確認
動くのは動いたが反応が遅い。






