温度センサー技術

DS18B20 デジタル温度センサーを使用したデジタル温度計の作成

DS18B20 温度センサーデジタル温度計プローブ + ターミナルアダプターモジュール ワイヤーセット付

導入: この記事では、デジタル温度計の構築におけるカスタム DS18B20 デジタル温度センサーのアプリケーションについて詳しく説明します。. 動作原理も含めて, ハードウェア接続, ソフトウェアプログラミングとシミュレーションの実装. 完全なタンパク質シミュレーション図を提供する, C ソース コードと結果分析により、読者が DS18B20 の使用を深く理解し、実践できるようになります。.

パラメータ情報: 電源: 3.0V – 5.5V; 調整可能な解像度: 9 – 12 少し; 温度範囲: -55 ℃to +125 ℃; 出力 : 赤 (VCC), 黄色 (データ), 黒 (GND);
得られるもの: あなたは得るでしょう 4 DS18B20 温度センサー, 4 アダプターモジュールと 4 メスからメスへのジャンパー線; アダプタモジュールにはプルアップ抵抗が付いています, 外部抵抗なしでRaspberry Piと互換性があります;
DS18B20温度センサー: ステンレス鋼の住宅のサイズは約です. 6 × 50 mm/ 0.2 × 2 インチ, そして、デジタル温度サーマルケーブルの全長は約. 1 M/ 39.4 インチ, これはあなたのニーズを満たすのに十分な長さです;
高品質の素材: プローブは高品質のステンレス鋼素材で作られています, どれが防水ですか, 防湿性があり錆びにくい, 短絡を防ぐため;
幅広い用途: この DS18B20 温度センサーは Raspberry Pi と互換性があります, ケーブルトレンチの温度監視に広く適用されています, ボイラー, 何, 農業温室, クリーンルーム, 等.

DS18B20 温度センサー -55 に +125 摂氏, ラズベリーパイと互換性あり

DS18B20 温度センサー -55 に +125 摂氏, ラズベリーパイと互換性あり

表面実装 DS18B20 デジタル温度センサー防水プローブ

表面実装 DS18B20 デジタル温度センサー防水プローブ

DS18B20 温度センサーデジタル温度計プローブ + ターミナルアダプターモジュール ワイヤーセット付

DS18B20 温度センサーデジタル温度計プローブ + ターミナルアダプターモジュール ワイヤーセット付

1. DS18B20センサー特性
DS18B20 センサーは、最新の温度監視の分野で重要な役割を果たします. 高精度な温度測定が可能, 必要に応じて解像度を調整できます, さまざまな精度の温度監視を実現するため. 加えて, DS18B20 はサイズが小さいため、スペースが限られた環境での使用に適しています。, 使いやすい特性により、初心者から専門家まで技術的な敷居が低くなります。.

DS18B20のパフォーマンスパラメータをさらに調べる前に, まずその動作原理を理解する必要があります. DS18B20 はデジタル信号を通じて温度データを通信します, 温度データの収集に利便性をもたらします. 従来のアナログ温度センサーとの比較, DS18B20 などのデジタル センサーは、より正確な読み取り値を提供でき、信号送信中のノイズの影響を受けにくくなります。.

DS18B20のメリットを最大限に活かすために, そのパフォーマンスパラメータを深く理解する必要があります. これらのパラメータには温度測定範囲が含まれます, 正確さ, 解決, および電源電圧. これらのパラメータは、DS18B20 が特定のアプリケーションのニーズを満たせるかどうかを決定するだけではありません, しかし、システム全体のパフォーマンスと信頼性にも影響します。.

この章では, DS18B20の性能パラメータを詳しく紹介します, その動作原理を分析する, さまざまな用途でその利点を探ります. これらのコンテンツを通じて, 読者は DS18B20 センサーについてより深く理解し、その後のより複雑なアプリケーションやプログラミングのための強固な基盤を築くことができます。.

2. DS18B20の1-Wire通信プロトコルの詳細説明
DS18B20 センサーが広く使用されている理由は、その独自の通信プロトコルによるところが大きい – 1-有線通信プロトコル. このプロトコルはハードウェア接続の要件を簡素化し、データを送信する効率的な方法を提供します。. この章では、1 ライン通信プロトコルの動作メカニズムとデータ交換プロセスを深く分析し、その後のプログラミング実践のための強固な基盤を築きます。.
2.1 1-Wire通信プロトコルの基礎
2.1.1 1-Wire通信プロトコルの特徴:
DS18B20 1-Wire 通信プロトコルとも呼ばれます “シングルバス” テクノロジー. 以下のような特徴があります: – シングルバス通信: 双方向データ伝送には 1 本のデータ ラインのみが使用されます, 従来の多線式センサー通信方式と比べて、配線の複雑さが大幅に軽減されます。. – マルチデバイス接続: 1 つのデータ バス上で複数のデバイスの接続をサポート, デバイス識別コードを介して識別および通信します. – 低消費電力: コミュニケーション中, 通信に参加していないとき、デバイスは低電力スタンバイ状態になる可能性があります. – 高精度: データ通信時間が短縮されることで、, 外部干渉を軽減し、データの精度を向上させることができます.
2.1.2 1線式通信のデータフォーマットとタイミング解析
1-wire 通信プロトコルのデータ形式は特定のタイミング規則に従います。. 初期化タイミングも含む, 書き込みタイミングと読み出しタイミング:
初期化のタイミング: ホストが最初に存在検出タイミングを開始します (プレゼンスパルス) バスを一定時間停車させることで, センサーは応答としてプレゼンスパルスを送信します.
書き込みタイミング: ホストが書き込みタイミングを送信したとき, まずバスを約1時間停止させます 1-15 マイクロ秒, その後バスを解放します, そしてセンサーがバスを引き下げます 60-120 応答までのマイクロ秒.
読み出しタイミング: ホストは、バスをプルダウンして解放することで、センサーにデータを送信するように通知します。, センサーは一定の遅延後にデータ ビットをバス上に出力します。.

3. 温度計ハードウェアの接続方法
ハードウェア接続は、デジタル体温計を構築する際の最初で最も重要なステップです. DS18B20 センサーとマイクロコントローラーを正しく接続すると、正確なデータ送信が保証され、さらなるソフトウェア プログラミングとデータ処理のための強固な基盤が提供されます。. この章では、DS18B20とマイクロコントローラー間のインターフェース設計原則と回路接続の具体的な手順を詳しく紹介します。, 電源と信号調整の関連内容をカバーします。.
3.1 DS18B20とマイクロコントローラー間のインターフェース
3.1.1 インターフェース回路の設計原則
DS18B20 のインターフェイス回路設計は、デバイスの安定した効率的な動作を保証するために、いくつかの基本原則に従う必要があります。:
安定した電力供給: DS18B20はデータラインから電力を得ることができます “DQ” (呼ばれた “寄生電力モード”), または、外部電源から独立して電力を供給することもできます. どの方法を使用するかに関係なく、, 電源変動によるデータ伝送エラーを防ぐために、電源は安定している必要があります。.
シグナルインテグリティ: DS18B20は1本の回線でデータを伝送するため、, シグナルインテグリティは特に重要です. 信号の耐干渉性と信号の電気的特性の整合性を考慮する必要があります。.
回路保護: 過電流保護と静電気放電 (ESD) センサーやマイクロコントローラーへの損傷を避けるために、回路設計に保護措置を組み込む必要があります。.

3.1.2 回路接続の具体的な手順
DS18B20 をマイクロコントローラーに接続するには、通常次の手順に従います。:
電源接続: DS18B20 の VDD ピンを 3.3V または 5V 電源に接続します。 (マイクロコントローラーの電圧レベルに応じて), GNDピンをグランドラインに接続.
データライン接続: DQ ピンはマイクロコントローラーのデジタル I/O ピンに接続されます。. データ通信の安定性を確保するため, データラインと電源の間にプルアップ抵抗を追加できます。, 代表値は4.7kΩ~10kΩ.
リセットおよびプレゼンスパルスピンの処理: 通常, リセットピン (RST) および存在パルスピン (パー) DS18B20のは外部接続する必要はありません, それらは内部で使用される信号です.

このセクションでは, DS18B20温度センサーをマイクロコントローラーに接続できる基本回路を設計しました。. 以下は、Arduino Uno に基づく回路図の例と対応する説明です。:

フローチャート LR
DS18B20 — |VDD| 5V
DS18B20 — |GND| GND
DS18B20 — |DQ| 2
DQ — |プルアップ| 5V

その中で, DS18B20 はデジタル温度センサーを表します, 5V はマイクロコントローラーの電力出力です, GNDはアース線です, そして 2 Arduinoのピン番号を表します. 2, データ送信に使用される. DQ と 5V の間の接続はプルアップ抵抗を表します.


3.2 電源と信号調整
3.2.1 選べる電源供給方式
DS18B20 は 2 つの電源供給方法を提供します:
寄生電力モード: このモードでは, データライン (DQ) データを送信できるだけではない, DS18B20にも電力を供給します. 現時点では, 十分な電源電流を確保するには、データラインの高レベル電圧は少なくとも 3.0V である必要があります。. このモードは通常、バスの長さが短く、データ送信の頻度がそれほど高くない場合に使用されます。.

外部電源モード: このモードでは, DS18B20 には独立した電源入力 VDD があります. 外部電源を使用して電力を供給すると、センサーの信号強度が強化され、耐干渉能力が向上します。, 長距離伝送や頻繁なデータ伝送に適しています。.

3.2.2 信号のフィルタリングと安定化
信号の安定性と正確なデータ読み取りを確保するために, 信号は適切にフィルタリングされ、安定化される必要があります:
プルアップ抵抗: プルアップ抵抗はデータラインと電源の間に追加され、アイドル時にデータラインがハイレベル状態になるようにします。.
デジッター回路: 配線干渉や瞬時電圧変動による誤読取りをなくすため, 信号はマイクロコントローラー側でソフトウェアでジッター除去できます。.
ESD保護: ESD保護コンポーネント (TVSダイオードなど) 静電気放電による損傷を防ぐために、センサーとマイクロコントローラーのポートに追加されます。.

このセクションでは、電源と信号調整を選択する際に考慮すべき要素を表形式でさらに詳しく説明します。:
| プロジェクト | 寄生電力モード | 外部電源モード | 説明 | | — | — | — | — | | 該当するシナリオ | 短い線, 頻度の低いデータ | 長い行列, 頻繁なデータ | 実際のアプリケーションシナリオに応じて選択してください | | 電源の安定性 | より低い | より高い | 長い回線や高周波の場合は外部電源を推奨します | | 料金 | より低い | より高い | 外部電源には追加の電源管理コンポーネントが必要です | | 干渉防止 | 弱い | より強力な | 外部電源は高干渉環境により適しています |

上記の接続方法と信号処理戦略により、DS18B20 温度センサーをあらゆるマイクロコントローラー システムに効果的に統合できます。. 次の章では、C言語を使用して次のことを行う方法を紹介します。:


DS18B20の関数型プログラミング演習:
4. DS18B20 デジタル温度計 C言語プログラミング
4.1 プログラミングの基礎と環境準備
4.1.1 プログラム設計の考え方と枠組み構築
DS18B20デジタル温度計のC言語プログラムを書き始める前に, まずプログラム設計の基本的な考え方を確立する必要があります. DS18B20 センサーは、1 線式通信プロトコルを通じてマイクロコントローラーと通信します。. したがって, プログラムの主なタスクは、1-wire 通信プロトコルの関連操作を実装することです。, DS18B20の初期化を含む, 指示の送信, 温度データの読み取り, 読み取ったデータを変換して表示する.

プログラムの枠組みは大きく以下の部分に分かれています:
初期化: マイクロコントローラーとDS18B20センサーを初期化する.
メインループ: センサーデータを継続的に読み取るループが含まれています.
1-有線通信機能ライブラリ: One-Wire通信プロトコルを実装するための機能が含まれています.

データ処理: センサーから返された生データを読み取り可能な温度値に変換します。.
表示出力: 処理された温度データを LCD 画面に表示するか、シリアルポート経由でコンピュータに出力します。.

ステンレス鋼防水 DS18b20 温度プローブ 1-Wire 1, 2, 5 メートル

ステンレス鋼防水 DS18b20 温度プローブ 1-Wire 1, 2, 5 メートル

DS18B20 1-Wire デジタル温度センサー

DS18B20 1-Wire デジタル温度センサー

DS18B20 温度センサーモジュールキット (付属) 1 m-3.2 フィートの防水デジタル ステンレス鋼プローブ

DS18B20 温度センサーモジュールキット (付属) 1 m-3.2 フィートの防水デジタル ステンレス鋼プローブ

4.1.2 開発環境の構築と設定
DS18B20デジタル温度計をプログラムして開発するには, 開発環境を準備し、適切に構成する必要があります. 開発の基本的な手順は次のとおりです:

開発環境を選択する: 適切な統合開発環境を選択する (IDE) マイコンの種類に応じて, ARM Cortex-Mシリーズマイクロコントローラベースの開発など. Keil MDK または STM32CubeIDE を使用できます.

コンパイラを設定する: 使用するIDEによると, C 言語コードが正しくコンパイルできるようにコンパイラーを構成します。.
ハードウェア開発ボードを構築する: 適切なマイクロコントローラー開発ボードを選択してください, STM32ベースなど, ESP32, 等.
開発ボードを接続する: 1 線通信プロトコルを介して DS18B20 センサーをマイクロコントローラーの指定されたピンに接続します。.
コードを書く: IDE で新しい C 言語プロジェクトを作成し、プログラム コードの作成を開始します。.
コンパイルとデバッグ: IDE ツールを使用してコードをコンパイルし、デバッグのために開発ボード上で実行します。.

#含む <stdio.h>

// DS18B20 1行目の通信関数ライブラリ宣言
void ds18b20_init();
void DS18B20_Reset();
void DS18B20_WriteByte(符号なし文字データ);
符号なし文字 DS18B20_ReadByte();
int DS18B20_ReadTemperature();

int main() {
// DS18B20センサーの初期化
DS18b20_init();
// メインループ
その間(1) {
// 温度値の読み取り
内部温度 = DS18B20_ReadTemperature();
// 温度値をシリアルポートまたは他の表示デバイスに出力します
printf(“現在の温度: %d\n”, 温度);
}
戻る 0;
}


4.2 DS18B20 温度読み取りプログラムの実装
4.2.1 1線式通信機能ライブラリの構築
DS18B20の温度読み取りを実現するには, 最初に 1 線式通信関数ライブラリを構築する必要があります. 以下は、いくつかの主要な機能の実装方法です。:

DS18b20_init(): One-Wire通信タイミングの初期化.
DS18B20_リセット(): センサーをリセットしてパルスを検出します.
DS18B20_WRITEBYTE(符号なし文字データ): センサーにバイトのデータを書き込みます.
DS18B20_ReadByte(): センサーからバイトのデータを読み取ります.
DS18B20_ReadTemperature(): 温度を読み取り、変換します.

DS18B20の単線通信関数ライブラリの実装は、単線通信プロトコルに従うためにピンレベルの変更を正確に制御する必要があるため、非常に複雑です。. 以下は関数実装の例です:
void DS18B20_Reset() {
// 単線通信リセットシーケンス, データラインのプルダウンを含む, 遅れ, バスを解放する, 存在パルスの検出
// …
}

この機能の目的は、リセット パルスを DS18B20 に送信することです。. リセット成功後, DS18B20 はプレゼンスパルスを返します.


4.2.2 温度読み取りアルゴリズムの実装
DS18B20 センサーの温度値の読み取りはより複雑なプロセスです, センサーに特定のタイミングで特定の命令を送り、返されたデータを正しく読み取る必要があるため. 温度値を読み取るアルゴリズムは次のとおりです。:

センサーをリセットする.
を送信します “ローマの船” 指示 (0XCC).
を送信します “温度を変換する” 指示 (0x44).
変換が完了するまで待ちます.
を送信します “レジスタの読み取り” 指示 (0xbe).
2バイトの温度データを読み取ります.

次のコードは、DS18B20 の温度値を読み取る方法を示しています。:

int DS18B20_ReadTemperature() {
符号なし文字 temp_low, temp_high;
符号なし整数の一時値;

// センサーをリセットし、ROM 命令をスキップします
DS18B20_リセット();
DS18B20_WRITEBYTE(0XCC); // ROMコマンドをスキップする
// 変換温度コマンドを送信
DS18B20_WRITEBYTE(0x44);
// 変換が完了するまで待ちます. ここでは、DS18B20の変換時間に応じて待つ必要があります
// …

// センサーをリセットして温度データを読み取ります
DS18B20_リセット();
DS18B20_WRITEBYTE(0XCC); // ROMコマンドをスキップする
DS18B20_WRITEBYTE(0xbe); // レジスタ読み出しコマンド

// 2バイトのデータを読み取ります
temp_low = DS18B20_ReadByte();
temp_high = DS18B20_ReadByte();
// 2 バイトのデータを 16 ビット整数に結合します。
温度 = (temp_high << 8) | temp_low;
// 温度値を返す, DS18B20の解像度に基づいて適切に変換します
一時を返します;
}


4.2.3 プログラムのデバッグと例外処理

DS18B20読み込みプログラムを書く場合, プログラムのデバッグと例外処理は非常に重要です. デバッグ中, 出力温度値が正しいかどうかを確認するには、シリアル ポート デバッグ アシスタントを使用する必要がある場合があります。, または、ロジック アナライザーを使用して、第一線通信の信号タイミングを監視します。. 例外処理ではハードウェア障害を考慮する必要がある, 通信エラー, DS18B20の異常反応と.

以下に、デバッグおよび例外処理の戦略をいくつか示します。:

データ検証: 各データの読み取り後, チェックサムまたはチェックビットを使用してデータの正しさを確認する.
例外キャプチャ: 例外キャプチャ機構をプログラムに追加する, タイムアウト再試行メカニズムなど, センサーをリセットする, 等.
デバッグ情報: 問題の特定に役立つ十分なデバッグ情報出力をプログラムに追加します。.
int main() {
// DS18B20センサーの初期化
DS18b20_init();
// メインループ
その間(1) {
内部温度;
// 温度を読み取り、エラーをチェックする
温度 = DS18B20_ReadTemperature();
もし (温度 < 0) {
printf(“温度読み取りエラー!\n”);
// 再試行または他のエラー処理メカニズムを選択できます
} それ以外 {
printf(“現在の温度: %d\n”, 温度);
}
}
戻る 0;
}

この章では、C 言語プログラミングの基礎と DS18B20 デジタル温度計の環境準備について説明します。, 温度読み取りプログラムの実装だけでなく, プログラムのデバッグと例外処理の重要性を強調します。. この章の導入を通して, 読者は開発環境を構築できるはずです, 第一線コミュニケーション関数ライブラリの重要性を理解する, 基本的な温度読み取りプログラムを作成します. 次の章では、Proteus シミュレーション環境の構築と使用についてさらに詳しく説明します。, 実際のハードウェアアセンブリに対するシミュレーションテスト手法を提供.


5. Proteusのシミュレーション図とシミュレーション結果の分析
5.1 Proteusシミュレーション環境構築
5.1.1 Proteus ソフトウェアの基本操作
DS18B20 デジタル温度計のシミュレーション モデルの構築を開始する前に, まず、Proteus ソフトウェアの基本操作を理解して習得する必要があります. Proteus は、回路図を設計するだけでなく、強力な電子回路シミュレーション ソフトウェアです。, 回路 PCB レイアウトの設計やシミュレーション機能も提供します. Proteus の使用を開始するための重要な手順をいくつか示します。:

Proteus ソフトウェアを開き、新しいプロジェクトを作成します.
コンポーネント ライブラリで必要なコンポーネントを検索して選択します, DS18B20センサーなど, マイクロコントローラー, 電源, 接続ワイヤー, 等.
選択したコンポーネントを設計領域にドラッグし、マウスを使用して配置およびレイアウトします。.
配線ツールを使用して各コンポーネントのピンを接続し、完全な回路を形成します.
コンポーネントまたはワイヤをダブルクリックして、そのプロパティを変更します, 抵抗値など, 電源電圧, 等.

すべてのコンポーネントが正しく接続されていることを確認し、エラーや欠落がないか確認してください。.

5.1.2 DS18B20 シミュレーション プロジェクトを作成する
DS18B20 デジタル温度計のシミュレーション プロジェクトを作成する手順は次のとおりです。:

Proteus を起動して選択します “新しいプロジェクト” 新しいプロジェクトを作成するには.
プロジェクト名と場所を設定したら, クリック “次”.
プロジェクトテンプレートを選択してください, のような “マイクロプロセッサベース”, そしてクリックしてください “次”.
で “プロジェクトアイテム” タブ, チェック “デフォルトのコンポーネントを含める” マイクロコントローラーを選択します (PICなど, AVR, 等) DS18B20センサー.
クリック “仕上げる” プロジェクトの作成を完了するには.

次, 回路図を作成する:
を選択します。 “ピックデバイス” 道具, コンポーネント ライブラリでマイクロコントローラーと DS18B20 センサーを見つけて選択します.
を使用します。 “デバイスを配置する” 選択したコンポーネントを設計領域に配置するツール.
を使用します。 “ワイヤー” マイクロコントローラーと DS18B20 センサーの関連ピンを接続するツール.
接続完了後, を使用してください “文章” 理解と変更を容易にするために回路図に注釈を追加するツール.

5.2 シミュレーションテストとデータ分析
5.2.1 シミュレーションパラメータと条件を設定する
シミュレーションを始める前に, シミュレーション実行のパラメータと条件を設定する必要があります:
マイクロコントローラーコンポーネントをダブルクリックして、プロパティ設定インターフェイスに入ります.
以前に書き込んだプログラム ファイルのパスを選択します。 “プログラムファイル”.
電源パラメータを設定して、マイクロコントローラーと DS18B20 センサーの両方に正しい電源電圧が供給されるようにします。.
次, シミュレーションの時間パラメータを設定する:
シミュレーションコントロールパネル内, 選択する “グローバル設定”.
シミュレーション速度と最大シミュレーション時間を調整する.
シミュレーションプロセス中にデータを分析するために適切なブレークポイントを設定します。.

5.2.2 温度データのシミュレーションと読み取り
シミュレーションを実行して温度データをシミュレートする:
をクリックします。 “遊ぶ” シミュレーションコントロールパネルのボタンをクリックしてシミュレーションを開始します.
を使用します。 “デバッグ” プログラムの実行ステータスと変数値を表示するツール.
DS18B20 センサーをシミュレートして温度値を読み取ります, これは通常、シミュレーション環境で仮想温度計を変更することで実現されます。.

シミュレーションで温度データを読み取るには, 次の手順を参照してください:
DS18B20 コンポーネントのプロパティで温度シミュレーション設定を見つけます。.
温度値を変更して、さまざまな温度条件下でシステムの応答をテストします。.
マイクロコントローラー プログラムが温度データをどのように処理するかを観察します。.

5.2.3 結果の分析とトラブルシューティング
シミュレーション結果を分析し、温度計の性能を確認する:
出力ウィンドウのデータを監視して、温度の読み取り値が正確かどうかを確認します.
ロジックアナライザツールを使用して、データ通信プロセスが正常であるかどうかを監視します.
異常な信号や不安定な出力がないか確認してください.

障害診断とデバッグを実行する:
温度測定値が不正確またはエラーがある場合, DS18B20の接続方法と構成を確認してください.
プログラム コードを分析して、第一線の通信およびデータ変換アルゴリズムが正しく実装されていることを確認します。.
を使用します。 “停止” シミュレーションを一時停止してシステムの現在のステータスを観察するシミュレーション ソフトウェアの機能.