[gelöst] Bitte um Hilfe bei einem Schleifen-Thema

Na dann mal zum testen...

#include <SPI.h>
#include "LCD_Driver.h"
#include "GUI_Paint.h"
#include "image.h"

#include <Adafruit_SCD30.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>

Adafruit_SCD30  scd30;
unsigned int oldScdCO;
void setup()
{
  Config_Init();
  LCD_Init();
  LCD_Clear(GREEN);
  LCD_SetBacklight(80);
  Paint_NewImage(LCD_WIDTH, LCD_HEIGHT, 0, WHITE);
  Paint_Clear(GREEN);
  Paint_SetRotate(180);
  //  Paint_DrawString_EN(0, 0, "Temp:", &Font24, GREEN, BROWN);
  //  Paint_DrawString_EN(0, 28, "Hum:", &Font24, WHITE, GRAYBLUE);
  //  Paint_DrawString_EN(0, 56, "CO2:",  &Font24, GREEN, BLACK);
  //  Paint_DrawRectangle(70, 10, 100, 40, RED,DRAW_FILL_EMPTY, DOT_PIXEL_2X2 );
  //  Paint_DrawLine(70, 10, 100, 40, MAGENTA, LINE_STYLE_SOLID, DOT_PIXEL_2X2);
  //  Paint_DrawLine(100, 10, 70, 40, MAGENTA, LINE_STYLE_SOLID, DOT_PIXEL_2X2);
  //
  //  Paint_DrawImage(gImage_40X40,120, 0,40, 40);
  //  while (!Serial) delay(10);     // will pause Zero, Leonardo, etc until serial console opens
  Serial.println("Adafruit SCD30 test!");
  // Try to initialize!
  if (!scd30.begin())
  {
    Serial.println("Failed to find SCD30 chip");
    while (1) { delay(10); }
  }
  Serial.println("SCD30 Found!");
  if (!scd30.setMeasurementInterval(3))
  {
    Serial.println("Failed to set measurement interval");
    while (1) { delay(10);}
  }
  Serial.print("Measurement Interval: ");
  Serial.print(scd30.getMeasurementInterval());
  Serial.println(" seconds");
}



void loop()
{
  if (scd30.dataReady())
  {
    Serial.println("Data available!");
    if (!scd30.read()) { Serial.println("Error reading sensor data"); return; }
    Serial.print("Temperature: ");
    //   Serial.print(scd30.temperature);
    Serial.print(scd30.temperature, 1);
    Serial.println(" degrees C");
    Serial.print("Relative Humidity: ");
    //    Serial.print(scd30.relative_humidity);
    Serial.print(scd30.relative_humidity, 0);
    Serial.println(" %");
    Serial.print("CO2: ");
    Serial.print(scd30.CO2, 0);
    Serial.println(" ppm");
    Serial.println("");
  }
  else
  {
    //  Serial.println("No data");
  }
  if (oldScdCO != scd30.CO2)
  {
    oldScdCO = scd30.CO2;
    if (scd30.CO2 < 900)
    {
      LCD_Clear(GREEN);                                               // lösche Display-Inhalt, Hintergrundfarbe grün
      Paint_DrawString_EN(45, 10, "CO2:",  &Font24, GREEN, BLACK);    // schreibe Messgröße an richtigen Platz
      Paint_DrawString_EN(85, 42, "ppm",  &Font20, GREEN, BLACK);     // schreibe Einheit an richtigen Platz
      Paint_DrawNum(25, 40, (scd30.CO2), &Font24, GREEN, BLACK);      // schreibe Messwert an richtigen Platz
    }
    else if (scd30.CO2 >= 900 && scd30.CO2 < 1000)
    {
      LCD_Clear(YELLOW);                                              // lösche Display-Inhalt, Hintergrundfarbe grün
      Paint_DrawString_EN(45, 10, "CO2:",  &Font24, YELLOW, BLACK);   // schreibe Messgröße an richtigen Platz
      Paint_DrawString_EN(90, 42, "ppm",  &Font20, YELLOW, BLACK);    // schreibe Einheit an richtigen Platz
      Paint_DrawNum(20, 40, (scd30.CO2), &Font24, YELLOW, BLACK);     // schreibe Messwert an richtigen Platz
    }
    else if (scd30.CO2 >= 1000 && scd30.CO2 < 1200)
    {
      LCD_Clear(YELLOW);
      Paint_DrawString_EN(45, 10, "CO2:",  &Font24, YELLOW, BLACK);
      Paint_DrawString_EN(95, 42, "ppm",  &Font20, YELLOW, BLACK);
      Paint_DrawNum(18, 40, (scd30.CO2), &Font24, YELLOW, BLACK);
    }
    else
    {
      LCD_Clear(RED);
      Paint_DrawString_EN(45, 10, "CO2:",  &Font24, RED, BLACK);
      Paint_DrawString_EN(95, 42, "ppm",  &Font20, RED, BLACK);
      Paint_DrawNum(18, 40, (scd30.CO2), &Font24, RED, BLACK);
    }
  }
}
// für später:
//  Paint_DrawString_EN(0, 5, "Temp:", &Font20, GREEN, BROWN);
//  Paint_DrawNum(77, 5, (scd30.temperature), &Font20, GREEN, BROWN);
//  Paint_DrawString_EN(120, 5, "C", &Font20, GREEN, BROWN);
//  Paint_DrawString_EN(0, 32, "Hum:", &Font20, GREEN, BLUE);
//  Paint_DrawNum(77, 32, (scd30.relative_humidity), &Font20, GREEN, BLUE);
//  Paint_DrawString_EN(120, 32, "%", &Font20, GREEN, BLUE);
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/