Problem reading Values

Hi Folks, i´ve only one problem, the code is open source so everybody can use it. I´m using an Arduino Nano

The Problem is, that after reading values the first Time is OK, second time fails. If i open the serial Monitor the Code will reset and the first run to read the value is correct second time fails again

int Relais1 = 2; //Relais 1 an Port 2
int Relais2 = 3; //Relais 2 an Port 3
int Relais3 = 4; //Relais 3 an Port 4
int Relais4 = 5; //Relais 4 an Port 5
int Relais5 = 6; //Relais 5 an Port 6
int Relais6 = 7; //Relais 6 an Port 7
int Relais7 = 8; //Relais 7 an Port 8

int LEDrot = 10; //LED anschliessen an Port 10
int LEDgelb = 11; //LED anschliessen an Port 11
int LEDgruen = 12; //LED anschliessen an Port 12

int Sensor1 = A5; //Feuchtesensor an Analogeingang 5
int Sensor2 = A4; //Feuchtesensor an Analogeingang 4
//int Sensor3 = A3; //Feuchtesensor an Analogeingang 3
//int Sensor4 = A2; //Feuchtesensor an Analogeingang 2

int Sensorwert1 = 0; //initialisiert den Sensorwert 
int Sensorwert2 = 0; //initialisiert den Sensorwert
//int Sensorwert3 = 0; //initialisiert den Sensorwert
//int Sensorwert4 = 0; //initialisiert den Sensorwert

int Bewaesserungszeit = 3000; //legt fest, wie lange die Pumpe läuft

int Messintervall = 10000; //legt das Messintervall fest

float Sensorspannung1 = A0; //A0 versorgt den Sensor mit 5 Volt
float Sensorspannung2 = A1; //A1 versorgt den Sensor mit 5 Volt
//float Sensorspannung3 = A2; //A2 versorgt den Sensor mit 5 Volt
//float Sensorspannung4 = A3; //A3 versorgt den Sensor mit 5 Volt

float Spannung1;
float Spannung2;
//float Spannung3;
//float Spannung4;

void setup(){
pinMode(Sensor1, INPUT); //Sensoreingang
pinMode(Sensor2, INPUT); //Sensoreingang
//pinMode(Sensor3, INPUT); //Sensoreingang
//pinMode(Sensor4, INPUT); //Sensoreingang


pinMode(Sensorspannung1, OUTPUT); //Spannungsausgang
pinMode(Sensorspannung2, OUTPUT); //Spannungsausgang
//pinMode(Sensorspannung3, OUTPUT); //Spannungsausgang
//pinMode(Sensorspannung4, OUTPUT); //Spannungsausgang

pinMode(Relais1, OUTPUT); //Relaisausgang 1
pinMode(Relais2, OUTPUT); //Relaisausgang 2
pinMode(Relais3, OUTPUT); //Relaisausgang 3
pinMode(Relais4, OUTPUT); //Relaisausgang 4
pinMode(Relais5, OUTPUT); //Relaisausgang 5
pinMode(Relais6, OUTPUT); //Relaisausgang 6
pinMode(Relais7, OUTPUT); //Relaisausgang 7

pinMode(LEDgruen, OUTPUT); //LEDgrün Ausgang
pinMode(LEDgelb, OUTPUT); //LEDgelb Ausgang
pinMode(LEDrot, OUTPUT); //LEDrot Ausgang

Serial.begin(9600); //Start des Serial Monitors
}


void loop(){

digitalWrite(Sensorspannung1, HIGH); //Einschalten der Sensorspannung
digitalWrite(Sensorspannung2, HIGH); //Einschalten der Sensorspannung
//digitalWrite(Sensorspannung3, HIGH); //Einschalten der Sensorspannung
//digitalWrite(Sensorspannung4, HIGH); //Einschalten der Sensorspannung
delay(1000); //Wartezeit 1 Sekunde

Sensorwert1 = 0; //initialisiert den Sensorwert 
Sensorwert2 = 0; //initialisiert den Sensorwert
//Sensorwert3 = 0; //initialisiert den Sensorwert
//Sensorwert4 = 0; //initialisiert den Sensorwert

Sensorwert1 = analogRead(Sensor1); //Lesen des Sensorwertes
Sensorwert2 = analogRead(Sensor2); //Lesen des Sensorwertes
//Sensorwert3 = analogRead(Sensor3); //Lesen des Sensorwertes
//Sensorwert4 = analogRead(Sensor4); //Lesen des Sensorwertes

digitalWrite(Sensorspannung1, LOW); //Ausschalten der Sensorspannung
digitalWrite(Sensorspannung2, LOW); //Ausschalten der Sensorspannung
//digitalWrite(Sensorspannung3, LOW); //Ausschalten der Sensorspannung
//digitalWrite(Sensorspannung4, LOW); //Ausschalten der Sensorspannung

Serial.print("Sensorwert 1 : ");
Serial.println(Sensorwert1); //Ausgabe des Sensorwertes auf den Monitor
Serial.print("Sensorwert 2 : ");
Serial.println(Sensorwert2); //Ausgabe des Sensorwertes auf den Monitor
//Serial.print("Sensorwert 3 : ");
//Serial.println(Sensorwert3); //Ausgabe des Sensorwertes auf den Monitor
//Serial.print("Sensorwert 4 : ");
//Serial.println(Sensorwert4); //Ausgabe des Sensorwertes auf den Monitor


Spannung1 = Sensorwert1*5.00/1024;
Spannung2 = Sensorwert2*5.00/1024;
//Spannung3 = Sensorwert3*5.00/1024;
//Spannung4 = Sensorwert4*5.00/1024;


Serial.print("Spannung am Sensor 1 : ");
Serial.print(Spannung1);
Serial.println(" Volt"); //Ausgabe der Spannung am Sensor
Serial.print("Spannung am Sensor 2 : ");
Serial.print(Spannung2);
Serial.println(" Volt"); //Ausgabe der Spannung am Sensor
//Serial.print("Spannung am Sensor 3: ");
//Serial.println(Spannung3);
//Serial.print("Spannung am Sensor 4: ");
//Serial.println(Spannung4);
//Serial.println(" Volt"); //Ausgabe der Spannung am Sensor
Serial.print("Widerstand der Blumenerde in Topf 1 : ");
Serial.print(680*Spannung1/(5-Spannung1));
//Serial.print(100*Spannung1/(5-Spannung1));
Serial.println(" kOhm"); //Ausgabe des Widerstandes der Blumenerde
Serial.print("Widerstand der Blumenerde in Topf 2 : ");
Serial.print(680*Spannung2/(5-Spannung2));
//Serial.print(100*Spannung1/(5-Spannung1));
Serial.println(" kOhm"); //Ausgabe des Widerstandes der Blumenerde

delay(1000); //Wartezeit 1 Sekunde
digitalWrite(Sensorspannung1, LOW); //Ausschalten der Sensorspannung
digitalWrite(Sensorspannung2, LOW); //Ausschalten der Sensorspannung
if (Sensorwert1 > 700) //Prüfen des Sensorwertes
{
digitalWrite(LEDgruen, LOW); //Ausschalten der grünen LED
Serial.println(" Gruen aus"); //Ausgabe
digitalWrite(LEDrot, HIGH); //Einschalten der roten LED
Serial.println(" Rot ein"); //Ausgabe
delay(2000); //Wartezeit 2 Sekunden
digitalWrite(LEDgelb, HIGH); //Einschalten der gelben LED
Serial.println(" Gelb ein"); //Ausgabe
digitalWrite(Relais1, HIGH); //Einschalten der Pumpe
Serial.println(" Pumpe ein"); //Ausgabe
delay(Bewaesserungszeit); //Einschaltdauer der Pumpe
digitalWrite(LEDgelb, LOW); //Ausschalten der gelben LED
Serial.println(" Gelb aus"); //Ausgabe
digitalWrite(Relais1, LOW); //Ausschalten der Pumpe
Serial.println(" Pumpe aus"); //Ausgabe
}
else
{
digitalWrite(LEDrot, LOW); //Ausschalten der roten LED
Serial.println(" Rot aus"); //Ausgabe
digitalWrite(LEDgruen, HIGH); //Einschalten der grünen LED
Serial.println(" Gruen ein"); //Ausgabe
}
delay(Messintervall); //Wartezeit Messintervall
}

LOG:

Sensorwert 1 : 989 Sensorwert 2 : 788 Spannung am Sensor 1 : 4.83 Volt Spannung am Sensor 2 : 3.85 Volt Widerstand der Blumenerde in Topf 1 : 19214.86 kOhm Widerstand der Blumenerde in Topf 2 : 2270.51 kOhm Gruen aus Rot ein Gelb ein Pumpe ein Gelb aus Pumpe aus

Sensorwert 1 : 437 Sensorwert 2 : 426 Spannung am Sensor 1 : 2.13 Volt Spannung am Sensor 2 : 2.08 Volt Widerstand der Blumenerde in Topf 1 : 506.24 kOhm Widerstand der Blumenerde in Topf 2 : 484.41 kOhm Rot aus Gruen ein

Question: Correct : Sensorwert 1 : 989 Wrong : Sensorwert 1 : 437

I can´t understand why it will not work in loop, and if i open the serial Monitor the Programm will be reset and is working same result , firast reading is correct all following reads are wrong.

Regards Gerhard

What sensors are these and how are they connected? The code (apart from being hard to read without any indentation), seems to be doing something sensible: turn power on, wait 1 second, read sensors, turn power off.

So I wonder what sensors, how they have their supply controlled? Could this be a power issue?

Have you tried connecting a multimeter to measure the sensor output to verify the values from analogRead()?

Your code has:

if (Sensorwert1 > 700) //Prüfen des Sensorwertes

The first time through, Sensorwert1 is printed with a value of 989.
The second time through, Sensorwert1 is printed with a value of 437.

What did you expect to have happen?

Found the Problem, Sensor was not realy good connected, After soldering again. It is now working properly

THX for Reading 8)

float Sensorspannung1 = A0; //A0 versorgt den Sensor mit 5 Volt
float Sensorspannung2 = A1; //A1 versorgt den Sensor mit 5 Volt

pinMode(Sensorspannung1, OUTPUT); //Spannungsausgang
pinMode(Sensorspannung2, OUTPUT); //Spannungsausgang

Why are the pin numbers stored in float variables?