Arduino + 1Sheeld で遊ぼう。その3。 LCD + 超音波センサ

バージョン情報
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

回路

HC_SR04

ソースコード

#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で一文字づつ送信してみた。

動作確認

IMG_2014101154932

動くのは動いたが反応が遅い。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です