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("");
}