Arduino -- Elektronik-Experimentierkasten -- Lectron Lehrsytem -- Jugendarbeit -- Elektronik -- Amateurfunk -- Notfunk -- Shop

Seriennummer aus DS1820

Manche Arduino-Anwendungen benötigen eine eindeutige Seriennummer. Besonders wenn man Arduinos vernetzt muss man die einzelnen Knoten eindeutig identifizieren können.

Dazu könne man eine solche eindeutige Seriennummer im Code fest einbauen oder im EEPROM ablegen. Das hat den Nachteil das man beim Austausch der Hardware bzw. beim Programmieren eines neuen Knotens im Netz die jeweilige Seriennummer immer manuell neu hinterlegen muss. 

Besser wäre eine Seriennummer die in der Hardware fest hinterlegt ist. Dazu gibt es z.B. von Maxim ( früher Dallas ) einen sepziellen Chip: DS2401 "Silicon Serial Number". Jeder dieser Chips hat eine eindeutige 48-Bit lange Seriennummer. Die ist eindeutig und kann nicht geändert werden. Diese Seriennummer kann dann für verschiedene Zwecke verwendet werden.

Wenn man statt dem DS2401 ein DS18x20 - eigentlich ein 1-Wire-Temperatur-Sensor" verwendet hat man neben der Seriennummer auch nocht die Möglichkeit die aktuelle Temperatur auszulesen. 

Der Temperatursensor hat auch eine eindeutige 48-Bit-Seriennummer. Inzwischen kann man den Temperatursensor günstiger kaufen als den DS2401. 

Einige Seriennummern die ich aus einigen DS18020 ausgelesen habe:

EE85A71D1601
EEDDC81D1601
EE46A61D1601
EE29C61A1602
EE4AA61D1601 

Die Seriennummer wird als HEX-String mit sechs HEX-Zahlen ausgegeben. 

 

Die "Silicon Seriennummer" wie auch der Temperatursensor wird über den 1-Wire-Bus angesprochen. Dafür gibt es fertige Librarys für den Arduino. 

Die Funktion erwarten einen DS1820 an einem Datenpin der für den 1-WIRE-Bus verwendet wird. An diesem PIN darf nur ein Temperatursensor angeschlossen werden. Wenn mehrere Sensoren an diesem 1-WIRE-Bus parallel angeschlossen werden ist nicht genau definiert welche der Seriennummern dann als erstes ausgelesen wird. 

 

 

Beispielprogramm mit Funktion um Seriennummer auszulesen

 

TFT-Shield mit DS1820 nachgerüstet:

Der DS1820 wurde zwischen dem Shield und dem TFT-Display platziert. Eine Temperaturmessung ergibt dann die Temperatur "innerhalb" des Gerätes.

Die Seriennummer wird für die eindeutige Identifikation des Anzeigemoduls in einem RS-485-Netzwerkes verwendet.

 

 

 

...

21.10.2016

Dipl.-Ing. (FH) Jürgen Mayer, DL8MA - Weinstadt-Grossheppach
Impressum

zurück zu www.DL8MA.de