Hallo zusammen,
ich habe versucht mehrere DS18B20 Sensoren über eine Port auszulesen. Das hat auch wunderbar funktioniert.
dann wollte ich eine Auswertung der Sensoren abhängig der Adresse an der Letzten stelle durchführen. Ursprünglich dachte ich der einfachste weg ist eine switch-Case Anweisung.
switch (addr[7]) {
case 0xE3:
Serial.print(" Sensor 2");
Serial.print(addr[7], HEX);
case 0xFB:
Serial.print(" Sensor 1");
Serial.print(addr[7], HEX);
}
doch leider hatte ich das Problem dass beim ersten Sensor immer beide Case Anweisungen ausgeführt werden. Beim 2 ist alles wie erwartet.
Sieht wie Folgt im Serial Monitor aus:
-> Sensor2 E3 Sensor1 FB ......
-> Sensor 1 FB .....
Eigentlich dachte ich wenn ein Case ausgeführt wird.
ändere ich das ganze auf:
if (addr[7] == 0xE3) {
Serial.print(" Sensor 2 ");
//Serial.print(addr[7], HEX);
}
if (addr[7] == 0xFB) {
Serial.print(" Sensor 1 ");
//Serial.print(addr[7], HEX);
}
Woran leiget das? Habe ich ein Denkfehler bei der Switch-Case Anweisung?