I2C/SPI大気圧センサーLPS25Hの使い方 - 1 - 実装
「LPS25Hの使い方」と書いたのですが、これについてはいたれりつくせりのものがあります。
「きむ茶工房ガレージハウス - 気圧センサー(LPS25H)で大気圧を測定して見ます」(PIC)
「気圧センサー(LPS331AP/LPS25H)で大気圧を測定して見ます」(Arduino)
PICでもI2Cでもないのですがこんな記事を書かれている方もいらっしゃいます。
「てずくな日記 - 気圧センサLPS25Hを使ってみた。」
(Attiny2313/HIDaspx/SPI、PC/USB/Excel)
センサーの仕様、回路、プログラムについてわかりやすくしかも詳しく書いてあります。私が書いてもこれ以上のものは書けるわけはないので以下 Tips 的なところとこれまで作成してきたものとの連携について書きます。
精度(確度)については
「海面更正気圧の計算結果を気象庁とくらべてみた - I2C大気圧センサーLPS25H+LPS331AP」
「I2C/SPI大気圧センサーLPS331APとLPS25Hを比較する (1)」
が参考になると思います。
========
まずセンサーはこんな風に実装してあります。
両端にピンソケット、ピンヘッダがついていますがピン配列は揃えてあり必要なものを組み合わせて使うことができます。
ブレッドボードでテストしてハンダ付けというのが一般的だと思いますが、測定が目的であればブレッドボードからハンダ付けに移行したときデバイスの特性、接触抵抗などが(熱・力などで)変化する可能性があります(白金抵抗温度計は0.01Ωくらいの接触抵抗の変化が致命的な影響をもたらします)
だから校正や細かな調整はハンダ付け後に行う必要があり、できるだけはやい段階でハンダ付けしまった方がいいです。
上の裏面です。きたなくてお見せしたくないのですが、そっちの方が参考になるかもしれません (^^;;
LPS25Hは基本的にはLPS331APと同じです。ですから回路もプログラムも同じものが使えます。ただ上のLPS25HとLPS331APの基板は4ピンの接続が違っています。これはいっしょに使えるようにアドレスを変えるためです。幸いこの二つのデバイスは4番ピンをVDDに接続するかGNDに接続するかでアドレスを変えることができます。
「I2Cデバイス・アドレス一覧」参照。もしアドレスが変更できなければ「同じアドレスのI2Cデバイスを使う」にあるような方法もあります。
配線は絶縁のためもあるのですが被覆をかぶせ色分けしてあります。赤-VDD、黒-GND、青-SCL、黄色-SDAというような感じです。昔は色分けにルールがあったと思いますが、そういうのがなくても色を見ただけでなんだかわかるようにしておくのが便利でしょう。
この配色に特に意味はわりません。でもいくらなんでも赤-VDD/VCC、黒-GND/VSSは変えない方がいいですね。
これは上の三つを組み合わせたところです。
あんまり意味はないですがこれで大気圧を三種類の方法で温度を二種類の方法で測ることができます。正確さから言ったら温度だったらAM2321、大気圧だったらLPS331APです。
「温度センサー3種の精度比較(摂氏0度~40度編)」
「海面更正気圧を気象庁とくらべてみた - I2C大気圧温度センサーLPS331」
「意外に正確そうなI2C大気圧センサーMPL115A2の測定値」
実験風景(?)です。
センサーは上に書いたように数珠つなぎにして試験管に入れてあります。試験管に入れるのは今回の場合は接触事故対策ですが温度の校正のときはこのまま蓋をして氷水(摂氏0度)やお湯(摂氏36.5度、体温計とともに)に沈めます。試験管には温度測定用の白金薄膜抵抗とサーミスタも外側に取り付けてあります。
PICは18F26K22です。SPIとI2Cを同時に使えることやメモリが大きいことがあってこれを採用しました。PICのとなりにあるのはI2Cデバイスのアドレスがかぶったときデバイスを切り替えるためのものです。ただこの写真の中にはアドレスの重複はありません。
「同じアドレスのI2Cデバイスを使う」
表示部分はバックライト付きの液晶ディスプレイです。16桁2行ですが、これだけセンサーをつけるともう少し表示できれば便利なんですが....
「I2Cのソース - PIC12F1822/16F1705/16F1938/18F26K22 - LCD(ACM1602)を例にして」
可変抵抗とタクトスイッチが取り付けてあります。
タクトスイッチは黄色がメニューボタン、緑色が決定ボタンになっており、機能や値の選択は可変抵抗で行います。
今はメニューボタンで測定データのSDカードの保存間隔選択に入り、可変抵抗でインターバルを1,2,3,4,5,10,15,20,30,60,120,300,600秒から選べるようになっています。次はRTCの時刻合わせができるようにする予定です。
観測記録は以前はRS232CでPCに送っていたのですが、面倒なので今はSDカードに保存するようにしてあります。これで戸外に設置したり持ち歩いたりできるようになりました。
もっともまだ持ち歩けるほどコンパクトにはなっていませんが....
「PIC/I2C大気圧センサーLPS331APの測定値をSDカード(SPI)に記録する - はじめに」
記録データを保存するとき時刻がわかるようにRTC DS3234Sを使っています。このRTCはとても正確でこの一ヶ月間で3秒~4秒進んだだけでした(ちなみに私のカメラの内蔵時計は毎日2秒進んでいます)
RTCの1PPS出力は表示や記録のタイミング制御に使っています。なおこのRTCはSPIインターフェースです。
「PICでSPI - 超高精度SPIバスRTC(リアルタイムクロック)DS3234Sの使い方」
左下のMCP3425は16bitADコンバータで精度もまあまのようです。今は白金抵抗温度計に使っています。
「PICでI2C - ADコンバーター・MCP3425の使い方」
「MCP3425のもうちょっと詳しい使い方(ソース付き)」
「16bitADコンバータMCP3425とPICで作る白金抵抗温度計 - 1」
サーミスタでの温度はPICのADコンバータを使って測定しますが今回はまだ使っていません。
「PICで作るお手軽サーミスタ温度計 (1)」
-------
記事のリストへのリンク
趣味の電子工作
PIC
趣味の気象観測
掩蔽(星食)
趣味の天文計算
カノープス
月面X
バーナード星(固有運動と年周視差)
流星経路計算
小惑星
彗星
月のクレーター
位置計算
太陽と黒点
天文計算の本
時刻と時間
GPS受信モジュール
カメラとレンズ
趣味の実験
アラビア語の星
低レベルなアラビア語の話
中国の星座
パソコン・インターネット
日記・コラム・つぶやき
編集用
このブログの変更履歴・正誤表など
これからのブログネタ
« I2C/SPI大気圧センサーLPS331APとLPS25Hの精度を比較する (1) | トップページ | ラブジョイ彗星・2015年1月23日の位置 »
「趣味の電子工作」カテゴリの記事
- PICで作る100MHz周波数カウンタ検証用XOR(エクスクルーシブオア)逓倍器(2016.03.08)
- 150MHz(~200MHz?)周波数カウンター用プリスケーラー(1/4分周器)(2016.03.06)
- 測温抵抗体(Pt100、白金薄膜温度センサー)の抵抗値を温度に変換する(平方根を使わない)計算式(2016.03.01)
- GPS/JJY(標準電波)を基準周波数源とするためのPLLの詳細(2016.02.27)
- GPS受信モジュール1PPS対決 - GE-612T vs GM-5157A(2016.02.21)
この記事へのコメントは終了しました。
« I2C/SPI大気圧センサーLPS331APとLPS25Hの精度を比較する (1) | トップページ | ラブジョイ彗星・2015年1月23日の位置 »
コメント