{{ :wiki:arduino:ds18b20.png?100|DS18B20}} ====== Temperatur messung ====== Auf dieser Seite liste ich die Lösungen auf, die nur zur Temperaturmessung geeignet sind. Dort finden Sie Temperaturmessmodule in Kombination mit Feuchtemessungen wie dem [[de:arduino:humidity#si7021_modul|SI7021]]. ===== DS18B20 ===== {{anchor:ds18b20}} Der digitale Temperatursensor DS18B20 wurde von Maxim (ehemals Dallas) entwickelt. Der Sensor kommuniziert über einen 1-Draht-Bus und hat einen Messbereich von -55 ° C ~ 125 ° C. Es wurde im Wesentlichen zur Messung der Umgebungstemperatur (Lufttemperatur) entwickelt, dem häufigsten Sensor dieser Art in einer Arduino-Umgebung. Die auf dem DS18B20-Modul montierte Version heißt ** KY001 **: {{:wiki:arduino:ky001_sensor.jpg?200|KY001 Temperaturmodul}} {{ :wiki:arduino:ds18b20_packages.png?200|DS18B20 Kapselung}} ==== Spezifikation ==== * Messbereich: -55 ° C bis + 125 ° C (-67 ° F bis + 257 ° F) * Genauigkeit: ± 0,5 ° C / -10 ° C bis + 85 ° C. * Auflösung: programmierbare Auflösung von 9 bis 12 Bit * Anzahl der Drähte: Benötigt nur 2 Drähte im Parasitenmodus (DQ und GND) * Authentifizierung: Jeder Sensor verfügt über eine eindeutige 64-Bit-Kennung, die im ROM gespeichert ist * Parametrisierung: Flexible, benutzerdefinierbare, nichtflüchtige (NV) Alarmeinstellungen (mit dem Alarmsuchbefehl) * Kapselung: TO-92, SO, uSOP {{ :wiki:arduino:ds18b20-waterproof.png|DS18B20 mit Wasserdichtes Gehäuse}} ==== DS18B20 mit Wasserdichtes Gehäuse ==== Es gibt auch eine wasserdichte Version des Sensors, bei der die Verkabelung wie folgt ist: * schwarz: GND * weiß/gelb: DATA * rot: Vdd (5V+) Es ist eine gute Idee, diese Reihenfolge auch für die Anschlüsse beizubehalten (schwarz, weiß / gelb, rot), da Sie den Anschluss als Test durch einen "Barfuß" -IC ersetzen können, wenn etwas schief geht. Die Daten- und Vdd-Kabel (5 V +) müssen für jeden Modus an einen ** 4,7 k-Widerstand ** angeschlossen werden. ==== Parasitenmodus / Normalmodus ==== ^Normalmodus^Parasitenmodus| |{{:wiki:arduino:ds18b20_normal_mode.png?300|Normalmodus}}|{{:wiki:arduino:ds18b20_parasite_mode.png?300|Parasitenmodus}}| |Im normalen 3-Draht-Modus wird die Stromversorgung vom Vdd über ein Kabel bereitgestellt, das mit den Vdd-Pins der ICs verbunden ist.|Im Parasiten-2-Draht-Modus müssen die Vdd-Zweige der ICs mit GND verbunden sein, die Stromversorgung ist auf dem Datenkabel implementiert.| ==== Verdrahtung ==== {{:wiki:arduino:ds18b20_wire.png|DS18B20 Verdrahtung}} Das Bild oben zeigt den 3-Draht-Normalmodus-Anschluss eines Sensors. Die Daten- und Vdd-Drähte (5 V +) müssen für jeden Modus an einen 4,7-k-Widerstand angeschlossen werden. Wenn das Messergebnis -127 ist, stimmt etwas mit der Verbindung nicht. ==== herunterladbare Libraries ==== * oneWire.h : https://www.arduinolibraries.info/libraries/one-wire * dallasTemperature.h: https://github.com/milesburton/Arduino-Temperature-Control-Library ==== Github ==== https://github.com/milesburton/Arduino-Temperature-Control-Library \\ https://github.com/RobTillaart/Arduino/tree/master/libraries/DS18B20 \\ ==== Beispielprogramm ==== /********************************************************************/ // First we include the libraries #include #include /********************************************************************/ // Data wire is plugged into pin 2 on the Arduino #define ONE_WIRE_BUS 2 /********************************************************************/ // Setup a oneWire instance to communicate with any OneWire devices // (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); /********************************************************************/ // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); /********************************************************************/ void setup(void) { // start serial port Serial.begin(9600); Serial.println("Dallas Temperature IC Control Library Demo"); // Start up the library sensors.begin(); } void loop(void) { // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus /********************************************************************/ Serial.print(" Requesting temperatures..."); sensors.requestTemperatures(); // Send the command to get temperature readings Serial.println("DONE"); /********************************************************************/ Serial.print("Temperature is: "); Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? // You can have more than one DS18B20 on the same bus. // 0 refers to the first IC on the wire delay(1000); } ==== Quellen ==== https://www.tweaking4all.com/hardware/arduino/arduino-ds18b20-temperature-sensor/attachment/ds18b20-normal-power/ {{ :wiki:arduino:lm75a.png?150|LM75A}} ===== LM75A ===== {{anchor:lm75a}} Der LM75A ist ein digitales Temperatursensormodul mit einer Hochgeschwindigkeits-I²C-Schnittstelle. Das Modul verfügt über 4 Datenregister zur Einstellung der verschiedenen Betriebsarten. Auf dem OPEN-SMART-Modul mit LM75A (Bild oben rechts) können acht I²C-Adressen auf eine Einheit eingestellt (gelötet) werden. Das Modul bietet auch Schutz vor Überhitzung - was auch immer das bedeutet. Andere I²C-Module: [[hu:arduino:comm_example#arduino_i_c_kommunikacio|Arduino I²C-Module]] ==== Technische Details ==== - Kompatibilität: Arduino UNO R3 / Arduino Mega2560 \\ - Betriebsspannung: 2,8..5,5 V DC \\ - Stromaufnahme: 2mA (max) \\ - Schnittstelle: Standardschnittstelle [[de:arduino:start#arduino_i_c|I²C]] \\ - Auflösung: 0,125 °C \\ - Messbereich: -55 ~ 125 °C \\ - Genauigkeit: ± 2 °C -25 ~ + 100 °C; ± 3 °C -55 ~ + 125 °C \\ ==== Schaltplan des LM75A ==== {{:wiki:arduino:lm75a_schema.png|Schaltplan des LM75A}} ==== Adressierung des LM75A ==== {{:wiki:arduino:lm75a_adr.png|Adressierung des LM75A}} ==== LM75A Software ==== https://github.com/QuentinCG/Arduino-LM75A-Temperature-Sensor-Library ===== Thermistoren ===== {{ :wiki:arduino:ky013.png?120|Analoges Thermistorthermometer-Modul KY-013}} ==== Analoges Thermistorthermometer-Modul KY-013 ==== Das analoge Temperatursensormodul KY-013 besteht aus einem NTC-Thermistor und einem 10-kΩ-Widerstand. Der Widerstand des Thermistors variiert in Abhängigkeit von der Umgebungstemperatur. Die //Steinhart-Hart-Gleichung// wird verwendet, um die Temperatur des Thermistors genau zu bestimmen. **Technische Details:** * Betriebsspannung: 5V DC * Temperaturmessbereich: -55 °C bis 125 °C [-67 °F bis 257 °F] * Messgenauigkeit: ± 0,5 °C. ==== Verdrahtung von KY-013 ==== {{:wiki:arduino:ky013_wiring.png?400|Verdrahtung von KY-013}} * S: Pin A0 * Mitte: 5V DC * -: GND ==== Software ==== Das folgende Arduino-Programm berechnet die Thermistortemperatur unter Verwendung der //Steinhart-Hart//-Gleichung, die in der Funktion "//Thermister//" implementiert ist. #include double Thermister(int RawADC) { double Temp; Temp = log(((10240000/RawADC) - 10000)); Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp ); Temp = Temp - 273.15; // konvertiere Kelvin in Celsius return Temp; } void setup() { Serial.begin(9600); } void loop() { Serial.print(Thermister(analogRead(0))); // pin A0 lesen Serial.println("c"); delay(500); } ==== Quelle ==== http://arduinomodules.info/ky-013-analog-temperature-sensor-module/