Liebe Community,
Ich will mit diesem Sketch per Joystick ein 4- fach - Relais Ansteuern. Den Werten des Potentiometers sind einzelne Relais zugeordnet. Wenn der Switch- Pin vom Joystick gedrückt wird sollen alle Relais gleichzeitig schalten.
Leider funktionert der Switch- Pin noch nicht richtig. Ich vermute, dass der Sketch einen Widerspruch beeinhaltet, weil der Sensorwert 0 beim Auslesen der Potentiometer und beim Drücken des Switch- Pins eine Bedingung erfüllt. Der Beweis dafür ist, dass wenn ich nur relais 1 und 2 ( bei denen der Sensorwert 0 keine Rolle spielt) per Switch- Pin schalte, alles funktioniert und sobald ich relais 3 oder 4 mit einbeziehe nicht mehr. Relais 3 und 4 scheinen dann wie wild an und auszuschalten.
Unten im Sketch seht ihr wo die Fehler liegen müssten. Ich würde mich extrem freuen wenn mir jemand helfen könnte!
Mit freundlichen Grüßen Leonardo
Hier ist der Sketch:
int relaisEins = 8;
int relaisZwei = 9;
int relaisDrei = 10;
int relaisVier = 11;
int SensorWert = 0;
int button= 2;
void setup()
{
pinMode(relaisEins, OUTPUT);
pinMode(relaisZwei, OUTPUT);
pinMode(relaisDrei, OUTPUT);
pinMode(relaisVier, OUTPUT);
pinMode(button, INPUT_PULLUP);
Serial.begin(9600);
}
void loop()
{
if (digitalRead(button) == LOW) //Hier ist das Problem
{
digitalWrite(relaisEins, HIGH);
digitalWrite(relaisZwei,HIGH);
}
SensorWert = analogRead(A0);
Serial.print("X:");
Serial.print(SensorWert, DEC);
if (SensorWert > 1010)
{
digitalWrite(relaisDrei, HIGH);
}
if (SensorWert < 1010)
{
digitalWrite(relaisDrei, LOW); // und hier
}
if (SensorWert < 20)
{
digitalWrite(relaisVier, HIGH); // und hier
}
if (SensorWert > 20)
{
digitalWrite(relaisVier, LOW);
}
SensorWert = analogRead(1);
Serial.print(" |Y:");
Serial.print(SensorWert, DEC);
if (SensorWert > 1010)
{
digitalWrite(relaisEins, HIGH);
}
if (SensorWert < 1010)
{
digitalWrite(relaisEins, LOW);
}
if (SensorWert > 20)
{
digitalWrite(relaisZwei, LOW);
}
if (SensorWert < 20)
{
digitalWrite(relaisZwei, HIGH);
}
}