ラズパイ MEMSセンサー LPS25Hで温度と気圧の取得

ラズパイ

i2cセンサーのLPS25Hを使用して温度と気圧を測定しました。

データシートによると圧力センサーはMEMSで出来ているようです。

データシート

Raspberry Pi との接続は、以下のようにRaspberry pi 側 4箇所

(VDD:電源、SCL:クロック、SDA:通信、GND )

デバイス側6箇所でした。

(上記に加えて、CS:i2cモード選択,SDO:デバイスアドレス選択)

ジャンパーワイヤーで接続すると抜けやすくて大変でした。

(ワイヤーが途中で抜けて、プログラムのエラーの原因が一時不明になった。)

プルアップはRaspberry Pi の内部で行われているので、不要です。

接続の回路図です。

次にプログラミングです。Pythonで作成しました。

通常のユーザーだとi2cのアクセス権限がない場合(未設定の場合)があります。

ユーザーグループにi2cを加えて下さい。

smbus の関数についてはなかなか理解ができず苦戦しました。

この接続の場合はデータのアドレスは0x5dになります。

大まかな流れとしては、

①通信確認(WHO_AM_I)としてレジスタアドレス0x0Fから0xBDを読み込む。

②モード切り替えのためレジスタアドレス0x20へ0x90を書き込む。

③レジスタから8bitデータを読み込む×5

④読み込んだデータを結合して気圧は24bit、温度は16bitのデータにする。(シフトして論理和で結合する。)

⑤補正の計算する。気圧:Pout(hPa) = PRESS_OUT / 4096、気温:T(°C) = 42.5 + (TEMP_OUT / 480)

⑥出力する。

作ったプログラムは以下です。

created by Rinker
Raspberry Pi
¥13,950 (2025/03/26 22:13:29時点 Amazon調べ-詳細)

コメント

タイトルとURLをコピーしました