If else funktioniert nicht mit LCD

Guten Abend allerseits,
ich habe mich gerade zum wiederholten Mal an der Visuellen Gestaltung des LCD Displays meiner Pumpensteuerung versucht.
Die Pumpe kann nur an oder aus geschaltet werden. Soweit so einfach. Wenn auf dem Display An oder Aus stehen soll und nicht der Wert der Variable (Byte also 1 oder 0) dachte ich, es wäre am einfachsten mit if zu testen ob die Pumpe an oder aus ist und den entsprechenden Zustand mit "Füßchen" auf das LCD zu schreiben lcd.print("An");.
Dabei wird auf dem Display jedoch nur dauerhaft "an" angezeigt, unabhängig wie der Wert der Variable ist. Meine If Konstruktion in der Steuerung Funktioniert jedoch prima, auch deshalb verstehe ich das Problem nicht (auch dort nicht beim LCD).

Ich habe im Anhang mal versucht mein Problemchen übersichtlich darzustellen. Vielleicht sieht ja sofort jemand was ich da verzapft habe. Bitte seid nicht zu Hart zu meiner Kunst, die ist noch ganz frisch.

Integer = 1;            //Meine Testvariabeln 
Byte = true;

lcd.setCursor(0,0);
lcd.print ("Pumpe int: ");

if (Integer = 1){       //Hier der Test mit dem Integer führt zum gleichen Ergebniss
  lcd.print("An");
}
else{
  lcd.print("Aus");
}

lcd.setCursor(0,1);
lcd.print("Pumpe byte: ");
if (Byte = true){       // Hier das Ursprüngliche Problem
  lcd.print("An");
  
}
else{
  lcd.print("Aus");

Vielen Dank schon mal im Vorhinein. Falls es das Thema schon gibt tut es mir leid, ich habe es nicht gefunden.

So dann erst mal eine gute Nacht.
VG Anton

2020.06.04_if_else_Test_byte.ino (1 KB)

Wenn du einen Zustand in Integer übergeben willst schreibst du "integer = 1;"
Wenn du Integer auf seinen derzeitigen Zustand testen willst schreibst du "if (integer == 1){"

Dein Test "if (Integer = 1){" führt daher immer dazu, dass integer 1 ist, weil du es damit auf 1 änderst.

Franz

Franz54:
Dein Test "if (Integer = 1){" führt daher immer dazu, dass integer 1 ist, weil du es damit auf 1 änderst.

@anton_392:
Das gilt auch für byte = true.

Schau mal hier ins (deutschsprachige) pdf:
https://www.arduinoforum.de/arduino_referenz_down.php
Seite 36.
https://www.arduinoforum.de/arduino_referenz_down.php

Da gebe ich den Vorrednern recht.
Aber es ist noch ein kleiner Bug drin.

Es müsste bei dir statt lcd.print("An") heißen lcd.print("An "), also ein Leerzeichen hintern dem an.
Sonst macht er beim Wiedereinschalten aus "Aus" nämlich "Ans", weil das "s" von "Aus" nicht überschrieben wird.

if (Byte = true)

Warnungen scharf schalten, dann haut dir der Compiler den Kram um die Ohren.

Vielen Dank für die schnellen Antworten! Ich habe es gerade ausprobiert und jetzt klappt alles.