Zum Inhalt springen

DoubleDee

Verfasste Forenbeiträge

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beiträge
  • als Antwort auf: Unabhänige Loops Programmieren #7847
    DoubleDee
    Teilnehmer

    Danke für die Hilfe, hab mittlerweile alles so hin bekommen wie ich es wollte. Mein Fehler war ein falsch gesetztes oder ein fehlendes Semikolon.

    als Antwort auf: Unabhänige Loops Programmieren #7680
    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, welches mir Franz-Peter im vorherigen post gezeigt hat, abgeleitet.
    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

    als Antwort auf: Unabhänige Loops Programmieren #7679
    DoubleDee
    Teilnehmer

    Warum wirde meinen letzter Eintrag nicht veröffentlicht?

    als 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

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)