創るたのしみを応援

Pololu LPS25HB 気圧/標高センサボードを使ってみる

Arduino版

ArduinoIDE1.8.5を使って書いていきます。

Pololu公式のLPS25HBライブラリが出ていますので使用します。Pololu LPSシリーズで共通のライブラリになっています。

ライブラリの導入

Arduino IDEで使用するライブラリを導入します。つぎの手順で導入します。

  1. Arduino IDEで「スケッチ」メニューを開き「ライブラリをインクルード」を選択、次に「ライブラリを管理」を選択します。
  2. 「Pololu LPS25H」を検索します。
  3. リストから「LPS by Pololu」を探します。
  4. 「インストール」をクリックします。

もし、Arduino IDEからうまくいかない時は、つぎの方法で導入してください。

  1. GitHubから最新のリリースアーカイブのZIPをダウンロードし、展開します。
  2. フォルダ「lps-arduino-xxxx」の名前を「LPS」に変更します。
  3. 「LPS」フォルダをArduinoスケッチブックディレクトリ内の「libraries」フォルダに移動します。スケッチブックの場所は、Arduino IDEの「ファイル」メニューより、「環境設定」を開くことで確認することができます。なお「libraries」フォルダがない場合、自身で作成してください。
  4. Arduino IDEを再起動します。

ライブラリのインポートができたら、つぎのサンプルプログラムをコンパイルできます。

サンプルプログラム

/* ライブラリのインクルード */
#include <Wire.h>
#include <LPS.h>

/* オブジェクトの生成 */
LPS ps;

/* メインプログラム */

/* 初期設定 */
void setup()
{
    Serial.begin(9600);
    Wire.begin();

    if (!ps.init())
    {
        Serial.println("Failed to autodetect pressure sensor!");
        while (1);
    }

    ps.enableDefault();
}

/* 繰り返し処理部分 */
void loop()
{
    float pressure = ps.readPressureMillibars();
    float altitude = ps.pressureToAltitudeMeters(pressure);
    float temperature = ps.readTemperatureC();
    
    Serial.print("p: ");
    Serial.print(pressure);
    Serial.print(" mbarta: ");
    Serial.print(altitude);
    Serial.print(" mtt: ");
    Serial.print(temperature);
    Serial.println(" deg C");

    delay(100);
}

実行結果

プログラムを書き込んだらシリアルモニタを開いてください。気圧と気温の値が表示されると成功です。

関数リスト

Arduino引数戻り値機能
LPS::init()無しtrue or false初期化
成功時:true
失敗時:false
LPS::enableDefault()無し無し標準モードに設定
LPS::readPressureMillibars()無しfloat大気圧(hPa)を返す
LPS::readPressureInchesHg()無しfloat大気圧(inHg)を返す
LPS::readTemperatureC()無しfloat気温(摂氏)を返す
LPS::readTemperatureF()無しfloat気温(華氏)を返す
LPS::pressureToAltitudeMeters()floatfloat引数にhPaをとり、標高(m)を返す
LPS::pressureToAltitudeFeet()floatfloat引数にinHgをとり、標高(feet)を返す
  1. Pololu LPS25HB概要
  2. Arduino版
  3. Nucleo mbed版
  4. Raspberry Pi版
  5. 建物内で何階にいるか推定実験

SNSでフォローする