versteht überhaupt jemand außer mir die anlage?

jetzt die Anlage komplett zu erklären würde den rahmen des ganzen etwas sprengen, deshalb fasse ich es etwas kurz: die Anlage ist eine Art Klingel Anlage die mit einem Alarm und Signal leds ausgestattet ist
DAS PROBLEM:
ich bekomme es nicht hin das der Alarm 15 Sekunden nach der Türöffnung an geht aber sofort wieder aus nachdem die Tür geschlossen wurde. im Skript befindet sich dieser Bereich in den Zeilen 104-122.

hoffe ihr könnt mir helfen

euer MAXWFK

t_rklingel4.ino (2.78 KB)

Stelle den Sketch bitte in Codetags (oben links </> oder [code] davor und [/code] dahinter - ohne die *).

Dann kann das jeder sauber lesen. Das kannst Du auch noch nachträglich editieren. Tu das bitte.

Gruß Tommy

maxwfk:
DAS PROBLEM:

Versuche ich zu lösen, sobald ich Deinen Sketch ausgedruckt habe.

maxwfk:
hoffe ihr könnt mir helfen

Bislang habe ich Deinen Code nur ein bisschen aufgehübscht (im Wesentlichen die Einrückungen an die Art angepasst, die ich gewohnt bin). Wahrscheinlich lachen die Anderen inzwischen über mich, weil ich das Aufhübschen so mag :slight_smile:

Gruß

Gregor

Ach ja, Dein Code [update]:

byte button1 = 52;
byte button2 = 53;
byte button3 = 51;
byte button4 = 50;
byte green1 = 29;
byte green2 = 28;
byte red1 = 27;
byte red2 = 26;
byte aufnahme = 24;
byte aufnahme2 = 23;
byte tur = 22;
byte orange = 25;
byte button1State = 0;
byte button2State = 0;
byte button3State = 0;
byte button4State = 0;
byte alarm = 40;

void setup()
{
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(button3, INPUT);
  pinMode(button4, INPUT);
  pinMode(green1, OUTPUT);
  pinMode(green2, OUTPUT);
  pinMode(red1, OUTPUT);
  pinMode(red2, OUTPUT);
  pinMode(aufnahme, OUTPUT);
  pinMode(tur, OUTPUT);
  pinMode(aufnahme2, OUTPUT);
  pinMode(orange, OUTPUT);
  pinMode(alarm, OUTPUT);
}

void loop()
{
  button4State = digitalRead(button4); //?


  if (digitalRead(button3) == HIGH)
  {
    digitalWrite(aufnahme, HIGH);
    digitalWrite(aufnahme2, HIGH);
  }
  else
  {
    digitalWrite(aufnahme, LOW);
    digitalWrite(aufnahme2, LOW);
  }
  if (digitalRead(button1) == HIGH)
  {
    digitalWrite(red2, LOW);
    digitalWrite(green2, HIGH);
    digitalWrite(red1, LOW);
    digitalWrite(green1, HIGH);
    delay(1000);
  }
  else
  {
    digitalWrite(red2, HIGH);
    digitalWrite(green2, LOW);
    digitalWrite(red1, HIGH);
    digitalWrite(green1, LOW);
  }
  if (digitalRead(button2) == HIGH)
  {
    digitalWrite(orange, HIGH);
    delay(2000);
    if (button3State == LOW)
    {
      delay(1000);
      digitalWrite(green2, HIGH);
      digitalWrite(green1, HIGH);
      digitalWrite(red2, LOW);
      digitalWrite(red1, LOW);
      delay(2000);
    }
    else
    {
      digitalWrite(green2, LOW);
      digitalWrite(green1, LOW);
      digitalWrite(red2, HIGH);
      digitalWrite(red1, HIGH);
      digitalWrite(aufnahme, LOW);
      digitalWrite(aufnahme2, LOW);
      delay(300);
      digitalWrite(aufnahme, HIGH);
      digitalWrite(aufnahme2, HIGH);
      delay(300);
      digitalWrite(aufnahme, LOW);
      digitalWrite(aufnahme2, LOW);
      delay(300);
      digitalWrite(aufnahme, HIGH);
      digitalWrite(aufnahme2, HIGH);
      delay(300);
      digitalWrite(aufnahme, LOW);
      digitalWrite(aufnahme2, LOW);
      delay(300);
      digitalWrite(aufnahme, HIGH);
      digitalWrite(aufnahme2, HIGH);
      delay(300);
      digitalWrite(aufnahme, LOW);
      digitalWrite(aufnahme2, LOW);
      delay(300);
      digitalWrite(aufnahme, HIGH);
      digitalWrite(aufnahme2, HIGH);
      delay(300);
      digitalWrite(aufnahme, LOW);
      digitalWrite(aufnahme2, LOW);
      delay(300);
    }
  }
  else
  {
    digitalWrite(orange, LOW);
  }
  if (button4State == LOW)
  {
    digitalWrite(tur, HIGH);
    if (digitalRead(button3) == LOW)
    {
      digitalWrite(alarm, HIGH);
    }
    else
    {
      digitalWrite(alarm, LOW);
    }
  }
  else
  {
    digitalWrite(tur, LOW);
    digitalWrite(alarm, LOW);
  }
  if (digitalRead(button4) == LOW)
  {
    digitalWrite(tur, HIGH);
  }
  else
  {
    digitalWrite(tur, LOW);
  }
}

maxwfk:
hoffe ihr könnt mir helfen

Auch durch die Aufhübschung durch gregorss ist der Sketch schlecht lesbar und nicht verständlich.
Warum fügst du keine Dokumentation ein, wenn du den hier postest ?

Was ich schon sagen kann, die vielen "delays" schaden dem Sketch, sodass eine richtige Funktion nicht möglich ist.

Das kann auch nicht funktionieren wenn du diese vielen Delay im Sketch hast.

Schau dir mal folgendes an:

Gruß

gregorss:
Bislang habe ich Deinen Code nur ein bisschen aufgehübscht (im Wesentlichen die Einrückungen an die Art angepasst, die ich gewohnt bin). Wahrscheinlich lachen die Anderen inzwischen über mich, weil ich das Aufhübschen so mag :slight_smile:

Also da gibts nichts zu lachen, ich wäre froh mir ginge es so. Habe noch einige Sketches die seit langem nach Formatierung schreien....... :confused:

Scherheinz:
Also da gibts nichts zu lachen, ich wäre froh mir ginge es so.

Naja, ich habe starke Argumente für meine Aufhübscherei:

  • Ich kapiere eher, wie ein Code abläuft
  • Ich verliere den Überblick nicht
  • Ich mache weniger Fehler
  • Ich habe Zeit

Wobei der letzte Punkt der wahrscheinlich Wichtigste ist. Wahrscheinlich werde ich irgendwann ein unnützer Idiot :slight_smile:

Gruß

Gregor

Die inhaltlichen und zum Verständnis notwendigen Kommentare kannst Du aber (leider) auch nicht ergänzen.

Gruß Tommy

ich bekomme es nicht hin das der Alarm 15 Sekunden nach der Türöffnung an geht aber sofort wieder aus nachdem die Tür geschlossen wurde.

Es gibt also 1 Alarm-Ausgang, und einen Türkontakt-Eingang. Und eine 15 sek Verzögerungszeit.

Und warum baust du nicht zum Spass so einen Sketch mit ca. 5..10 Zeilen ?

  • Wenn das nicht geht, kann man dir leicht helfen.
  • Wenn es geht, erklär bitte genauer, was nicht geht wie du dir es vorstellst.

michael_x:

  • Wenn es geht, erklär bitte genauer, was nicht geht wie du dir es vorstellst.

Der ist gut :slight_smile:

Gregor, bevor es so weit kommt schicke ich dir meine Sketche zu! :smiley: :stuck_out_tongue_closed_eyes:

gregorss:

  • Ich habe Zeit

Und damit Ihr was zum Lachen habt, habe ich hier nochmal den Code, ein bisschen anders (immerhin bekomme ich so loop() in ganzer Länge auf den Schirm :-):

byte button1 = 52; // Das isn Knopf
byte button2 = 53; // Das is nochEiner
byte button3 = 51; // Das ist schonWiederEiner
byte button4 = 50; // Das ist Juergen

byte green1 = 29;  // Vermutlich eine Lampe
byte green2 = 28;  // Vermutlich nochEineLampe
byte red1 = 27;    // Andere Farbe
byte red2 = 26;    // Selbe Farbe

byte aufnahme = 24; // Das isn Ausgang
byte aufnahme2 = 23;// Das is nocheiner
byte tur = 22;      // Das is schonWiederEiner
byte orange = 25;   // Otto

byte button1State = 0; // Ueberfluessig
byte button2State = 0; // dito
byte button3State = 0; // dito
byte button4State = 0; // dito

byte alarm = 40; // Das is wiedereinAusgang (Trudi)

void hierPassiertWas();     // s. Ende
void hierPassiertNochWas(); // s. Ende
void init();                // s. Ende

void setup()
{
 init();
}

void loop()
{
 if (digitalRead(button3) == HIGH) // Was passiert hier?
 { digitalWrite(aufnahme, HIGH); digitalWrite(aufnahme2, HIGH); }
 else
 { digitalWrite(aufnahme, LOW); digitalWrite(aufnahme2, LOW); }

 if (digitalRead(button1) == HIGH) // Was passiert hier?
 { digitalWrite(red2, LOW); digitalWrite(green2, HIGH);
   digitalWrite(red1, LOW); digitalWrite(green1, HIGH);
   delay(1000);
 }
 else
 { digitalWrite(red2, HIGH); digitalWrite(green2, LOW);
   digitalWrite(red1, HIGH); digitalWrite(green1, LOW);
 }

 if (digitalRead(button2) == HIGH)
 { digitalWrite(orange, HIGH);
   delay(2000);
   if (digitalRead(button3) == LOW)
   { hierPassiertNochWas(); } else { hierPassiertWas(); }
 }
 else { digitalWrite(orange, LOW); }

 if (digitalRead(button4) == LOW)
 {
   digitalWrite(tur, HIGH);
   if (digitalRead(button3) == LOW)
   { digitalWrite(alarm, HIGH); } else { digitalWrite(alarm, LOW); }
 }
 else
 { digitalWrite(tur, LOW); digitalWrite(alarm, LOW); }

 if (digitalRead(button4) == LOW)
 { digitalWrite(tur, HIGH); } else { digitalWrite(tur, LOW);
 }
}

// ------------------------------------------------------------------------

void hierPassiertWas() // Aber was?
{
 digitalWrite(green2, LOW); digitalWrite(green1, LOW);
 digitalWrite(red2, HIGH); digitalWrite(red1, HIGH);
 digitalWrite(aufnahme, LOW); digitalWrite(aufnahme2, LOW); delay(300);
 digitalWrite(aufnahme, HIGH); digitalWrite(aufnahme2, HIGH); delay(300);
 digitalWrite(aufnahme, LOW);  digitalWrite(aufnahme2, LOW);  delay(300);
 digitalWrite(aufnahme, HIGH); digitalWrite(aufnahme2, HIGH); delay(300);
 digitalWrite(aufnahme, LOW);  digitalWrite(aufnahme2, LOW);  delay(300);
 digitalWrite(aufnahme, HIGH); digitalWrite(aufnahme2, HIGH); delay(300);
 digitalWrite(aufnahme, LOW);  digitalWrite(aufnahme2, LOW);  delay(300);
 digitalWrite(aufnahme, HIGH); digitalWrite(aufnahme2, HIGH); delay(300);
 digitalWrite(aufnahme, LOW);  digitalWrite(aufnahme2, LOW);  delay(300);
}

void hierPassiertNochWas() // Aber was?
{
 delay(1000);
 digitalWrite(green2, HIGH); digitalWrite(green1, HIGH);
 digitalWrite(red2, LOW); digitalWrite(red1, LOW);
 delay(2000);
}

void init() // Knopf- und Lampen-Pins initialisieren
{
 pinMode(button1, INPUT);
 pinMode(button2, INPUT);
 pinMode(button3, INPUT);
 pinMode(button4, INPUT);
 pinMode(green1, OUTPUT);
 pinMode(green2, OUTPUT);
 pinMode(red1, OUTPUT);
 pinMode(red2, OUTPUT);
 pinMode(aufnahme, OUTPUT);
 pinMode(tur, OUTPUT);
 pinMode(aufnahme2, OUTPUT);
 pinMode(orange, OUTPUT);
 pinMode(alarm, OUTPUT);
}

gregorss:
Naja, ich habe starke Argumente für meine Aufhübscherei:

  • Ich kapiere eher, wie ein Code abläuft....

Und das trifft jetzt auch auf den von dir "aufgehübschten" Sketch zu ?

HotSystems:
Und das trifft jetzt auch auf den von dir "aufgehübschten" Sketch zu ?

Also besser als zuvor ist er so auf alle Fälle. Das musst Du zugeben.

Gruß

Gregor

gregorss:
Also besser als zuvor ist er so auf alle Fälle. Das musst Du zugeben.

Er sieht besser aus, das gebe ich zu.
Mehr nicht. :wink:

HotSystems:
Er sieht besser aus ...

Das ist besser :wink:

Gruß

Gregor

Ja aber bitte nicht noch schöner machen, auf einmal funktioniert er noch zufällig danach :stuck_out_tongue_closed_eyes:

Scherheinz:
Ja aber bitte nicht noch schöner machen, auf einmal funktioniert er noch zufällig danach :stuck_out_tongue_closed_eyes:

Und keiner weiß warum er dann funktioniert. :wink: :wink:

Bevor man

const byte button3=53; // schon wieder einer

sinnvolle Namen und Kommentare geben kann, muss man erstmal wissen, was das ganze macht (oder machen soll). So kann man nur raten, dass sich dahinter vermutlich einer von mehreren Tastern verbirgt.

Das ist das Problem hier. Bis dahin sind Schönheitsoperationen (wie im echten Leben) fragwürdig.

Wenn loop() in voller Länge auf den Bildschirm passt, ist das natürlich sehr gut.