SII社 S-5851A 温度センサーです
I2C で制御し温度センサーを読み出します
-40℃ ~ +125℃ の範囲の仕様です
↓
緑色の小さな基板がセンサーです秋月電子でたったの110円
↓
先ずは動画です
センサーを指で触れてデータが変化している様子が確認出来ます
但しこれでは使い物に成りません、バイナリを10進変換し表示
しなければ全く意味を持ちません、単なる実験です
↓
I2C-BUS 波形です
マニュアルが日本語なのでとても助かりました
↓
回路図、センサー基板
本当にシンプル、殆ど外付け部品は有りません
ですが特筆すべきはスレーブアドレス設定端子のAD0 / AD1 です
これは Low / Hi 設定だけでは無くて Open でも状態認識します
詰まり一つの端子で Low / Open / Hi の状態が在るので
スレーブアドレスはその分多く合計8個を同じBUS上に並べられるのです
↓
回路図、PIC16F886ホスト(マスター)側の基板です
↓
I2C BUS 波形の拡大です、波形の詳細説明は写真に写っています
信号の方向はマスターから見て RX=受信 TX=送信 です、特に
ACKは双方向なので要注意です
S=スタート・コンフィギュレーション、送信
P=ストップ・コンフィギュレーション、送信
SR=リスタート、送信
DATA=測温データ、受信
A=ACK、送信又は受信
NA=NACK、送信
最初はコンフィギュレーションレジスタのイニシャライズ
写真の波形の詳細説明、間違ってます、正しくは
S → 0x90 → A → 0x01 → A → 0x00 → A → P 全送信(TX)
↓
次は測温データレジスタの読み出し
↓
お仕舞いは カレントリード です
これは連続して読み出す場合 0x91 を書くだけでデータが読み出せます
簡易的にして効率化を図っているのですね
↓
読み出し一回目は必ず 0x00 0x00 が返って来るという事です
言い換えれば測温データは前回のデータを記憶していてデータが
読み出されるとリフレッシュされる、と言い換えられます、詰まり
電源オンで一回目の読み出しはゼロクリアされた測温データが残って居て
それを読み出して初めて新鮮な測温データが書かれるという事です
温度レジスタ構成です、マイナス側に注目ですね
↓
ソースコード等のファイルですがこのブログにアップロードすると
矢鱈に画面が縦長に成ってしまうのでダウンロード出来るように
アップロードしました、こちらからダウンロードして下さい。
素人プログラムなので笑われるのは覚悟です、が、これに依るトラブル
等は一切関知致しません、遊びの範囲でご利用下さい。