{{ :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/