Hallo...
Hab ein kleines Sketch geschrieben bei dem 2 DS18B20 Sensoren abgefragt und die gelesene werte auf einem kleinen OLED Display dargestellt werden...
Die Anzeige wechselt alle x Sekunden (per Millis) von einem auf den Anderen Sensor & zeigt die Entsprechenden Werte an...
Das Funktioniert soweit tadellos...
Allerdings werden während der Anzeigedauer die Sensorwerte nicht aktualisiert...
Ich steh da gerade auf dem Schlauch..
Sieht jemand von euch den Fehler?
void loop()
{
sensors.requestTemperatures();
if((millis() - prevous_millis > SWITCH_INTERVALL))
{
temperatur(next_step);
prevous_millis=millis();
if(next_step < 3)
{
next_step++; // Hochzählen des Zählers
}
else
{
next_step = 1; // Rücksetzen des Zählers auf 1
}
}
}
void temperatur(int value)
{
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
if(value == 1)
{
display.println("Innentemperatur");
}
else if(value == 2)
{
display.print("Au");
display.print(char(224));
display.println("entemperatur");
}
else
{
display.println("Differenztemperatur");
}
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 18);
if(value == 1)
{
if(sensors.isConnected(Sensor_1))
{
display.print(sensors.getTempC(Sensor_1)+Sensor1_Offset);
//Serial.println(sensors.getTempC(Sensor_1));
}
else
{
display.print("Error");
}
}
else if (value == 2)
{
if(sensors.isConnected(Sensor_2))
{
display.print(sensors.getTempC(Sensor_2)+Sensor2_Offset);
//Serial.println(sensors.getTempC(Sensor_2));
}
else
{
display.print("Error");
}
}
else
{
if((sensors.isConnected(Sensor_1)) && (sensors.isConnected(Sensor_2)))
{
display.print((sensors.getTempC(Sensor_2)+Sensor2_Offset) - (sensors.getTempC(Sensor_1)+Sensor1_Offset));
}
else
{
display.print("Error");
}
}
display.setCursor(90, 18);
display.print(char(247));
display.println("C");
display.display();
}