Hänge an einer for Schleife, in der die USER-ID und Adressen zweier DS18B20 ausgegeben werden sollen.
Code:
void setup(void) {
Serial.begin(115200);
DS18B20.begin();
Numbers_Of_18B20 = DS18B20.getDeviceCount();
Serial.println("Anzahl Sensoren:\t" + String(Numbers_Of_18B20));
if (Numbers_Of_18B20 >0){ //Hole Adressen und Userbytes
for (int i=0; i < Numbers_Of_18B20; i++) { //Numbers_Of_18B20
DS18B20_Address[8]=DS18B20.getAddress(DS18B20_Address, 1);
Serial.print("\n\rSensor " + String(i+1)); Serial.print(":\t"); print_8bit_Array(DS18B20_Address); // i. Adresse
Serial.print("\tSensorID:\t" + String(DS18B20.getUserData(DS18B20_Address))); // i. ID
/* DS18B20_Address[8]=DS18B20.getAddress(DS18B20_Address, i); // hole Adresse 1. Sensor am Anfang
Serial.print("\n\rSensor " + String(1+1)); Serial.print(":\t"); print_8bit_Array(DS18B20_Address); // 2. Adresse
Serial.print("\tSensorID:\t" + String(DS18B20.getUserData(DS18B20_Address)));*/
}
}
}
Der serielle Monitor gibt immer nur 1. Adresse aus. Nehme ich den globalen kommentar heraus und eliminiere die for-SChleife wirden alle Adressen angezeigt. Ersetze ich den Schleifencode durch println(i) ist alles ok.
Nun habe ich keine IDEE mehr. Vllt einer von euch?
Sollen 2 Frühbeetheizungen gesteuert werden. Damit meine Frau die Sensoren im Bedarfsfall selbst wechseln, sollen sie als Sensor 1/2 angesprochen werden.
Danke und schönen Sonntag noch. Die main im Anhang Nachtrag: 1 main hat fehler in schleife steht 1 statt i, Deshalb main nochmal. Setze ich i von hand (i=1) wird 2. Sensor angezeigt, i=2 for wird nicht ausgeführt.