, Arduino – Adressen aller ds1820 ermitteln

Mein Name ist Christoph Purin und befasse mich mit IoT Geräten wie Raspberry, Arduino, ESP. Auch Aktivitäten wie die FFW, Quad-fahren, Amateurfunk zählen zu meinen bevorzugten Hobbys. Dieser Blog, stellt eine Sammlung meiner Projekte dar, wie Dinge gelöst oder umgebaut werden können.

Um gezielt die Temperaturwerte eines bestimmten am Arduino angeschlossenen ds18s20 Temperatursensors auslesen zu können, benötigt man dessen Geräte-Adresse.
Wie man diese eindeutige Adresse ermittelt zeige ich in diesem Beitrag.
ds18s20

 

 

 

Download Sketch

 

 

 

#include

OneWire ow(2);

void setup(void)
{
Serial.begin(9600);
lookUpSensors();
}

void lookUpSensors()
{
byte address[8];
int i=0;
byte ok = 0, tmp = 0;

Serial.println(„–Suche gestartet–„);
while (ow.search(address))
{
tmp = 0;
//0x10 = DS18S20
if (address[0] == 0x10)
{
Serial.print(„Device is a DS18S20 : „);
tmp = 1;
}
else
{
//0x28 = DS18B20
if (address[0] == 0x28)
{
Serial.print(„Device is a DS18B20 : „);
tmp = 1;
}
}
//display the address, if tmp is ok
if (tmp == 1)
{
if (OneWire::crc8(address, 7) != address[7])
{
Serial.println(„but it doesn’t have a valid CRC!“);
}
else
{
//all is ok, display it
for (i=0;i<8;i++)
{
if (address[i] < 9)
{
Serial.print(„0“);
}
Serial.print(„0x“);
Serial.print(address[i],HEX);
if (i<7)
{
Serial.print(„, „);
}
}
Serial.println(„“);
ok = 1;
}
}//end if tmp
}//end while
if (ok == 0)
{
Serial.println(„Keine Sensoren gefunden“);
}
Serial.println(„–Suche beendet–„);
}

void loop(void)
{
//do nothing 🙂
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.