2022-05-04
高精度な気圧/標高MEMSセンサチップを搭載したセンサボードを、Arduino・Nucleo mbed・Raspberry Piで使ってみました。I2CやSPIで、気圧、気温がかんたんに読み出せます。
3.3V電圧レギュレータとレベルシフタを内蔵しており、2.5V〜5.5Vの入力電圧で動作します。
通信はI2CとSPIのどちらにも対応していて、値をかんたんに読めます。
標高が1000m高くなると、気圧は約100hPa低下します。この性質を利用して標高を求められます。また、海面の気圧(標高0m)は約1013.25hPaです。これを基準に計算するとよいですが、気象状況によって変わるので注意です。
天候が悪くなると気圧が下がるので、台風や雨が近づいて来たのが分かるセンサです。
「缶サット」という、宇宙版ロボコンのような競技等おいては欠かせないセンサーのようです。
単体での使い道はあまりないかもしれませんが、GPSなどと組み合わせたりすることで、UAVなど面白いデバイスを作ることができるかもしれません。
ピン名 | 機能 |
---|---|
VDD | 3.3V出力端子。外部に約150mAの電力を供給できます。 (VINを外した状態で、このピンを3.3V入力として使用できます) |
VIN | 電源入力端子。2.5~5.5V電源を接続します。 |
GND | GND端子。 電源の他に、通信相手とGNDを共有する必要があります。 |
SDA/SDI/SDO | I2C/SPIデータ端子 HIGHはVIN、LOWは0Vで、レベルシフトされてます。 |
SCL/SPC | I2C/SPIクロック端子 HIGHはVIN、LOWは0Vで、レベルシフトされてます。 |
SDO/SA0 | 4線モードSPIデータ出力端子 HIGHはVDD、LOWは0Vで、VDDへプルアップされてます。 I2Cアドレスを決定するための入力としても使用します。 |
CS | 通信モード選択をします。 HIGHはVDD、LOWは0Vで、VDDへプルアップされてます。 HIGH(オープン・無接続)時: I2C通信モード Low(0V)時: SPI通信モード |
INT1 | プログラマブル割り込み/データレディインジケータ 3.3Vロジックレベル出力 |
レベルシフト回路やプルアップ抵抗が通信ラインへ既についていて、追加の必要はないです。
I2Cのスレーブアドレスは、SDO/SA0がプルアップ(オープン・無接続)されてるときは0x5Dに、GNDにドライブされているときは0x5Cになります。標準のまま使うなら0x5Dのスレーブアドレスを使うとよさそうです。
今回はI2C通信を使い、つぎのように接続します。
マイコンボード側 | LPS25HB |
---|---|
3.3V~5V | VIN |
GND | GND |
SCL | SCL |
SDA | SDA |
マイコンボードによって、プログラミングは変わるのでボード別に使っていきます。
最後に、建物内で自分が今何階にいるか調べる実験をやってみました。現在何階にいるかを簡単に調べることができます。