パラグラフ37及び基準センサモジュールは、広く実際には、Arduinoのセンサモジュールと互換以上37種である必要があり、インターネット上で循環されます。私が手にセンサーやモジュールの数を蓄積しておりますので、実際に基づいて---、コンセプト(DIYに必ず)ハンズオン実験、成功したか否か、記録されます実行しようとするためにここに一つずつ調製する目的のための学習とコミュニケーション最適ですほとんど進展または開始することを期待して、問題を処理することはできません。
実験の[] Arduinoのシリーズ、センサモジュール108の種類(情報+ +グラフィック+シミュレーションコード)
DS18B20線デジタル温度センサ・モジュール:三〇から九実験
DS18B20
これにより、ユーザーは簡単にセンサネットワーク、概念を測定するための新たなシステムの導入のためのビルドシステムを設定することができ、「バスライン」インターフェース、温度センサ、ユニークなバスラインと経済的な機能をサポートする世界初のチップです。
温度測定原理
発振器、パルスの低い温度係数は温度値ゲートを取得するには、この期間中にカウントされている発振器内部カウンタの高い温度係数を有するゲート期間を決定します。カウンタは、-55℃に相当する値にプリセットされます。カウンタの加算値がゼロに達すると、温度レジスタサイクルゲートの終了前に(また、C°-55に初期化)、測定温度が-55摂氏度よりも大きいことを示します。
1。発振器の温度係数を意味する発振器であり、発振周波数と温度との間の特定の関係、異なる発振周波数に対応する、すなわち異なる温度があります。逆に、発振器の出力周波数を測定するために、温度を測定することができます。
発振器の2.高温度係数:その発振周波数が大幅温度、温度のわずかな変化によって影響され、周波数は、温度センサのために使用される温度に敏感な多く、すなわち変更されます。
発振器の前記低温度係数:その発振周波数は温度に影響され、その周波数は、実質的に一定であり、温度が大きく変化しても、小さいです。
それと同時に、カウンタは、温度感知発振器用ランプ・アキュムレータ回路、ランプ・アキュムレータ回路放物線特性補償器によって決定された値にリセットされます。そして、カウンタ0までカウントを開始し、ドアが終了していない場合、サイクルは、プロセスが繰り返されます。非線形解像度の時に比較的高い温度を得るために、温度に敏感な発振器をランプにアキュムレータを補償します。これは、カウント温度で必要な上昇の各々に対して一度カウンタの値を変更することによって達成されます。このように、所望の解像度を得るために、あなたはカウンタの値と与えられたそれぞれの温度のカウント値を知っている必要があります。
主な特徴
(1)固有の単線インタフェースモード、ある必要が唯一のマイクロコントローラの出口ラインに接続します。
(2)温度範囲 - 55〜+ 125℃、で - 10〜+ 85℃の範囲で±0〜5℃の精度;.
(3)9〜12のプログラムされたデジタル読み出しモードによって達成することができます。
(4)ユーザは、不揮発性の上限と下限のアラームを設定することができます。
(5)周辺回路が簡単で、バックアップ電源なしに外部部品、3 0〜5.5 Vのデータバス使用可能な電源電圧範囲の使用を必要としません。
(6)外付け部品なし、ユニークなラインインタフェース、電源及び信号が一緒に混合されます。
(7)ゼロ電力を待って、各チップ、サポート・ネットワーク・アドレスを符号化ユニーク。
(8)DS18B20 92、SOICパッケージ必要があり、VDDは、外部電源入力端子であるCSPは、GNDは共通のグランドに、DQは、デジタル信号出力端子です。
(9)冷凍庫、サイロ、貯蔵タンク、GPS衛星測位システム、通信室、電源室、ケーブルダクト等の温度制御に適用されます。
コンポーネント説明
---ターントリガーのメモリキャッシュメモリRAMと電気的に消去可能なRAM、電気的に消去可能なRAMを含むDS18B20メモリは、温度THとTL、及びコンフィギュレーションレジスタを含みます。メモリは、デジタル回線ポートがレジスタに書き込まれたコマンド・ライト・レジスタで始まり、その後、あなたはまた、レジスタを使用することができ、完全な通信を決定することができますこれらの数字を確認するためのコマンドをお読みください。承認は、これらの図電気的に消去可能なRAMに転送するレジスタをコピーするコマンドを使用することができたとき。修飾された、プロセス内のレジスタの数は数字の整合性を確保する場合。RAMのキャッシュメモリは、メモリの8バイトで構成され、第バイトレジスタとリードコマンドを読み取り、バイト、チェックの前に8バイトです。
ROMの64ビットフロントリソグラフィDS18B20 --- 8は、独自のコード、次の48の連続するデジタルコードであり、最後の8ビットは、最初の56ビットのCRCチェックです。64ビットリソグラフィROMはまた、ROM機能コマンド5を含む:、ROMに一致するROM、ROMジャンプ、ROMを読んで見つける警察を見つけます。
--- DS18B20外部電源は、外部電源VDDに接続することができ、寄生電力内で使用されてもよいです。ポートが接地されているときに、内部に寄生電源VDDを用いて、場合の電圧VDDに接続されたポートは、3.0V-5.5Vの外部電源です。内部または外部寄生電源、I / Oポート線は約5KΩのプルアップ抵抗に接続するかどうか。
---異なるコンフィギュレーションレジスタは、デジタル変換及び温度のビット数を決定するように構成される。R1を知ることができ、R0ビット温度がR1の異なる組み合わせによって決定され、R0は9、10、11、12温度表示するように構成されてもよいです。この変換は、ビット変換に対応する異なる温度で時間を知ることができ、4つの構成の解像度は0.5℃、0.25℃、0.125℃、0.0625度であった。】C、12ビットとして構成され工場内。
12に工場で構成DS18B20の温度を---読み取り、温度を読み取るとき、16ビットの合計が読み取り、符号ビットとして最初の5ビットは、現在5は、温度測定値が負であり、1であり、現在図5は、温度の読み取り値が正である、0です。温度読み取りタイミング方法は、10進数16進数に変換します。温度読み取りが負方法であって、反転ヘクスに1を加算し、小数を10に変換することができます。例:= 85度0550H、FC90H = -55度。
ポイントを使用
DS18B20、すなわち、データラインのデータに対して、双方向の単線バスプロトコルの送信モードを使用し、バスプロトコルは、シングルチップコンピュータハードウェアをサポートしていない、ソフトウェア方法は、チップを完了するために単一のバスプロトコルシーケンスをシミュレートするために使用されなければならないDS18B20アクセス。リードのでDS18B20 I / O線にデータを書き込み、それはデータ・ビットに厳密なタイミング要件を読み書きすることであり、それはビットデータ転送の正確性および完全性を保証するために厳密なプロトコルを有しています。タイミングを書き込み、初期化シーケンス、タイミングを読んで:契約は、いくつかの信号タイミングを定義します。すべてのタイミングは、マスタデバイスとしてスレーブデバイスとしてDS18B20 MCUであり、各コマンド及びデータの書き込みタイミングは、ホストの先頭からアクティブである送信、必要DS18B20ループバックデータと、ライトコマンド時に、ホストは、タイミングの読み取りを開始する必要がありますデータ受信の完了。
いくつかのアプリケーション回路
DS18B20ワイヤデジタル温度センサ・モジュール
寸法:高さの長さ28ミリメートルX 12ミリメートルX 10ミリメートル幅
第二に、メインチップ:18B20温度センサ
第三に、動作電圧:DC 5V
モジュールの機能
図1に示すように、解像度調整範囲:9-12ビット
2、インストールを容易にするための取付穴と、孔径:2.5
3、温度範囲:-55〜+ 125℃
図4に示すように、温度測定精度:0.5℃
5、動作電圧:DC5V
図6に示すように、デジタル信号出力
端子ピン
Arduinoの宇野<------> 18B20温度センサモジュール
のピン3 <------> OUT(S)
5V <------> VCC
GND <------> GND
検索、ダウンロードライブラリ-DallasTemperature
そして、後にライブラリをインストールし-OneWire
/ * 実験の[] Arduinoのシリーズ、センサモジュール108の種類(情報+ +グラフィック+シミュレーションコード) 実験三〇から九:DS18B20ワイヤデジタル温度センサモジュール * / の#include <OneWire.h> の#include <DallasTemperature.h> に#define 3 ONE_WIRE_BUS OneWire OneWire(ONE_WIRE_BUS); DallasTemperatureセンサ(&OneWire); ボイドセットアップ(ボイド) { Serial.begin(9600); Serial.println( "ICダラス温度コントロールライブラリデモ"); sensors.begin(); } ボイドループ(ボイド) { Serial.print( "要求...温度"); sensors.requestTemperatures(); Serial.println( "DONE"); Serial.print:( "ISための温度デバイス1") Serial.print( sensors.getTempCByIndex(0))。 遅延(500)。 }
タッチDS18B20、温度上昇