私のDS18B20は高値を示しています。正しい温度に戻すにはどうすればよいですか?


10

自宅の暖房制御システムに取り組んでいますが、温度センサーの読み取り値が予想よりも高くなっています。

5V Arduino Mini Proクローンをリレーモジュール、HD47780ディスプレイ、Tiny RTCモジュールに接続し、DS18B20を接続しています。

DS18B20は、DQラインで寄生電力を使用するのではなく、Tiny RTCモジュールに適用された5v Vccから給電されます(Onewireライブラリがこの動作モードをサポートしているかどうかがわからなかったため)、DS18B20データシートには、Vccが3.0vおよび5.5v。私は、Mini Proが5.2vであることから、調整された電力を測定しました。

DSからの温度を、既存の室内サーモスタット(バイメタル)、2つのセンサーを備えたRSデスクトップ温度モニター、小さな「温湿度計」バイメタル冷蔵庫温度計(その温度の上部4分の1 )と比較しています範囲)。DSからの読み取り値は、他のセンサーからの読み取り値よりも常に1〜2度高く、互いに1度以内です。

†実際のものではなく、類似したもの。

さまざまなフォーラムを読んで、これらのセンサーは非常に正確であるが、近くのコンポーネントからの局所的な加熱の影響を受ける可能性があると聞いたので、センサーを20cmケーブルに移動し、他の電子機器から十分に離しました。これは違いがありませんでした。

次に、Vcc電圧が高すぎるとDSが自己発熱する可能性があることを読んだので、1.7vの電圧降下で赤いLEDを追加し、DSの新しい電圧を3.5vとして測定しましたが、再び待ってから温度をもう一度安定させるために、これは違いを生みませんでした。

なぜDSが高値を示しているのか、そしてこれを防ぐために私ができることは何ですか?


あなたはそれだけで1-2度を読んでいませんサーモスタットお部屋どのように自信を持っている低いですか?3番目の温度計を入手し、比較して、オフセットが実際にどこから来ているかを判断します。RS温度計は両方のセンサーに同じ読み取り電子回路を使用している可能性が高いため、2つの異なるキャリブレーション基準としてはあまり役に立ちません。
コナーウルフ2014年

回答:


9

多くのDS18B20センサーをさまざまなセンサーノード(おそらく50程度)に配置しました。彼らから返されたリーディングについて少し学びました。これらを原因ではないものとして隔離したことは知っていますが、それらが問題であることを確認することは良いことです。

摂氏と華氏のどちらを使用しているかはわかりません。そのため、問題の程度は明確ではありません。

局所加熱

私はArduinoを「ホット」チップとは考えていませんが、ArduinoとLCDを備えたエンクロージャーにDS18B20を置くと、予想よりも2〜3°C高い測定値が表示されました。

筐体の外に移動すると、これが修正されました。

高Vcc /頻繁な変換による加熱

チップに高いVccを供給し、変換を頻繁に(つまり、できるだけ頻繁に)実行すると、チップはウォームアップします。この測定値が1〜2°C上昇するのを見ました。

高Vccだけで問題が発生することはありませんが、ほとんどのDS18B20を寄生モードで動作させ、最大で10秒に1回変換します。アクティブモードで動作するものは、通常、使用されていないときは電源がオフになっています。

OneWireとDallasTemperatureは寄生モードをサポートします。

すべての温度センサーが同等に作成されているわけではありません

DS18B20をいじり始める前に、私はいくつかの温度センサーを持っていました。ほとんど例外なく、これらは過小評価されています。それらのほとんどはサーミスタに基づいており、キャリブレーションは不十分です。DS18B20は読みすぎだと思いましたが、優れた熱電対とメーターを使用すると、それらが正しいことを確認できました。

これはDS18B20を信頼することを学ぶことについてでした。

ワイヤーに沿って伝導される熱

センサーをワイヤー上に配置すると、ワイヤーは驚くべき量の熱を伝導します。これは、パイプに沿って配線を実行するときに問題になる可能性があります。

偽DS18B20

これらのセンサーは非常に人気があり、これにより偽物が出現したようです。オーバーリードしたステンレス製の防水センサーのバッチがあり、タイミングがずれていました。彼らはOneWireライブラリを使用しましたが、DS2482 OneWireマスターは使用しませんでした。通常のTO-92ケースも同様に偽物であると聞いています。


2

私の場合、uCとセンサー間の配線が短すぎて、熱を伝達していました。別の温度センサーが同じ距離で正確な温度を報告していたので、最初はそうではないと思いました。ボード上の別の場所に移動しました。


1

おそらく、センサーを調整する必要があるかもしれません。

沸騰したお湯に浸したとき(海抜を想定)は何を読みますか?102.5摂氏?これにより、-2.5Cの高温校正が得られます。

明らかに、私が測定することを期待する温度の周りで校正する方が良いです。つまり、いくつかの測定デバイスを信頼して(または平均化して?)、それを調整します。


1

3.3VバスでDS18B20を使用し、安定した5.0Vバスに切り替えると、数度のオフセットが見られ、より妥当な値が得られました。(寄生電力あり/なしでテスト)


それは興味深いものであり、感謝し、一部の人々が報告してきたこととは正反対です。これは別の偽のDS18B20の問題なのでしょうか。
Mark Booth

0

私はいくつかの実験を行いました。DS18B20が私のArduino Pro Microへの1cm未満の短いケーブル上にあった場合、測定値は環境よりも5度高くなりました。Arduinoボードから10cm以上のケーブル長で、抵抗がどこに取り付けられていても(Arduinoの近くまたはDS18B20の近く)、測定値は問題ありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.