Wo liegt der Fehler beim Verbinden meines Codes?

Hallo zusammen,

ich schreibe gerade an meinem ersten Code und bin am Verzweifeln.
Eigentlich wollte ich nur einen Datenabgriff vom Sensor starten und beenden mit zwei Tastern.

Im Elegoo Set gibt es dazu gleich am Anfang einen Schaltplan für das An- und Ausschalten von einer LED.
Taste 1 -> AN, Taste 2 -> AUS

Dieses Setup habe ich übernommen und es läuft.
Allerdings habe ich eine bool var eingefügt, die in zusätzlich zur Status LED noch in true oder false versetzt wird. Im Seriellen Monitor lasse ich die Variable ausgeben und es passt.

Dazu habe ich noch ein paar Zeilen für die Auswertung des Sensors geschrieben. Passt für sich genommen auch.
Wenn ich nun aber den ganzen Sensor-Code in eine

if (bool var = true) Schleife packe, dann läuft von Anfang an der Sensorcode im Dauerlauf ohne das ich mit den Tastern irgendeinen Einfluss darauf habe. (Vorher musste ich ja z.B. mit dem ersten Taster auf true starten...

Dazu:
Das taster und bool var setup:

void loop() {
if (digitalRead(buttonApin) == LOW)
 {
   digitalWrite(ledPin, HIGH);
   status = true;
 }
if (digitalRead(buttonBpin) == LOW)
 {
   digitalWrite(ledPin, LOW);
   status = false;
 }
Serial.print(status);
Serial.println("");
}

und mein Sensor-Code, der mir die obige Funktion versaut.

if (status = true)
{
   int tempReading = analogRead(tempPin);
   // This is OK
   double tempK = log(10000.0 * ((1024.0 / tempReading - 1)));
   tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK )) * tempK );       //  Temp Kelvin
   float tempC = tempK - 273.15;            // Convert Kelvin to Celcius
   if (tempC <= 20)
   {
   analogWrite(9, 0);
   analogWrite(10, 0);
   analogWrite(11, 20);
   Serial.println("");
   Serial.println("Blau");
   }
   if (tempC >= 30)
   {
   analogWrite(9, 20);
   analogWrite(10, 0);
   analogWrite(11, 00);
   Serial.println("");
   Serial.println("Rot");
   }
   if (tempC > 20 && tempC < 30)
   {
   analogWrite(9, 0);
   analogWrite(10, 20);
   analogWrite(11, 0);
   Serial.println("");
   Serial.println("Grün");
   }
   Serial.println("Die Temperatur beträgt");
   Serial.print(tempC);
   Serial.println("");
}

Hi

Code-Tags erhöhen die Lesbarkeit.
Unnötige Leerzeilen VORHER in der IDE entfernen.
STRG+T rückt den Code auf Klammerebene ein.

Dann kannst Du überlegen, worin der Unterschied besteht:
Dein Code:
if (status = true) //ZUWEISUNG - Du setzt status auf true - Das ist IMMER true - also IMMER weiter
Mein Code wäre:
if (status == true) //Vergleich, ist status auf true?? Dann weiter

MfG

PS: Die Anpassung an Deinen Sketch im ersten Post kannst Du nachträglich noch machen - ich bitte darum.

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
So ist er auch auf portablen Geräten lesbar. Das kannst Du auch noch nachträglich ändern.

Entferne bitte vorher die unnötigen Leerzeilen und formatiere den Sketch ordentlich. + T in der IDE hilft Dir dabei.

Gruß Tommy

Das hat direkt funktioniert! Danke vielmals!