タグ別アーカイブ: PIC

IMG_1900

温度センサーADT7310をRaspberry piで使う

温度センサーADT7310をRaspberry piで使ってみます.
秋月電子で売られている同タイプの温度センサーにはI2Cインターフェイスに対応したADT7410もあります。
ここではSPIに対応したADT7310を使います。
IMG_1900

スクリーンショット 2013-12-14 5.55.12

事前にRaspberry piでSPIが使えるようシステムの設定を済ませておきます。
ここではPythonで制御します

import spidev
import time
spi_ch = 1
spi = spidev.SpiDev()
spi.open(0,spi_ch)
spi.max_speed_hz=(100000)   #クロック周波数を設定
spi.xfer2([0x08,0x80])  # センサーを16ビット精度に設定
time.sleep(0.5)
spi.xfer2([0x54]) #連続モードにセット
time.sleep(1) #ADT7410が測定データをAD変換するための時間を待つ
ret = spi.xfer2([0xff,0xff]) #ダミーの2バイトをセンサーに書き込んで2バイトの温度データを読み取る
temp = ret[0]<<8 | ret[1]
temp /= 128.0      #℃に変換
print "temparature:",temp
print "stop:",spi.xfer2([0x50]) #連続モードを停止
spi.close()

無事動作すればコンソールに現在温度を表示するはずです。定時観測に使う場合はこのプログラムに測定結果をメールなどで飛ばす処理を加えたスクリプトにしてcronで定期的に呼び出すようにすると良いでしょう。
ADT7310の制御コマンドは他にも有りますが、順番など含めて動作を確認できたのが上で紹介したコマンドの流れになります.使いこなしによっては他のコマンドも使えると思います。いろいろと試してみてください。

Raspberry piにはSPIで使えるCE信号がCE0とCE1の二つしか無いと言う事はSPIデバイスを二つ使えるという事ですね。液晶デバイスなどSPIシリアルを持ったモジュールなども有りますので使いこなしてみるのも面白いでしょうね。

今回はSPIシリアルを持った温度センサーを使いました。同タイプの温度センサーモジュールにはI2Cインターフェイスを持ったものが有ります.他にも気圧センサーなどもSPIとI2Cのどちらかを選択することができます.もっと多くのモジュールをつなげたい、ほかのセンサーも同時に使いたいと言った時にはI2C対応のモジュールを検討してみると良いでしょう。(それでもI2Cアドレスが競合してしまっては使えないので気をつけましょう)

I2Cinterface説明図5

LCDキャラクターディスプレイモジュール比較

一般的に入手が容易なLCDキャラクターディスプレイモジュールの比較を紹介します。

1)超小型LCDキャラクタディスプレイモジュール(16×2行バックライト・オレンジ)
SD1602HUOB(-XA-G-G)

○小型
○バックライトが明るく見やすい
☓LCD上部にFFCがあり、ケースへの収まりが悪い

基板上のピンは直列16ピン

2)LCDキャラクタディスプレイモジュール[16×2行][バックライト付白抜き]
[SC1602BBWB-XA-GB-G]

○黒い枠があり、ケースへの収まりが良い
○青色のバックライトは明るく、日中でも目立つ
△(1)のモジュールよりもサイズが大きい

基板上のピンは2列x7ピン=14ピン

3)LCDキャラクタディスプレイモジュール(16×2行バックライト付)
[SC1602BSLB(-XA-GB-K)]

暗所で撮影

明るい場所で撮影

(2)のバックライト違いだが見え方は随分異なる

○黒い枠があり、ケースへの収まりが良い
○バックライトは弱いが日中の視認性は良い
△(1)のモジュールよりもサイズが大きい

基板上のピンは2列x7ピン=14ピン

いずれのモジュールもマイコンとの接続には複数のピンを接続する必要がある。ブレッドボードなどでの試作では配線が手間になることも。モジュールとの接続をコネクタ化した汎用的な基板を作っておくと試作検討もすっきりと進みます。
オリジナル基板について

LCDモジュールSC1602キャラクター表

LCDモジュールSC1602互換で用いられるキャラクターコード表を示します.
下位4ビット\上位4ビットで表します。

0 1 2 3 4 5 6 7 8 9 a b c d e f
0 0 @ P ` p α p
1 ! 1 A Q a q ä q
2 2 B R b r β θ
3 # 3 C S c s ε
4 $ 4 D T d t μ Ω
5 % 5 E U e u δ ü
6 & 6 F V f v ρ Σ
7 7 G W g w γ π
8 ( 8 H X h x
9 ) 9 I Y i y ¬ y
a * : J Z j z j
b + ; K [ k { ×
c , < L ¥ l | ¢
d - = M ] m } £ ÷
e . > N ^ b 濁点 η
f / ? O _ o 半濁点 ö