自記温度計、自記気圧計 - 複数のSPIデバイスがいっしょに使えなかった話
気圧、温度、湿度、各種電圧を定められた時間間隔で測定しSDカードに記録しようというプロジェクトもやっと形になってきました。
テスト的に昨晩2分おきに測定をしてみました。
-----
なお複数のSPIデバイスをいっしょに使う話についてはきむしげさん(きむ茶工房ガレージハウス)の
「SPIマスターにSPIデバイスを複数個接続して見ます」
にソースを含めた詳細な記事があります。きっと私の記事よりずっと参考になると思います。
なお動くのは動くけれども(SDカードの読み書きの)動作が不安定という場合はひょっとしたら
「PICでSPI - SDカードの書き込みエラーの話」
が参考になることがあるかもしれません。また私の使っているSDカードアダプタはそもそも単独で使ってもエラーが出ることがわかりました (^^;;
「SDカードでエラーが起きる理由 - PICでSPI」
---------
=======
SDカードにはCSVとして保存してあるのでそのままExcelで開くことができます。
これだけデータが揃ってくると壮観(?)です。
現状次のデータを取得できます。
精度がどうだ、確度がどうだと書いていますが、もちろん“私の持っているものは”という話です。
date 日にち(RTC=DS3234Sから取得)
time 時刻(RTC=DS3234Sから取得、もう涙がでるくらい正確です)
331-T LPS331APの温度
331-P LPS331APの気圧(海面更正気圧でアメダスと比較するとかなり正確)
25H-T LPS25Hの温度(室温だとちょっと高め低め)
25H-P LPS25Hの気圧(5hPaくらい高め?)
3425-V MCP3425の電圧(白金薄膜抵抗の抵抗値測定用、精度・分解能良好です)
3425-T 白金薄膜抵抗の抵抗値から求めた温度(摂氏0度(氷点)と36.5度(±0.05度)で校正)
2321-T AM2321の温度(故障中、ハンダ付け不良?、比較的正確)
2321-H AM2321の湿度(故障中、ハンダ付け不良?、確度については今のところ調べようなし)
115A2 MPL115A2の気圧(分解能は悪いですが比較的正確です)
3208-0 MCP3208の電圧 Ch0 抵抗・サーミスタの分圧
3208-1 〃Ch1 抵抗・トランジスタBE間の分圧(VBE)
3208-2 〃Ch2 未使用
3208-3 〃Ch3 未使用
3208-4 〃Ch4 未使用
3208-5 〃Ch5 未使用
3208-6 〃Ch6 未使用
3208-7 〃Ch7 未使用
MCP3208の精度・確度については未検証です。
サーミスタは計算は面倒ですが比較的正確に温度が測れます。
VBEの温度係数はこれからのネタです。
ところで
「SPI接続でトラブル! 複数のデバイスが使えない」
「SPI接続でSDカードとMCP3208がいっしょに使えない話」
に書いた話はどうなったかというと解決したとはいえない状況です。
「SPI接続でSDカードとMCP3208がいっしょに使えない話」には“解決した”というのを二回も書いたのですが、その後一晩中動かして翌朝見たらデータが影も形もありませんでした。
どうやらSDカード=MCP3208だけの問題ではなくSDカード=DS3234Sでも起きる問題のようです。
現在“暫定対応”ということで以下の回路図のようにしています。
これで上のとおりデータは朝見たらちゃんと残っていました。でも....
その後、これでも不安定であることがわかりました。そこで抜本的な対策として次の方法をとりました。
SDカードとそのほかのデバイスの間にアナログスイッチを入れました。アナログスイッチはSDカードの/CSでコントロールされます。デバイスを使用するとき/CSはLowに落ちます。したがってSDカードを使うときは他のデバイスは切断されることになります。
もちろんここはアナログスイッチでなくてANDとかORとかXORでいいわけですが、スペースの関係でPICの基板に載っているアドレスのかちあったI2Cデバイス切り替えようのアナログスイッチの使っていないものを流用しました。
なおSDカードのプルアップははずし根本の方に新たにプルアップを追加しました。このプルアップに関してはこれでいいのかよくわかりません。
その後一晩中測定と記録を繰り返すみたいなことをやっていますが特に問題はなさそうです。
------
PICでSPI - 超高精度SPIバスRTC(リアルタイムクロック)DS3234Sの使い方(ソース付き)
PICでI2C - 大気圧・温度センサーLPS331APの使い方
I2C/SPI大気圧センサーLPS25Hの使い方 - 1 - 実装
意外に正確そうなI2C大気圧センサーMPL115A2の測定値
温度センサー3種の精度比較(摂氏0度~40度編)
PICで作るお手軽サーミスタ温度計 (2) - ソース付き
(趣味の)白金抵抗温度計の製作 - 準備編
PICでI2C - ADコンバーター・MCP3425の使い方
PIC18F26K22でSPI - 8ch/ADコンバータ MCP3208の使い方(ソース付き)
PICでSPI SDカードを読み書きする
趣味の電子工作
PIC
趣味の気象観測
趣味の実験
« ラブジョイ彗星・2015年2月12日(~2月28日)の位置 | トップページ | PIC+SPI+I2C 自記温湿度計+気圧計+8ch電圧計のソース - main() »
「趣味の気象観測」カテゴリの記事
- 地震計を作る - 超音波距離計の応用 - プロトタイプ(2016.02.03)
- 超音波風速風向計の製作 - 回路構成(2016.02.02)
- 超音波風速計の製作 - 気温・湿度に依存しない測定方法(2016.02.02)
- I2C温湿度センサーAM2321の湿度を通風(熱電対)乾湿球湿度計とくらべてみた(2015.06.04)
- 通風乾湿球湿度計を熱電対とありあわせの材料で作ってみた(2015.06.04)
この記事へのコメントは終了しました。
« ラブジョイ彗星・2015年2月12日(~2月28日)の位置 | トップページ | PIC+SPI+I2C 自記温湿度計+気圧計+8ch電圧計のソース - main() »
コメント