de:arduino:temperature

No renderer 'pdf' found for mode 'pdf'

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 SI7021.

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 :

KY001 Temperaturmodul

DS18B20 Kapselung

  • 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

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.

NormalmodusParasitenmodus
NormalmodusParasitenmodus
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.

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.

/********************************************************************/
// First we include the libraries
#include <OneWire.h> 
#include <DallasTemperature.h>
/********************************************************************/
// 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); 
}

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: Arduino I²C-Module

- Kompatibilität: Arduino UNO R3 / Arduino Mega2560
- Betriebsspannung: 2,8..5,5 V DC
- Stromaufnahme: 2mA (max)
- Schnittstelle: Standardschnittstelle 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

Adressierung des LM75A

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

  • S: Pin A0
  • Mitte: 5V DC
  • -: GND

Das folgende Arduino-Programm berechnet die Thermistortemperatur unter Verwendung der Steinhart-Hart-Gleichung, die in der Funktion Thermister implementiert ist.

#include <math.h>
 
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);
}
  • de/arduino/temperature.txt
  • 2022/04/21 15:00
  • ()