この連載では、温度、湿度が測定でき、2線式シリアル・インターフェースで測定値が読み出せるSENSIRION社のディジタル温・湿度センサのSHT11について、機能や使用方法などを説明します。このセンサの価格は2,200円(2007/11現在)で、湿度も測定できることから安価なデバイスだと思います。
今回はホスト・コントローラとしてPICを使ったマイコン・ボードで動作させる予定ですが、いうまでもなくPIC以外のマイコンでも制御可能です。
SHT11の2線式シリアル・インターフェースは、同期用のシリアル・クロックSCKとシリアル・データDATAの2線で制御できます。2線式というとI2Cかと思われるでしょうが、通信の手順やアドレスの指定方法などは異なっていて、残念ながらI2Cとはまったく互換性はありません。
続きを読む "2線式 温・湿度センサSHT11 (1)" »
今回は2線式通信のフォーマットやコマンドについて説明します。
ところで筆者は、実験の際にブレッド・ボードなどに実装できるアダプタ基板を製作したので、それを紹介しておきます。市販の0.5インチ・フラット・パッケージIC用のピッチ変換基板でも代用できると思います。下に写真を示しますが、SHT11をはんだ付けした後にピン・プラグをはんだ付けすれば、ブレッド・ボードに実装できます。実際に使用するのは写真下側の4ピンのみです。
アダプタ基板のブレッド・ボード実装例
続きを読む "2線式 温・湿度センサSHT11 (2)" »
具体的なプログラムの話に入る前に、今回はSHT11を使う準備や、実験機材などについて説明します。
続きを読む "2線式 温・湿度センサSHT11 (3)" »
今回から、SHT11の制御ソフトウェアのプログラミングについて説明します。
続きを読む "2線式 温・湿度センサSHT11 (4)" »
今回は、SHT11を操作するC言語の関数の機能、コードについて説明します。用意するSHT11ドライバ関数は次の四つです。
- 初期化
- TS(トランスミッション・スタート)シーケンス発行
- バイト・データ送信
- バイト・データ受信
これら四つの関数を組み合わせることにより、SHT11から測定データ(A-D変換値)を読み出したり、SHT11のステータス・レジスタのリード、ライトを行うことができます。
続きを読む "2線式 温・湿度センサSHT11 (5)" »
今回は、前回説明したドライバ関数を使用して、実際にSHT11から温度、湿度の生のA-D変換値を読み出し、それをLCD(液晶表示器)へ表示させます。とりあえず、表示された値を手計算して温度、湿度の値を得ます。
続きを読む "2線式 温・湿度センサSHT11 (6)
温度・湿度の測定" »
前回までで温度、湿度のA-D変換された生のディジタル値が読み出せたので、今回はそれらの値を工学値に変換して、温度値(℃)、湿度値(%)としてLCDに表示させるプログラムを説明します。
CCS-Cは高価なだけあってフロート型(実数演算)が使用できるので、簡単に計算のプログラムが作成できますが、WIZ-C(標準版)などでは、フロート型は実装されていません。そこで、16ビットの四則演算だけを使って実数演算相当の処理(SHT11の計算専用)を行う関数を作成しました。
32ビット型の整数演算を使うことができれば比較的簡単に計算できますが、筆者が使っているバージョンのCCS-Cでは、32ビット演算にバグがあるのかうまく計算できないため、CCS-Cで32ビット演算を使うのはあきらめています。WIZ-Cでは32ビット演算がサポートされていますが、サポートされていないコンパイラのことも考慮して16ビットの四則演算だけで計算できるようにしてあります。
続きを読む "2線式 温・湿度センサSHT11 (7)
温度・湿度の表示" »