google-site-verification: google3bd66dd162ef54c7.html

LPS331を使った気圧高度計、製作完了

 だいぶ記事の間が空いてしまいました。STマイクロの気圧センサー、LPS331APを使ったアナログ表示の高度計ですが、ようやく完成形まで持っていくことが出来ました。

▼外観
自作高度計
 100円ショップの目覚し時計が表示部で、下のケースには制御回路が入っています。制御部前面には動作表示用のLEDがあり、針のCCW駆動(赤)、サンプリング(白)、針のCW駆動(緑)の表示を行います。
 アナログ表示なのでチラ見するだけでおよその標高が判ります。また赤い針(1回転で10m)は坂道ではぐりぐりと動くので、今は上昇/降下しているのかが直感的に判って面白いです。

▼裏側
高度計の背面
 ケースに付いている電源スイッチはもちろんそのまま利用。

 右手前の赤/白のポッチはタクトスイッチ。これで針の位置合わせを行います。もちろん時計の時刻合わせツマミで直接針の位置を動かすこともできます。

▼内部
LPS331APを使った高度計、内部
 単三4本用の電池ケースを使い、電池2本分のスペースをつぶして基板を入れています。

▼基板(部品面)
LPS331APを使った高度計、部品面
 Arduino UNOで開発したプログラムが入っているCPU(ATmega328PU)で制御。電池2本の電圧をDDコンで5Vに昇圧してCPUに供給。さらに5Vから3.3Vに降圧してセンサー(LPS331)の電源を作っています。電池の消費電流は約40mAでした。

 左上がセンサーの基板。この基板には青色のLEDが実装されていて、その光が気圧測定の誤差の原因になりそうです。最終的にはパターンカットして光らないようにする予定ですが、製作中は電源ON表示として具合がいいので今のところ光らせています。

▼基板(配線面)
LPS331APを使った高度計、配線面
 久しぶりに配線やりましたが、やはり線の余長の入れ方が思うようにいかなかったです。あたかもCADで書いたみたいな感じのルート配線をやりたいのですが、一発で決めるのは難しいです。というか、ほとんど決まってません汗;

▼回路図(クリックで別窓に拡大)
気圧高度計(LPS331)の回路図
 実際にはコネクタで回路を分離できるようになっていますが、面倒なので回路図には表現していません。電源のパスコンが足りない感じですが、モジュール基板(DDコンとセンサー)に入っているのでまあ大丈夫かと。

 気圧高度計(LPS331)のスケッチ 液晶は付けてないですが、表示機能のプログラムは入れたままになっています。

 ということでめでたく完成です。

 ただ、少し使ってみると以下のような問題が出ており、対策方法が無いか検討中です。

 問題と言うのは、特定の気圧でセンサーから大きく外れた値が出力される場合があることです。具体的には1007hPa付近で突然0.4hPa程度高い値と0.4hPa程度低い値が突発的に出力される現象が発生しています。高い値と低い値はどうもペアで発生している感じです。

 この現象はデジタル表示なら瞬間的に値が乱れるだけで実用上はほとんど問題にならないと思います。でもアナログ式ではその現象がはっきり見えてしまう、つまり約4m分、針が突然大きく往復するのはかっこ悪いです。

 対策としては、LPS331の設定(使い方)の変更で直らないか?。あるいは単発の大きな値の変化があった場合はプログラムで無視する。あたりを考えています。

 どなたか同じ現象に遭遇された方がおられましたら、コメントいただけませんか?情報交換させて下さい。
関連記事

tag : LPS331AP アナログ高度計 自作 製作

コメントの投稿

管理者にだけ表示を許可する

似たような現象に遭遇しました
ジップロックに気圧計を入れてギュウギュウ押していると
1024hpaあたりで数字が暴れました
16Mでコンパイルしたスケッチを8Mで動かしていた時なので通信の問題だったかも
センサーを2度読みすると数値が安定した気がします
帰ったら確認します

Blueさん今晩は

LPS331で気圧計作られていた方ですよね。何か判ったらよろしくお願いします。

それと、そうかジップロックに入れて気圧上げる手がありますね。

こんどやってみます

No title

やっぱり2度読みで対策していました。
もしかして BDUが悪さしてデータがLSBとMSBで別のサンプリング
の読み値にずれてしまっているのかも
うちは1hpa=1秒なので小数点以下を読むのを止めてしまって
BDUはoffにしています。

Blueさん、情報ありがとうございます

そうですね、BDUも気になってます。

一応、ワンショット変換で、変換完了待ち入れてからデーター読み出ししているので、読んでいる最中に値は変化しないはずです。それでも念のためにBDUビットを1にしているんですが、何か設定を勘違いしてるかも知れません。

二度読みやって、値が一致した時だけ採用すれば確実かも知れないですね。こんどやってみたいと思います。

まだ、時計は接続していませんが、・・・

まだ、時計は接続していませんが、LCDだけつけて3.3Vで動かしてみましたが、気圧は安定していますが、今日は気圧が1013から1002あたりまで下がりましたが、高度がそれにつれて34mから91.2mまで変化していきました。一定の場所に置いていて、気圧が変われば高度も変わってしまうものなのでしょうか?
以前作った時計を付けてみましたがArduinoが3.3V駆動だとCCW,CWとも正常に動きませんでした。やはり5V駆動じゃないと無理なようですね。FETかTRでドライブしてみようと思いっています。

re:まだ、時計は接続していませんが、・・・

Mogartさん、おはようございます。

海面気圧が変わると気圧高度計はもろに影響を受けてしまい、1hPaで8.1mくらいのオフセットが発生します。

これは原理的に避けられないです。気象庁のデーターで補正。例えば下記サイト
http://www.jma.go.jp/jp/amedas_h/today-44132.html
あるいは既知の標高の場所で針を合わせるしかないです。飛行機の気圧高度計もそうやっています。(飛行場から気圧計の規正値が放送されている)

時計は、元は1.5Vで動いていた物なので駆動条件を調整すれば3.3Vでも動くと思います。まずはこの記事の回路図のVR1を調整すると良いと思います。

No title

 ラジオペンチ様
素人初心者の質問ですみません。ピンソケットにつながってる7本の配線が何処につながっているのかどうしても解りません教えていただければ幸いです。

座頭位置さん、こんにちは

3枚目、4枚目の写真の向きで左から1から7Pinということにして、基板内接続先→コネクタの接続先ということで書くと

1 CPUの13ピン → SW2
2 CPUの14ピン → SW3
3 GND     → SW2,3の反対側へ
4 CPUの16ピン → 時計のコイルへ
5 VR1    → 時計のコイルへ
6 電源入力  → 電池ボックスのプラス側端子
7 GND    → 電池ボックスの電源スイッチへ(GND側に電源スイッチがありました)

こんなふうになっています。

回路図では半固定抵抗のVR1はCPUの16ピン側に接続していますが、実際の配線では15ピン側に接続していました。直列なので15と16ピンのどちら側に入れてもいいので、ハンダ付けする時に作業が簡単になるように変更したのだと思います。

がんばってください。何かわからないとこがあれば質問いただければ可能な範囲でお答えします。

それと、これ動かすには時計の逆転が完璧に出来ていないとだめですが、そのへんは大丈夫でしょうか。

No title

 ラジオペンチ様
 教えていただきありがとうございます。
 時計の逆転はまだ完璧ではないのでもうすこしかかると思います。又解らないときは質問させて下さい。 
( 改めてありがとうございます。)

No title

 ラジオペンチ様  アナログ高度計が
 多分出来たと思います。 他の方たちの駆動条件も参考にさせていただきましたが結局ラジオペンチ様の駆動条件で作動しました?←が付くのは正転の時は緑LED
逆転の時は赤のLEDが点滅します白のLEDは電源を入れてる時は点滅のしっぱなしでよろしいのでしょうか?

座頭位置さん、今日は

うまく動いたようでおめでとうございます。

LEDの色は飛行機の操縦をイメージして決めています。上昇なら安全側なので緑。降下すると地面に衝突する危険があるので赤表示。ということで、針を見なくても昇降が何となく判るようにしてみました。

白のLEDは点滅でOKです。内部的には液晶に書いたタイミングで点灯させています。電源ON表示の替わりと思っていただければと思います。

LEDがちらちらしてうるさいなら、UP/DOWNのスイッチを押しながらリセットをかけるとLEDが暗く点灯するようになります。

No title

ラジオペンチ様
ありがとうございます。
 今、高低差150mほど有る坂道を走ってきました 秒針がぐるぐる逆転していくのがわかります視覚的にも楽しめるものですね。

座頭位置さん、今晩は

楽しんで頂いたみたいで何よりでした。

高度計の針がグルグル廻ると飛行機みたいなので気に入ってます。

あ、といっても実機に乗ったこと無いですが。

気圧センサ

時計を表示に使うとは、流石でいらっしゃいます。

同じセンサ、(何とかの一つ覚えでPSoC 1につないで)使っています。値にバラツキはありますが、それ程の暴れはないようです。連続変換にしているからかも、しれません。

あるいは、チップのバージョンが違うのかもしれません。また、よく似たLPS25Hを使ったモジュールに置き換えると、良くなるのかもしれません。(秋月のLPS331モジュールは、ディスコンになったようです。)

関係ありませんが、MS5607のモジュールでは、多数回の平均をとるなどすれば、約10cmの違いが見て取れました。)

お邪魔いたしました。

re:気圧センサ

多摩地区住人さん、今晩は。お久しぶりです。

この記事に書いた特定の気圧における数値のあばれ現象の原因は。センサー側のMSB側のバイトの値の書換えが遅いために、一つ前のサイクルの測定結果が読み出されていたためだったようです。

そのあたりは、気圧計の次の記事で解説してます。
http://radiopench.blog96.fc2.com/blog-entry-472.html

それと、今秋月を見てきたら、LPS331モジュールが無くなってますね。それとMS5607出てますね。これ、性能良さそうですが、値段も結構するのが悩ましいところです。
カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード