temperatuur instellen met decimalen

Ah. Ja. Ik snap wat jullie bedoelen. Dat is opzich wel handig inderdaad. Moet nu steeds van 18 (of naar beneden gelijk vanaf 28) graden/pH 5.0 omhoog tot de waarde die ik wil. Niet heel erg, maar wel zo handig als dat niet hoeft.

Heb dit als volgt verwerkt. Werkt aardig. Wanneer ik mijn temperatuursettingpagina verlaat en weer open, blijft de waarde tempNew staan op hoe ik hem de laatste keer heb achtergelaten (zonder de waarde op te slaan). Omdat ik tempNew weer een nieuwe waarde heb gegeven welke dan wordt weergegeven. Dat vind ik verwarrender dan vanaf 18 graden beginnen. Dat komt door de manier waarop ik de pagina heb opgezet en de huidige ingestelde temperatuur kleiner wordt weergegeven dan de nieuwe temperatuur.
Ik krijg het niet voor elkaar bij het opnieuw openen van de temperatuursettingpagina te beginnen vanaf de huidig opgeslagen temperatuur ipv de temperatuur zoals ik die heb achtergelaten.

//==EEPROM Locations
// 0 = Temperature setting
// 5 = pH setting

//==Structs
struct config_t
{
  float tempSet;
  float pHSet;
};

struct config_t configuration;


//==Temp
float tempC = 0;
float tempNew = 18;
float tempUpg = 0.1;
float tempSet;

void setup ()
{
  tempNew = EEPROM.get(0, configuration.tempSet);
  
}

void loop()
{
// TemperatureSetting / Temp.config Screen
    if (currentPage == '2')
  {
    myGLCD.setColor(255, 255, 255);
    myGLCD.setBackColor(0, 0, 0);
    myGLCD.setFont(SmallFont);
    myGLCD.printNumF(EEPROM.get(0, configuration.tempSet), 1, 160, 56);
    myGLCD.setFont(BigFont);
    myGLCD.printNumF(tempNew, 1, 160, 135);

    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      // ==If we press the tempUp Button 10, 115, 90, 148
      if ((x >= 10) && (x <= 90) && (y >= 115) && (y <= 148))
      {
        tempNew < 28 ? tempNew = tempNew + tempUpg : tempNew = 18;
        delay (200);
      }

      // ==If we press the tempDown Button
      if ((x >= 10) && (x <= 90) && (y >= 156) && (y <= 189))
      {
        tempNew > 18 ? tempNew = tempNew - tempUpg : tempNew = 28;
        delay (200);
      }
    
      if (tempNew >= 20 || tempNew <= 27)
      {
        myGLCD.setBackColor(0, 0, 0);
        myGLCD.setColor(255, 255, 255);
        myGLCD.setFont(Various_Symbols_32x32);
        myGLCD.print("T", 235, 120);
      }
      if (tempNew < 20 || tempNew > 27)
      {
        myGLCD.setColor(255, 255, 255);
        myGLCD.setFont(Various_Symbols_32x32);
        myGLCD.setBackColor(0, 0, 0);
        myGLCD.print("O", 235, 120);
      }


      // ==If we press the saveTemp Button
      if ((x >= 170) && (x <= 210) && (y >= 190) && (y <= 230))
      {
        configuration.tempSet = tempNew;
        EEPROM.put(0, configuration.tempSet);
        drawFrame(170, 190, 210, 230);
      }

      // ==If we press the Main Button (270, 190, 310, 230)
      if ((x >= 270) && (x <= 310) && (y >= 190) && (y <= 230))
      {
        drawFrame(270, 190, 310, 230);
        currentPage = '0'; // Indicates we are at home screen
        myGLCD.clrScr();
        drawHomeScreen(); // Draws the Home Screen
      }
      // ==If we press the Back Button (210, 190, 260, 230)
      if ((x >= 220) && (x <= 260) && (y >= 190) && (y <= 230))
      {
        drawFrame(220, 190, 260, 230);
        currentPage = '1'; // Indicates we are at Setting screen
        myGLCD.clrScr();
        drawSettingScreen(); // Draws the Setting Screen
      }
    }
  }

Mijn volgende stap is het schrijven van de voids voor de twee relays. Ik heb het nog niet helemaal uitgedacht, maar vooralsnog is mijn idee om voor de relays die het verwarmingselement en de CO2(magneetventiel) in en uit moet schakelen een void Verwarmingselement() en void CO2() te schrijven en daarin de EEPROM.get() te zetten en te linken aan de huidige temperatuur/pH. Deze voids () worden bij opstart, net als mijn void Homescreen() aangeroepen in de void setup(). Vervolgens zal ik deze voids () ook in de void loop () aan moeten roepen.

Klinkt dit als een logische benadering?