楽々PIC

水田除草と言うブログを書いていますが、PIC関連の記事が意外に人気で驚いています。 PICを使った電子工作に興味を持つ方が多いことを知って、一緒にPICを学ぶブログを作りたいと思いました。 「楽々PIC」は教材と言うよりも少し実用性?のある楽しい道具を作りながら学ぶブログを目指します。

部品解説

ディジタル温度センサー2

ディジタル温度センサー DS18B20+ を一つだけ接続して温度変換をさせ、値を読み出す際に使ったポート制御の定数は下図の通りです。 図をクリックして別ウィンドウで見れば数値も読み取れると思います。

DS18B20実績

太い実線はポートを出力に設定してPICから出力しているタイミングです。 細い実線はプルアップ抵抗( 4.7k )によるもので、2点鎖線はオープン・ドレインの DS18B20 の出力( Low = 0 )タイミングです。 DS18B20 の 1-Wire バス・プロトコルの詳細は多くのWebページで紹介されていますから、ここでは実績値だけを紹介します。

DS18B20 を一つだけ接続し、パラサイト・パワーと言う方式で給電しています。

DS18B20 に温度変換を行わせる為に以下の手順が必要です。

1. 初期化 → SKIP ROM → CONVERT T → 1-Wireバス給電

上図のリセットパルスに始まる初期化に続いて、SKIP ROM ( CCh ) 8bit に続いて CONVERT T ( 44h ) 8bit を書き込み(送信)します。 8bit のデーターは最下位 bit を先頭に8個の書き込みスロットを続けて送信します。 合計16個の書き込みスロットの直後から800msecの間ポート出力を High に保ち、DS18B20 に給電し続けます。
ディジタル温度センサーに紹介した最初のオシロ波形を参照して下さい。


1-Wire バス給電期間の終了を待って、温度変換結果を読み出します。

2. 初期化 → SKIP ROM → READ SCRATCHPAD → 12bitだけ読み込み

上図リセットパルスに始まる初期化に続き、先ほどと同様に SKIP ROM ( CCh ) 8bit , READ SCRATCHPAD ( BEh ) 8bit を書き込み(送信)し、続いて上図の読み込みスロットを12回繰り返します。 読み込みスロットの所定のタイミングでサンプリングした値は読み出し順に以下の通りです。 温度データの単位は℃です。
(0) 温度データの 2^-4 bit
(1) 温度データの 2^-3 bit
(2) 温度データの 2^-2 bit
(3) 温度データの 2^-1 bit
(4) 温度データの 2^ 0 bit
(5) 温度データの 2^ 1 bit
(6) 温度データの 2^ 2 bit
(7) 温度データの 2^ 3 bit
(8) 温度データの 2^ 4 bit
(9) 温度データの 2^ 5 bit
(10) 温度データの 2^ 6 bit
(11) 温度データの+/- 値1の時氷点下

今回は(0)~(2)を読み飛ばし、(3)~(10)を使って小数点以下の値を四捨五入、氷点下の場合は全て0℃、99℃より高温は全て99℃にクリップして使います。 また、CRC による誤り検出を行いません。


関連記事のインデックスは右記事の末尾にあります。 → ディジタル温度センサー 


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



ディジタル温度センサー

RRP1320-1-04 温度誤差」に書いたように、A/D変換の基準電圧による測定誤差が大きい為、ディジタル温度センサーを試してみました。 センサーは Maxim の1wireデジタル温度センサー DS18B20+ で、-55~+125℃まで測定可能で、-10~+85℃は±0.5℃の精度と言うことです。 電源電圧は3.0~5.5Vで、1-Wire(GNDを加えて2本)だけで電源供給と双方向ディジタル通信が可能です。 基準電圧のような厄介なものは DS18B20 内部で解決し、ディジタル信号で高精度の測定結果を得られるのが魅力です。

1-Wire バス・プロトコルは初挑戦でしたが、ただ一つの DS18B20 とPICとの間で相互通信を行い、温度測定が出来るようになりました。 PIC18F1320 のポート( RB0 )を 4.7k プルアップして DS18B20 の DQ 端子に接続し、DS18B20 の VDD , GND の両端子を GND に接続するサテライト・パワーを使っています。

1-wire回路

DS18B20 を一つだけ接続し、「燻煙器」のような用途を想定している為、以下2通りの通信だけで実現しています。
1. 初期化 → SKIP ROM → CONVERT T → 1-Wireバス給電
DSC00245

2. 初期化 → SKIP ROM → READ SCRATCHPAD → 12bitだけ読み込み
DSC00246

今後、何回かに分けて詳細を紹介したいと思います。


以下は関連記事のインデックスです。


ディジタル温度センサー2 
 DS18B20+ を一つだけ接続して温度変換をさせ、値を読み出す際に使ったポート制御の定数は下図の通りです。

ディジタル温度センサー3 
 TIMER3 割り込みの都度指定されたプログラムを実行する為に、フック( HOOK )を使っています。 データ・メモリーとプログラム・メモリーが分かれている PIC の場合はフックと呼べないかも知れませんが、TIMER3 割り込み処理の先頭で所定のデータ・メモリー( 3byte )を参照して指定(予約)されたアドレスにジャンプします。

ディジタル温度センサー4 
 割り込み処理からフックで実行されるプログラムの内、DS18B20+ にコマンドを送信(書き込み)する部分と、温度データを読み出している部分のアセンブラソースを紹介します。 クロック周波数8MHzでの実施例です。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。




XBee 3役

XBee に接続する回路の検討を進めつつ、3台目の XBee が入荷しました。 これで、コーディネーター、ルーター、エンドポイントと言う3役を同時にネットワークして実験が可能になりました。

下図は、入荷した3台目です。 XBee ( ZigBee 版  ZB シリーズ )は X-CTU と言う設定ツールを使って、前述3役のいずれかに設定できるのですが、この3台目はエンドポイントに設定しました。

DSC00236

X-CTUでAPIモード3役の内いずれかに設定し、PAN-IDを書き込めば、後はネットワークに接続して動作確認しながら、X-CTUに接続したデバイスからPAN( Personal area network )中の任意デバイスの設定を変更可能です。 ただし、コーディネーターは一つのPAN内に1台だけです。

緑色の基板は秋月電子通商さんの XBee用2.54mmピッチ変換基板 ( AE-XBee-REG-DIP )ですが、電池駆動や3.3V出力のACアダプターに対応するため、入荷時点の AE-XBee-REG-DIP に実装済みだった三端子レギュレータを取り除き、2.54mmピッチ1番ピンと2mmピッチ1番ピンを短絡して使っています。

下図は、Bee Explorer でビジュアル表示した3台のネットワークです。 Bee Explorer はコーディネーターに接続して使います。

Bee_Ex_3


ルーターを遠ざけると下図のように親子関係が変化します。

Bee_Ex_3kaku


暫くの間、コーディネーターに X-CTU を接続して使うことになると思うので、エンドデバイスにPICを接続してあれこれ試す回路を考えます。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。




PIC18F13K22

 XBee を使って作ってみたいツールが色々あって、どこから手を付けるべきか迷いながら、あれこれ試しています。 エンドポイントやルーターにはマイコンを接続しなくても出来ることが沢山あるのですが、デジタル温度センサーなどを付けようとすると何らかのマイコンが必要そうです。 屋内のエンドポイントやルーターに隣接して見通しの良い条件では赤外線リモコンも併用して安価にON/OFFセンサーをちりばめると言うのも面白そうです。

こう言った用途に 18F13K22 も検討しています。

PIN SUMMARY です。
PIN_SUM_13K22


電源電圧とクロック周波数の関係図です。

V-F_13K22



18F23K22 はこちら→ PIC18F23K22


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。




XBee ドキュメント類

XBee の端子に何か接続しようとすると、ソース/シンク電流はどこまで許容されるのか、入力信号の敷居電圧は? と言ったことを知りたくなりますが、私が入手した参考書の中にはこれらの情報が見当たりませんでした。(探し方が悪いのか?) そこで、Webで検索、Digi International の製品ドキュメントから、4mA と判明しました。

XBee_E_Chara

英語版ですが、ATコマンドやAPIフレームについても詳しく書かれています。 参考書を元に、解らないところや不明確なところを調べる分には私でも理解できそうです。

ついでなので、ドキュンメント類へのリンクを並べておきます。(リンク切れ時はご容赦下さい)

 XBee-PRO ZB Programmable - chip antenna - cordinator API -
                  Documentation - Digi International
 http://www.digi.com/support/productdetail?pid=4549&type=documentation
 Product Manual: XBee / XBee-PRO ZB RF Modules が製品の取扱説明書です。
 (大きなファイルなので直接リンクは遠慮しておきます。)

   Documentation - Digi International
   http://www.digi.com/support/supporttype?type=documentation
   のメニューから XBee / XBee-PRO ZB (S2B) Modules を
   選んでみつけました。


 Digi API Frame Maker
 ftp://ftp1.digi.com/support/utilities/digi_apiframes.htm
 API フレームの詳細を調べたり、値を入力して具体的にフレームを作れます。


 X-CTU Software - Diagnostics, Utilities & MIBs - Digi International
 http://www.digi.com/support/productdetail?pid=3352&type=utilities
 X-CTU のインストーラーをダウンロードできます。

   Utilities - Digi International
   http://www.digi.com/support/supporttype?type=utilities
   のメニューから XCTU を選んでたどり着きます。


 Download ZigBee Operator
 http://www.zigbeeoperator.com/download.html
 Bee Explorer をダウンロードできます。 (要 .NET Framework )

   ZigBee Operator Home
   http://www.zigbeeoperator.com/
   から Download タグをクリックして見つけます。



楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。





ダウンロードコーナー
記事検索
アンケートに御協力下さい


アーカイブ
楽々PIC 宛てBlogMail


--- ご了承下さい ---

注意して記事を書いていますが、記事及びリンク先の情報による不利益について、一切責任を負い(負え)ません。
QRコード
QRコード
アクセスカウンター

    Atsuhiro Imai

    バナーを作成


    プロフィール

    jyosou_robot

    • ライブドアブログ