利用可能なさまざまな湿度および温度センサーがあります。 LM35。 Arduinoで特定に使用するためのモジュールに組み込まれているものもあります。 しかし、一般的に、それらは乾球温度、つまり気温を測定することです。 しかし、のために働く具体的なモデルがあります 液体の温度を測定し、DS18B20と呼ばれます。 このパラメータを知る必要があるある種の液体で遊ぶ、よりエキゾチックなDIYプロジェクトのいくつかに役立つ可能性のある特殊性。
実際、DS18B20は液体内の温度を測定するだけでなく、液体の温度を測定するのに非常に役立ちます。 湿気の多い環境および液体の下。 そのため、環境に湿度が非常に高い場合は、気温の測定にも使用できます。 そして、私が言ったように、その温度を測定するためにそれを液体に浸すことができるという特徴は、それを信じられないほど実用的にする特徴のXNUMXつです。
DS18B20とは何ですか?
さて、それはすでにかなり明確になっていると思います、それは気体または液体の媒体の温度を測定することができる電子センサーです。 また、 異なるパッケージまたはDS18B20のパッケージ、メイン画像に表示されている基本的なものなど、または一部のPCB、水中プローブなどに統合することもできます。 プロジェクトには、必要に応じて最適な形式を選択する必要があります。
たとえば、一般的なTO-92の他に、microSOPもあります。 おそらく統合する Arduinoで最も適切なのはTO-92です。 XNUMXつのピンがあるので、接続のためにブレッドボードに挿入するのは非常に簡単です。
ピン配置
El DS18B20のピン配置 簡単に識別できます。 たとえば、最も人気のあるダラスTO-92パッケージを参考にすると、1つのピンがあることがわかります。 正面から、つまり丸みを帯びた部分を後ろに置き、刻印のある平らな面を見ると、左側のピンが3、右側のピンが1です。したがって、2はGND用になります。またはグランド、3はデータ用、XNUMXは供給電圧用です。
ここで私たちはそれを言わなければなりません、 あなたが知っておくべき価値:
- ピン1:ArduinoのGNDピン、つまり0vに接続する必要があります。
- ピン2:このピンはDQまたはデータであり、センサーによって測定された温度を1-Wireと呼ばれる特定のプロトコルを介してArduinoに送信し、ArduinoIDE用の特別なライブラリと機能を必要とします。 これにより、XNUMXつのArduinoピンのみを使用してこのプロトコルで複数のセンサーを接続できます...
- ピン3:3〜5,5vで電力を供給できるため、Arduinoの5v出力に接続できます。
DS18B20の技術的特性とデータシート
いつものように、 技術的特徴を知るのは興味深い センサーを損傷しないように、そして何よりも測定限界がどこにあるかを知るために、センサーの動作を知るために、測定したい値がそれらの間にない場合、それは私たちと別の選択肢を探す必要があります。
これを行うには、ダウンロードするのが最善です メーカーデータシート、ダラスのもののように あなたはここで見ることができます。 そこに必要なすべての情報があります。 また、すべてのDS18B20は類似している場合がありますが、製造元またはパッケージによっては、いくつかの変更が見つかる場合があることを忘れないでください...
しかし、癖に関係なく、ここにいくつかあります 基本的な技術データ:
- 温度範囲:-55〜125ºC、したがって、非常に低温および高温の気体または液体で測定できます。
- 間違い:DS18B20は、測定で誤った値を与える可能性のある外部ノイズまたは外乱に敏感です。 誤差のマージンはプラスマイナス2ºCですが、-10ºCから85ºCの間の温度では、つまり、限界に近づかない場合は、わずかXNUMX度になる可能性があります。
- 分解能:Arduinoアナログピンで検出できるいくつかの解像度または最小限の変動で作業できます。 9ビット、10ビット、11ビット、および12ビット(デフォルト)をサポートします。 つまり、それぞれ0,125〜0,125度、0,0625 / XNUMX〜XNUMX / XNUMX度、XNUMX〜XNUMXºC、またはXNUMXºCで測定できます。 このプログラミングは、プログラミングコードを介して変更できます。
- 供給電圧:3〜5,5v
- 価格:1〜3€
Arduinoとの統合
ありますが それを接続するさまざまな方法、最も適切なのは、この図に示されているものです。 Arduinoボードの対応する接続にGNDピンがあり、電源は同じで、ArduinoIDEのプログラミングコードで選択したArduinoアナログへのデータを使用するのは非常に簡単です。 ただし、4,7kのプルアップ抵抗を設定することもお勧めします(センサープローブケーブルの距離が大きい場合は、抵抗を低くする必要があります。たとえば、5kの3,3m、10の2,2、XNUMXkなど)。データピン用であるため、常にハイに保ちます。
のために ArduinoIDEでのプログラミング DS18B20およびその非常に特殊なプロトコルとの良好な統合のため、ライブラリをダウンロードすることをお勧めします ダラスの気温 y OneWire 環境から。 そして基本コード、それは私が示すこの例のようなものである可能性があります:
#include <OneWire.h> #include <DallasTemperature.h> // Pin donde se conecta el bus 1-Wire (DQ) const int pinDatosDQ = 9; // Instancia a las clases OneWire y DallasTemperature OneWire oneWireObjeto(pinDatosDQ); DallasTemperature sensorDS18B20(&oneWireObjeto); void setup() { // Iniciamos la comunicación serie a 9600 baudios Serial.begin(9600); // Iniciamos el bus 1-Wire del sensor sensorDS18B20.begin(); } void loop() { // Indicamos que tome la temperatura Serial.println("Midiendo temperatura"); sensorDS18B20.requestTemperatures(); // Lee y muestra la temperatura (recuerda que puedes conectar más de uno con 1-wire) Serial.print("La temperatura del sensor 0 es de: "); Serial.print(sensorDS18B20.getTempCByIndex(0)); Serial.println(" C"); Serial.print("La temperatura del sensor x es de: "); Serial.print(sensorDS18B20.getTempCByIndex(1)); Serial.println(" ºC"); delay(1000); }
詳しくは - Arduinoプログラミングマニュアル(無料PDF)