Zum Inhalt springen

Antwort auf: Unabhänige Loops Programmieren

Projekte und Tutorials für Arduino Foren StartHardware-Forum Unabhänige Loops Programmieren Antwort auf: Unabhänige Loops Programmieren

#7678
DoubleDee
Teilnehmer

Okay, ich hab mir jetzt mal diesen Quellcode zusammen gebastelt:

int MotstepPin= 7;
int MotdirPin= 6;
int RegSens= 14;
int Schalter= 5;
int wRegSensZustand= 1;

void setup() {
Serial.begin(9600);

pinMode(MotstepPin, OUTPUT);
pinMode(MotdirPin, OUTPUT);
pinMode(RegSens, INPUT);

}

void loop() {

switch (wRegSensZustand) {

case 1:

int RegSens = analogRead(14);
Serial.println(RegSens);
if (RegSens >= 1015){

for (int x = 0; x < 200; x++){
digitalWrite(MotdirPin, HIGH);
digitalWrite (MotstepPin, HIGH);
delayMicroseconds (800);
digitalWrite (MotstepPin, LOW);
delayMicroseconds (800);

wRegSensZustand = 2;
}
}
break;

Serial.println(“case 2”);
case 2:
RegSens = analogRead(14);

Serial.println(RegSens);
delay (500);

if (RegSens <1015) {
for (int x= 0; x= 10; x++){
digitalWrite(MotdirPin, LOW);
digitalWrite (MotstepPin, HIGH);
delayMicroseconds (600);
digitalWrite (MotstepPin, LOW);
delayMicroseconds (600);
}

wRegSensZustand = 1;
}
else {

wRegSensZustand = 3;
}

break;

case 3:
if ( digitalRead(Schalter) == HIGH) { // Code prüfen

digitalWrite(MotdirPin, LOW) ;
for (int x= 0; x= 10; x++)
{
digitalWrite (MotstepPin, HIGH);
delayMicroseconds (600);
digitalWrite (MotstepPin, LOW);
delayMicroseconds (600);
}

delay (30000) ;

wRegSensZustand = 1;
}
else {
wRegSensZustand = 2;
}
break;
} //Ende switch
} // Ende loop

In diesem Code soll ein Fenster geöffnet werden wenn es trocken ist bzw geschlossen werden wenn es Regnet.

Im Fall 1 gehe ich davon aus das dass Fenster geschlossen ist.
Es soll über den RegSens geprüft werden ob es Regnet oder nicht, wenn nicht soll Fenster mit einem Steppermotor geöffnet werden.
Bis hier hin funktioniert es so wie ich es will, Wenn dann das Fenster geöffnet ist, soll er mit Fall 2 weiter machen und nachsehen ob es Regnet, wenn nicht soll er zu Fall 3 gehen und prüfen ob ein Taster gedrückt wurde. Der Taster dient zum “manuellen” schließen des Fensters falls es draußen noch trocken ist und das Fenster nich automatisch zu geht.
Mein Problem ist, das er nach dem Fall 1 nicht in den Fall 2 Wechselt.

Den code den ich geschrieben habe, hab ich mir zum Teil aus diesem Tutorial abgeleitet. https://www.stummiforum.de/viewtopic.php?f=21&t=163493
Vieleicht findet jemand den Fehler der mit unterlaufen ist.
(Der fall 3 ist noch nicht vollständig, ich habe den Schalter noch nicht implementiert! Will erstmal erreichen, dass er in die Fälle springt in die er soll.)

Danke MfG DD