Tekst veranderen op een LCD scherm

Beste Arduino gebruikers,

Ik wil door middel van een pushbutton tekst laten veranderen op een LCD scherm.
Als ik de pushbutton hebt ingedrukt en daarna weer loslaat moet er een andere tekst op het scherm komen te staan. Nu staat er in het scherm “Etage 2” maar na het indrukken van de button moet er Etage 1 komen te staan, Iemand een idee?? Ik weet dat deze code mager is en helemaal verkeerd maar ben ook maar net een week bezig en van programmeren heb ik al helemaal geen verstand. Ik moet mij dat allemaal aanleren. Onderstaand is een begin van de code, en ik mis dus nog wat aardig, maar weet niet hoe ik dit moet oplossen. Kunnen jullie mij helpen?

/* Pinnen in gebruik op de Arduino Uno
4,8,9,10,11,12 en 13 Alsmede ook de 5 volt en de ground.*/

#include <SPI.h>
#include <TFT.h> 

// Arduino TFT library
#define cs   10
#define dc   9
#define rst  8

TFT screen = TFT(cs, dc, rst);

void setup() {
  // Intitialiseren van het scherm
  screen.begin();

  // Achtergrondkleur
  screen.background(0,0,255);

  // Tekstkleur
  screen.stroke(255,255,51);
  
  // Tekst grote
  screen.setTextSize(2);

  // Tekst naar scherm schrijven
  screen.text("Etage", 52,15);

  // Tekstkleur
  screen.stroke(255,255,255);
  
  // Text grote
  screen.setTextSize(10);

  // Tekst naar scherm schrijven
  screen.text("2", 55,40);
}

void loop() {

}
[code]

Hoi.

Als je de IDE start, dan staat er al wat ingevuld. Namelijk dat je eerst dient te vertellen waar de IDE allemaal rekening mee moet houden (setup), en dan wat je programma moet gaan doen (loop).

Dat is de basis, maar die ben je met je huidige vergeten.

Je wil weten of er een knopje is ingedrukt. Misschien moet je dan een knopje aansluiten, en kijken naar waar dat knopje zit aangesloten. Als dat knopje is ingedrukt (dat is dus een voorwaarde), dan moet er iets gebeuren. Als dat knopje niet is ingedrukt, dan moet er ook niets veranderen aan de situatie die je op dat moment hebt. Verder wil je alleen dat doen, dus wanneer je eenmaal het ingedrukte knopje hebt gezien, dan moet je stoppen met je programma. Als je eigenlijk niet wil dat je programma stopt, dan moet je dus onthouden dat je ooit eens gezien hebt dat het knopje werd ingedrukt, en aan de hand daarvan iets doen.

Het is echt niet moeilijk om zoiets te programmeren, maar ik vind dat ik wel van je mag vragen iets beter je best te doen dan je tot nog toe getoond hebt.

De IDE is heel strikt in wat je allemaal intypt, en waar je dat doet. Daarom zijn wij ook zo strikt. Je hebt wel gepoogd de code in code tags te zetten, maar dat heb je niet helemaal correct gedaan. Daarom is er een tag toegevoegd aan je programma in het code venster dat je hier hebt neergezet.

Je hebt dit gedaan: [code] [code], maar je had moeten doen: [code][/code] Dus de een is openen, en het andere, met de '/' is het sluiten. In dit geval is dat redelijk goed terecht gekomen, omdat je verder geen andere tekst aan je bericht hebt geplakt na de code, maar als je dat wel had willen doen, dan was dat dus niet goed gegaan.

Na heel wat geëxperimenteer ben ik tot de volgende code gekomen, probleem is dat na indrukken van de pushbutton de tekst door elkaar heen komt te staan.
Heeft iemand voor mij een oplossing of hint zodat de tekst na het indrukken van de pushbutton veranderd in de andere tekst.

// include the necessary libraries
#include <SPI.h>
#include <SD.h>
#include <TFT.h>  // Arduino LCD library

// pin definition for the Uno
#define sd_cs  4
#define lcd_cs 10
#define dc     9
#define rst    8
TFT TFTscreen = TFT(lcd_cs, dc, rst);
const int aan_uit = 2; // Pushbutton

//--------------------------------------------------------------------------

void setup() {
  pinMode(aan_uit, INPUT_PULLUP);
  TFTscreen.begin();
  TFTscreen.background(255, 255, 51); // Achtergrondkleur
  TFTscreen.stroke(102, 178, 255);    // Textkleur
  Serial.begin(9600);
}

//---------------------------------------------------------------------------

void loop() {
  if (digitalRead(aan_uit)== HIGH){
  TFTscreen.setCursor(7, 10);       // Uitlijning Horizontaal / verticaal
  TFTscreen.setTextSize(5);         // Text groote
  TFTscreen.println("ETAGE");       // Text
    TFTscreen.setCursor(65, 55);
    TFTscreen.setTextSize(8);
    TFTscreen.println("1");
}
  if (digitalRead(aan_uit)== LOW){
  TFTscreen.setCursor(7, 10);       // Uitlijning Horizontaal / verticaal
  TFTscreen.setTextSize(5);         // Text groote
  TFTscreen.println("ETAGE");       // Text
    TFTscreen.setCursor(65, 55);
    TFTscreen.setTextSize(8);
    TFTscreen.println("2");
}
}

voor performantie redenen blijft de huidige tekst staan als je schrijft. Dat wil dus zeggen dat als je iets niet overschrijft dat het ook blijft staan. Ofwel doe je dus een clean ofwel overschrijf je dus best alles in jouw geval.