Sensoren verschieden Aktualisieren (Anfänger)

Hallo Elias,

Grundsätzlich ist das, was Du vorhast, einfach realisierbar, es muß "nur" in Deinen Kopf :wink:

Zeitverzögerungen mittels delay blockieren alle anderen Aktivitäten, daher ist das "böse". Zeiten kannst Du besser mit millis erfassen. In den Beispielen der IDE findest Du blink_without_delay und im Forum die Nachtwächtererklärung. Das sollte Dir weiterhelfen :slightly_smiling_face:

Wenn nicht ist auch die Verwendung einer Bibliothek möglich:

Programm mit MobaTools
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <SPI.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <MobaTools.h>
MoToTimebase temperaturIntervall;    // Zeitinterval zum Auslesen der Temperatur

#define TFT_CS        15 // Hallowing display control pins: chip select
#define TFT_RST       4 // Display reset
#define TFT_DC        2 // Display data/command select
#define TFT_BACKLIGHT  0 // Display backlight pin

// OPTION 1 (recommended) is to use the HARDWARE SPI pins, which are unique
// to each board and not reassignable.
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

const int oneWireBus = 22;
OneWire oneWire(oneWireBus);
DallasTemperature sensors(&oneWire);

const int waterlevelsensor = 13;
int waterlevel;

void setup() {
  Serial.begin(9600);
  tft.initR(INITR_BLACKTAB);
  tft.fillScreen(ST7735_BLACK);
  tft.setRotation(1);
  sensors.begin();
  pinMode(waterlevelsensor, INPUT_PULLUP);
  pinMode(TFT_BACKLIGHT, OUTPUT);
  digitalWrite(TFT_BACKLIGHT, HIGH);
  temperaturIntervall.setBasetime( 3000 );                // 3 s Tickerzeit
}

void loop() {
  waterlevel = digitalRead(waterlevelsensor);
  if (waterlevel == LOW) {
    Serial.println("AN");
  } else {
    Serial.println("AUS");
  }
  if ( temperaturIntervall.tick() )
  {
    sensors.requestTemperatures();
    //float temperature = sensors.getTempCByIndex(0);
    float temperature = random(150, 300) / 10.0;
    Serial.print(temperature);
    Serial.println("C");

    tft.setCursor(60, 2);
    tft.setTextColor(ST7735_WHITE, ST7735_BLACK);
    tft.setTextSize(2);
    tft.print(temperature);
  }
}