INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Anzahl der DS18B20 ermitteln
02.08.2017, 07:52
Beitrag #1
Anzahl der DS18B20 ermitteln
Morgen,

gibt es die Möglichkeit die Anzahl automatisch zu ermitteln? Bzw. was passiert wenn ich vier initialisieren sollte aber nur einer angeschlossen wäre?
Ich plane gerade einen portablen Temperaturlogger mit SD, welcher einen eingebauten sensor haben soll. Extern soll ma naber über den selben Port bis zu drei weitere Sensoren anschließen können, welche dann automatisch erkannt und geloggt werden sollen.
Wird jetzt -127 erfasst wenn diese nicht da sind oder geht die Software auf Fehler?

Gruß
Paul
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2017, 08:06
Beitrag #2
RE: Anzahl der DS18B20 ermitteln
Guten Morgen Paul,

du benutzt ja für die DS18B20 die DallasTemperature - Lib. Dort gibt es ua. die Funktion getDeviceCount. Damit kannst du die Anzahl der Sensoren ermitteln. Sieh dir dazu das Beispiel "Mutiple.pde" in der Library an.
Ist ein Sensor mit einer definierten Adresse nicht angeschlossen, wird die Ermittlung der Temperatur über diesen Sensor -127 °C bzw. -196.6 °F zurückgeben.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2017, 08:16
Beitrag #3
RE: Anzahl der DS18B20 ermitteln
Aah..den kannte ich noch nicht. Danke! Smile Bei meinem aktuellen Projekt frage ich die Temperaturen so ab:

sTemp.requestTemperatures();
Temp[0] = sTemp.getTempCByIndex(0);
Temp[1] = sTemp.getTempCByIndex(1);
Temp[2] = sTemp.getTempCByIndex(2);

Aber ich sehe gerade, dass meine Konstante für die Anzahl sensoren sich nur für das Array Temp() auswirkt. Dallas sage ich gar nicht dass ich hier drei Sensoren benutze.

OneWire owTemp(pin_Temp);
DallasTemperature sTemp(&owTemp);

In Setup:
sTemp.begin();
sTemp.setResolution(TEMP_9_BIT);

Die Reihenfolge wird entsprechend der Adresse eingerichtet, oder? D.h. im Inneren sollte ich dann einen Sensor mit der niedrigsten Adresse verbauen, damit dieser immer als erster erkannt wird und immer an der selben Position weggeschrieben wird, auch wenn externe angeschlossen werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2017, 09:13
Beitrag #4
RE: Anzahl der DS18B20 ermitteln
(02.08.2017 08:16)AlphaRay schrieb:  Aah..den kannte ich noch nicht. Danke! Smile Bei meinem aktuellen Projekt frage ich die Temperaturen so ab:

sTemp.requestTemperatures();
Temp[0] = sTemp.getTempCByIndex(0);
Temp[1] = sTemp.getTempCByIndex(1);
Temp[2] = sTemp.getTempCByIndex(2);

Aber ich sehe gerade, dass meine Konstante für die Anzahl sensoren sich nur für das Array Temp() auswirkt. Dallas sage ich gar nicht dass ich hier drei Sensoren benutze.

OneWire owTemp(pin_Temp);
DallasTemperature sTemp(&owTemp);

In Setup:
sTemp.begin();
sTemp.setResolution(TEMP_9_BIT);

Die Reihenfolge wird entsprechend der Adresse eingerichtet, oder? D.h. im Inneren sollte ich dann einen Sensor mit der niedrigsten Adresse verbauen, damit dieser immer als erster erkannt wird und immer an der selben Position weggeschrieben wird, auch wenn externe angeschlossen werden.


int numberOfDevices = DS18B20.getDeviceCount(); // Ermittelt die Anzahl von Ds18b20 am Pin
for (int i = 0; i < numberOfDevices; i++ ) { // Temperatur lesen
Temp[i] = DS18B20.getTempCByIndex(i);
}

Ungetestet weil ich bei mir über Adresse und nicht per Index auslese.

Gruß Fips

Meine Esp8266 & ESP32 Projekte
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Mittelwert über 30sek. ermitteln Gerdchen03 7 301 01.02.2020 18:38
Letzter Beitrag: Gerdchen03
  DS18B20: ab 60 °C höhere Abweichung moehrle 2 679 02.03.2019 21:34
Letzter Beitrag: moehrle
  Anzahl Schritte mit UNO R3 goehrde53 7 979 07.02.2019 12:14
Letzter Beitrag: MicroBahner
  Button Anzahl erweitern 74HC4051 Andii1980 24 2.699 18.10.2018 23:26
Letzter Beitrag: Andii1980
  Anzahl Umdrehungen DC Motor Crazy 5 1.506 01.05.2018 13:01
Letzter Beitrag: Tommy56
  Treppenbeleuchtung Probleme mit LED Anzahl Cellman 1 1.404 18.03.2018 10:13
Letzter Beitrag: hotsystems
  DS18B20 Pool-Thermometer mit 7Seg.-Anzeige Evilgnievel 19 4.095 23.06.2017 09:27
Letzter Beitrag: Tommy56
  Datenlogger mit DS18B20 lcd und sd Kart FreDicnc 7 2.225 15.06.2017 09:48
Letzter Beitrag: hotsystems
  Stunden bis Datum ermitteln facebraker 5 1.779 22.02.2016 22:17
Letzter Beitrag: Bitklopfer
  Zuordnung von DS18B20 Adressen Jelimi 41 16.747 26.10.2015 17:13
Letzter Beitrag: Jelimi

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste