📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

編集の要約なし
 
16行目: 16行目:
zipファイルをダウンロード後、Arduino IDEを起動して、[Sketch]メニューバー - [Include Library] - [Add .ZIP Library...]を選択して、zipファイルを追加する。<br>
zipファイルをダウンロード後、Arduino IDEを起動して、[Sketch]メニューバー - [Include Library] - [Add .ZIP Library...]を選択して、zipファイルを追加する。<br>
<br>
<br>
HC-SR04とSC1602A(I2Cアダプタ)を使用して、測定した距離をLCDに表示する仕組みを作成する。<br>
次に、HC-SR04とSC1602A(I2Cアダプタ)を使用して、測定した距離をLCDに表示する仕組みを作成する。<br>
<br>
HC-SR04は電源電圧5[V]、動作周波数40[kHz]、測定角度15[度]で動作する。<br>
HC-SR04は電源電圧5[V]、動作周波数40[kHz]、測定角度15[度]で動作する。<br>
* 測定可能距離 : 2[cm]~450[cm]
* 分解能 : 0.3[cm]
* 最小範囲 : 2[cm]
* 動作方法
*: トリガー(TRIG)に印加する電圧を10[μs]以上Highにすると、距離の測定を開始する。
*: 測定後、距離に応じた長さの信号がECHOに返される。
*: 測定結果から距離への換算は、以下のように計算する。(単位は[mm])
*: <code>距離 = (ECHOがHighの時間 * 340) / 2</code>
<br>
<br>
HC-SR04のピン配置は、以下の通りである。<br>
HC-SR04のピン配置は、以下の通りである。<br>
29行目: 38行目:
<code>ping_median</code>メソッドを使用して、Pingの応答時間を取得している。<br>
<code>ping_median</code>メソッドを使用して、Pingの応答時間を取得している。<br>
pingを5回試行して中央値を取得することにより、安定した値を取得することを試みている。<br>
pingを5回試行して中央値を取得することにより、安定した値を取得することを試みている。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  #include <NewPing.h>
  #include <NewPing.h>
  #include <LiquidCrystal_I2C.h>
  #include <LiquidCrystal_I2C.h>
70行目: 79行目:
   
   
  }
  }
  </source>
  </syntaxhighlight>
<br>
または、NewPingライブラリを使用しない場合は、以下のようなソースコードとなる。<br>
<syntaxhighlight lang="c++">
#include <LiquidCrystal_I2C.h>
// address : 0x27, 1602LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
void wait_microsec(long wait)
{
    long start = micros();
    while (( micros() - start) < wait);
}
void setup()
{
    pinMode(11, INPUT);
    pinMode(12, OUTPUT);
    lcd.init();
    lcd.backlight();
}
void loop()
{
    digitalWrite(2, HIGH);
    wait_microsec(11);
    digitalWrite(2, LOW);
    unsigned long range = pulseIn(3, HIGH ,1000000);
    if(range)
    {
      range = ((range * 340) / 2) / 1000;
      lcd.setCursor(0, 0);
      lcd.print(range / 10, DEC);
      lcd.print(".");
      lcd.print(range - ((range / 10) * 10), DEC);
      lcd.print(" cm          ");
    }
    delay(200);
}
</syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Arduino]]
[[カテゴリ:Arduino]]