創るたのしみを応援

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

Nucleo mbed版

mbedで書いていきます。

mbed用ライブラリを作成したので、インポートして使用します。

mbedライブラリはこちら。
https://os.mbed.com/users/tajiri1999/code/LPS25HB_I2C/

サンプルプログラム

/* ライブラリのインクルード */
#include "mbed.h"
#include "LPS.h"

/* オブジェクトの生成 */
I2C i2c(D14,D15);
LPS ps(i2c);

/* メインプロフラム */
int main(){

    /* 初期設定 */
    wait_ms(100);
    if (!ps.init()){
        printf("Failed to autodetect pressure sensor!rn");
        while (1);
    }
    ps.enableDefault();

    /* 繰り返し処理プログラム */
    while(1){
        float pressure = ps.readPressureMillibars();
        float altitude = ps.pressureToAltitudeMeters(pressure);
        float temperature = ps.readTemperatureC();
  
        printf("p:%.2ft mbarta:%.2f mtt:%.2f deg Crn",pressure,altitude,temperature);

        wait_ms(100);
    }
}

実行結果

プログラムを書き込んだら、TeratermかArduinoIDEのシリアルモニタを開いて、接続しているNucleoのCOMポートを指定してください。値が表示されたら成功です。

関数リスト

mbed引数戻り値機能
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でフォローする