DS18B20 an mehreren Pins einlesen

Hallo,
der DS18B20 ist ein guter Temperatursensor und man kann auch viele Sensoren an einem Pin betreiben, soweit so gut.
Aber: jeder Sensor braucht seine Zeit für die Wandlung. Wenn ich es recht verstehe, kann ich immer nur einen Sensor anschubsen und wenn der fertig ist, dann den nächsten. Also z.B. mit 10 Sensoren an einem Pin brauche ich ca. 10 Sekunden (bei 12Bit-Auflöung) um alle einzulesen.
Es geht jetzt darum, so schnell als möglich mehrere Sensoren einzulesen und dabei können auch mehrere Pin's am Controller genutzt werden, also z.B. nur ein Sensor je Pin.
Besteht die Möglichkeit gleichzeitig mehrere Pins mit jeweils einen Sensor zu nutzen, um im Beispiel in ca. 1 Sekunde alle 10 Temperaturwerte zu erhalten?
Ich meine wie, oder mit welcher "üblichen" One-Wire-Software mache ich das am sinnvollsten?
Danke für Infos und Meinungen :slight_smile:

Nein, wenn alle Sensoren an einem Pin angeschlossen sind, können Sie für alle Sensoren einen Update-Befehl auf den Bus senden

uint8_t sensor[][8] = {
                      { 0x28, 0xEE, 0xD5, 0x64, 0x1A, 0x16, 0x02, 0xEC },
                      { 0x28, 0x61, 0x64, 0x12, 0x3C, 0x7C, 0x2F, 0x27 },
                      { 0x28, 0x61, 0x64, 0x12, 0x3F, 0xFD, 0x80, 0xC6 }
                      };

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

void loop(void)
{
  sensors.requestTemperatures();
  
  Serial.print("Sensor 1: ");
  printTemperature(sensor[0]);
  
  Serial.print("Sensor 2: ");
  printTemperature(sensor[1]);
  
  Serial.print("Sensor 3: ");
  printTemperature(sensor[2]);
  
  Serial.println();
  delay(1000);
}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print(tempC);
  Serial.print((char)176);
  Serial.print("C  |  ");
  Serial.print(DallasTemperature::toFahrenheit(tempC));
  Serial.print((char)176);
  Serial.println("F");
}

Danke für die schnelle Info. Welche library (.h) wird dabei genutzt?

#include <OneWire.h>
#include <DallasTemperature.h>

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.