DS1820 Temperatursensor 1-Wire: Unterschied zwischen den Versionen

Aus Arduino Hannover
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
#'''Temperatursensor 1-Wire DS1820'''#
+
==Temperatursensor 1-Wire DS1820==
 
Von diesen Maxim (vormals Dallas) 1-Wire Temperatursensoren stehen gleich mehrere Versionen zur Verfügung, die sich in Genauigkeit, der maximal erreichbaren Auflösung wie auch durch die Registerzugriffe z. T. erheblich unterscheiden. Der Sensor DS1820 ist die ältere Ausgabe des DS18'''S'''20.
 
Von diesen Maxim (vormals Dallas) 1-Wire Temperatursensoren stehen gleich mehrere Versionen zur Verfügung, die sich in Genauigkeit, der maximal erreichbaren Auflösung wie auch durch die Registerzugriffe z. T. erheblich unterscheiden. Der Sensor DS1820 ist die ältere Ausgabe des DS18'''S'''20.
 
[[Datei:DS18B20.gif|frame]]  
 
[[Datei:DS18B20.gif|frame]]  
Zeile 5: Zeile 5:
 
Die Versorgungsspannung kann in einem weiten Bereich zwischen 3.0V und 5.5V gewählt werden.
 
Die Versorgungsspannung kann in einem weiten Bereich zwischen 3.0V und 5.5V gewählt werden.
  
Für diese 1-Wire Temperatursensoren DS18xx muss vor Beginn der Programmierung zuerst einmal die hier verwendete OneWire Library von Paul Stoffregen für die Arduino IDE aus dem Internet heruntergeladen und entpackt werden. Der ausgepackte Ordner muss anschließend unter Windows 7 zum Beispiel nur noch in den Pfad Benutzer\ <Eigener Benutzername>\Arduino\libraries kopiert werden. Sollte die Arduino Entwickl-ungs¬umgebung bereits geöffnet gewesen sein, muss diese jetzt einmal neu gestartet werden, damit die neue Bibliothek auch erkannt wird und eingebunden werden kann.
+
Für diese 1-Wire Temperatursensoren DS18xx muss vor Beginn der Programmierung zuerst einmal die hier verwendete OneWire Library von Paul Stoffregen für die Arduino IDE aus dem Internet heruntergeladen und entpackt werden. Der ausgepackte Ordner muss anschließend unter Windows 7 zum Beispiel nur noch in den Pfad Benutzer\ <Eigener Benutzername>\Arduino\libraries kopiert werden. Sollte die Arduino Entwicklungsumgebung bereits geöffnet gewesen sein, muss diese jetzt einmal neu gestartet werden, damit die neue Bibliothek auch erkannt wird und eingebunden werden kann.
  
 
Folgende 10 Kommandos werden durch die Library zur Verfügung gestellt:
 
Folgende 10 Kommandos werden durch die Library zur Verfügung gestellt:

Version vom 21. November 2015, 16:37 Uhr

Temperatursensor 1-Wire DS1820

Von diesen Maxim (vormals Dallas) 1-Wire Temperatursensoren stehen gleich mehrere Versionen zur Verfügung, die sich in Genauigkeit, der maximal erreichbaren Auflösung wie auch durch die Registerzugriffe z. T. erheblich unterscheiden. Der Sensor DS1820 ist die ältere Ausgabe des DS18S20.

DS18B20.gif

Der Sensor DS18S20 enthält einen digitalen Temperatursensor mit 9-bit Auflösung, die verbesserte Version DS18B20 erreicht eine Auflösung bis zu 12-bit! Die Auflösung ist bei diesem Sensor sogar frei konfigurierbar zwischen 9- und 12-bit. Beide unterstützen außerdem noch eine Alarmfunktionen mit frei programmierbaren Schaltschwellen in einem nichtflüchtigen EEPROM Speicherbereich. Der DS18B20 ist für den Temperaturbereich von -55°C bis + 125°C mit einer Abweichung von maximal +/-0,5°C im Bereich zwischen -10°C und + 85°C konzipiert. Die Konvertierung eines 12-bit Temperaturwertes benötigt etwa 750ms. Die Zeit halbiert sich mit jedem weiteren Bit weniger und beträgt bei 9-bit nur noch 93,75ms. Die Auflösung bei 9-bit beträgt 0,5°C, bei 10-bit 0,25°C, 11-bit 0,125°C und bei 12-bit 0,0625°C. Beim Power Up ist bei allen Varianten immer die höchste Auflösung voreingestellt, zumindest sofern im EEPROM keine anderen Werte für das Konfigurationsregister Byte 4 hinterlegt sind. Die Kommunikation erfolgt bei allen Ds18xx Temperatursensoren über das standardisierte 1-Wire Protokoll. Die Versorgungsspannung kann in einem weiten Bereich zwischen 3.0V und 5.5V gewählt werden.

Für diese 1-Wire Temperatursensoren DS18xx muss vor Beginn der Programmierung zuerst einmal die hier verwendete OneWire Library von Paul Stoffregen für die Arduino IDE aus dem Internet heruntergeladen und entpackt werden. Der ausgepackte Ordner muss anschließend unter Windows 7 zum Beispiel nur noch in den Pfad Benutzer\ <Eigener Benutzername>\Arduino\libraries kopiert werden. Sollte die Arduino Entwicklungsumgebung bereits geöffnet gewesen sein, muss diese jetzt einmal neu gestartet werden, damit die neue Bibliothek auch erkannt wird und eingebunden werden kann.

Folgende 10 Kommandos werden durch die Library zur Verfügung gestellt:

OneWire myWire(pin) Ein OneWire Objekt myWire erzeugen. Für jeden benutzten Pin kann ein eigenes Objekt erzeugt werden myWire.search(addrArray) Sucht das nächste Gerät. Das addrArray wird immer mit 8 Bytes gefüllt (Seriennummer), der Rückgabewert ist 1 bzw. true, wird kein weiteres Gerät gefunden, wird 0 bzw. false zurückgegeben
OneWire Kommandos
myWire.reset_search() Die Suche nach Geräten von vorne beginnen
myWire.reset() Reset Bus
myWire.select(addrArray) Gerät anhand der spezifischen Adresse (Seriennummer) auswählen
myWire.skip() Nur bei Einzelbetrieb. Für den direkten unmittelbaren Zugriff auf das einzige Gerät, ohne vorab nach der Adresse suchen zu müssen
myWire.write(byte) Ein Byte schreiben
myWire.write(byte, 1) Ein Byte schreiben, aber Spannungsversorgung eingeschaltet lassen für den parasitären Betrieb des Sensors
myWire.read() Ein Byte lesen
myWire.crc8(dataArray, length) CRC-Check auf ein Datenarray anwenden