Bedankt voor je reactie!
Hmz. Dat is inderdaad hoe ik begon. Ik kreeg het toen alleen niet voor elkaar om gelijk de nieuwe waarde te laten zien, die kreeg ik pas als ik in mijn menu een pagina terug ging en weer opnieuw in mijn temperatuursettingpagina ging. Vast iets met op het verkeerde moment laten zien op het TFT.
Wat ik toen nog niet had was de boven- en ondergrens van het bereik waarbinnen ik de temperatuur in kan stellen, zeg 18 tot 28 graden. Dat zou ik graag meenemen.
Ik ben alweer een goed uurtje aan het puzzelen met je suggestie, maar krijg het toch niet helemaal voor elkaar. Mogelijk probeer ik deze twee benaderingen op de verkeerde manier te combineren?
float tempNew = 0.0, lastTemp;
float tempUpg = 0.1;
// ==If we press the tempUp Button 10, 115, 90, 148
if ((x >= 10) && (x <= 90) && (y >= 115) && (y <= 148))
{
tempNew < 28 ? tempNew = tempNew + 0.1 : lastTemp = 18;
delay (200);
}
// ==If we press the tempDown Button
if ((x >= 10) && (x <= 90) && (y >= 156) && (y <= 189))
{
tempNew > 18 ? tempNew = tempNew - 0.1 : lastTemp = 28;
delay (200);
}
if (tempNew != lastTemp)
{
myGLCD.setBackColor(0, 0, 0);
myGLCD.setColor(255, 255, 255);
myGLCD.setFont(BigFont);
myGLCD.printNumF(tempNew, 1, 160, 125);
lastTemp = tempNew;
}
Het levert me een aantal vragen op:
-
Als ik mijn code vervang door jouw suggestie (zoals hierboven) werkt dit voor het omhoog bijstellen van de temperatuur. Dezelfde formule opzet voor het bijstellen van de temperatuur naar beneden werkt niet (doet niets)? Waarom niet?
-
de boven- en ondergrens werken echter niet. Met de code in mijn beginpost kon ik de temperatuur instellen van 18-28 graden en begon bij 28 dan weer bij 18. Waarom werkt dit nu niet?
-
als ik aan het begin tempNew definieer als "float tempNew = tempOld + tempUpg" werkt dit niet. Ik krijg dan enkel 0.1 als waarde te zien. Als ik dan tempNew++ doe kan ik wel verhogen, maar per hele eenheid, zoals volgens de documentatie ook hoort. Is het mogelijk om aan het begin van de code de tempNew dusdanig te definieren dat ik enkel bovenin de waarde waarmee ik temperatuur verhoog/verlaag aan kan passen, zonder door de hele code te moeten zoeken naar de juiste plek?
[edit: ik ben me ervan bewust dat onderstaande code inderdaad 0.1 als output geeft na 1x drukken, omdat er nergens wordt aangegeven deze waarde per vervolg indrukken van de knop te verhogen]
[edit2: tempNew = tempNew + tempUpg werkt natuurlijk wel. Laatste vraag is daarmee beantwoord. Kan echter nog steeds niet temp omlaag bijstellen en boven- en onderwaarde werken ook niet.]