Hallo zusammen
Ich ich stelle eine Steuerung für eine Dampflok (Für eine Ausstellung) zusammen.
Mit:
- Ardunio UNO R3
- 4 Relay Shield V3.0 von seeed studio
- RGB-LED Taster
- 12v LED rot
- Schwimmerschalter
- Vernebler 220V
- zwei 12V Lüfter
Ist der Wasserstand im Behälter gut, (Schwimmschalter HIGH) dann durchlaufe den Code. Soweit alles gut.
Ist der Wasserstand nicht gut (Schwimmschalter LOW)
schalte die rote 12v LED via Relay ein
die Farbe auf rot vom RGB-LED
blockiere den Code bis das Wasser aufgefüllt wurde
Ich möchte, dass sobald das Wasser aufgefüllt wurde, der Code wieder läuft.
Ich bekomm es einfach nicht hin. Springt ev. jemand den Fehler an?
int LEDrot = 9; //Das Wort „LEDrot“ steht jetzt für den Wert 9.
int LEDgruen = 10; //Das Wort „LEDgrün“ steht jetzt für den Wert 10.
int Taster = 11; //Das Wort „Taster“ steht jetzt für den Wert 11.
int Schwimmer = 12; //Das Wort „Schwimmer“ steht jetzt für den Wert 12.
int Tasterstatus = 0; //Das Wort „tasterstatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der Taster gedrückt ist oder nicht.
int Schwimmerstatus = 0; //Das Wort „Schwimmerstatus“ steht jetzt zunächst für den Wert 0. Später wird unter dieser Variable gespeichert, ob der Schwimmer HIGH ist oder nicht.
int Relay_1 = 7; //Das Wort „Relay_1“ steht jetzt für den Wert 7. //Lüfter
int Relay_2 = 6; //Das Wort „Relay_2“ steht jetzt für den Wert 6. //LEDWarn
int Relay_3 = 5; //Das Wort „Relay_3“ steht jetzt für den Wert 5. //Nebel
int FanPin = 3; //DatenPin für den Lüfter
void setup()
{
TCCR2B = TCCR2B & 0b11111000 | 0x01; //Timer 2(PWM Pins 3 und 11)
pinMode(FanPin, OUTPUT); //Setzt den Pin des Lüfters als Ausgang
pinMode(LEDrot, OUTPUT); //Der Pin mit der LEDrot (Pin 9) ist jetzt ein Ausgang auf den LED vom Taster
pinMode(LEDgruen, OUTPUT); //Der Pin mit der LEDgrün (Pin 10) ist jetzt ein Ausgang auf den LED vom Taster
pinMode(Taster, INPUT); //Der Pin mit dem Taster (Pin 11) ist jetzt ein Eingang.
pinMode(Schwimmer, INPUT); //Der Pin mit dem Schwimmer (Pin 12) ist jetzt ein Eingang.
pinMode(Relay_1, OUTPUT); //Der Pin 7 ist ein Ausgang
pinMode(Relay_2, OUTPUT); //Der Pin 6 ist ein Ausgang
pinMode(Relay_3, OUTPUT); //Der Pin 5 ist ein Ausgang
digitalWrite(LEDgruen, HIGH); //grüne LED ein
}
void loop()
{
Schwimmerstatus = digitalRead(12); //Hier wird der Pin12 ausgelesen. Das Ergebnis wird unter der Variable „Schwimmerstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert
if (Schwimmerstatus == LOW) //Ist der Schwimmerstatus LOW, dann wird das Programm so lange deaktiviert, bis dass Wasser nachgefüllt worden ist.
{
digitalWrite(LEDrot, HIGH); //rote LED ein
digitalWrite(Relay_2, HIGH); //WarnLED Relay ein
digitalWrite(LEDgruen, LOW); //grüne LED aus
}
else
{
Tasterstatus = digitalRead(Taster); //Hier wird der Pin11 ausgelesen. Das Ergebnis wird unter der Variable „tasterstatus“ mit dem Wert „HIGH“ für 5Volt oder „LOW“ für 0Volt gespeichert
if (Tasterstatus == HIGH)
{
digitalWrite(LEDrot, LOW); //rote LED aus
digitalWrite(Relay_2, LOW); //WarnLED Relay aus
digitalWrite(LEDgruen, HIGH); //grüne LED ein
digitalWrite(Relay_3, HIGH);
delay(5000);
digitalWrite(Relay_1, HIGH);
analogWrite(FanPin, 70);
delay(1000);
analogWrite(FanPin, 180);
delay(1000);
analogWrite(FanPin, 225);
delay(4000);
digitalWrite(Relay_3, LOW);
delay(5000);
digitalWrite(Relay_1, LOW);
delay(5000);
digitalWrite(LEDrot, LOW); //rote LED aus
digitalWrite(LEDgruen, HIGH); //grüne LED ein
}
}
}