Hallo zusammen,

habe hier doch noch ein kleines Problem....

Wenn der Button zu lang gedrückt wird, durchläuft es die gesamte Schleife und sendet beide Signale gleichzeit, obwohl der Button 2 nicht gerückt wird!?

Hier nochmal der Code:
Code:
#include <RCSwitch.h>

int led = 5;       // LED pin (D1)
int button_1 = 15; // Push Button 1 ist an Pin (D8)
int button_2 = 13; // Push Button 2 ist an Pin (D7)
int zaehler_b1;
int zaehler_b2;
int status;

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);   // LED als Ausgang deklarieren
  pinMode(button_1, INPUT); // Button 1 als Eingangssignal deklarieren
  pinMode(button_2, INPUT); // Button 2 als Eingangssignal deklarieren
  mySwitch.enableTransmit(0); //Daten PIN D3 für das Sender Modul
  // Optional Protokol (Standart ist 1)
  mySwitch.setProtocol(1);

  // Optional - Impulslänge festlegen.
  mySwitch.setPulseLength(759);
}

void loop(void)
{

  status = digitalRead(button_1);
  if (status == 0)          // wenn Taste gedrückt ist (pin ist low)
  {
    zaehler_b1++;           // eins hochzaehlen
    if (zaehler_b1 == 20)   // wurde die Taste mindestens 20ms gedrückt dann
    {
        /*Status LED geht an*/
        digitalWrite(led, HIGH);
        /* Binärcode für die Klingel wird gesendet(433MHZ) */
        mySwitch.send("000000000");
        Serial.println("Signal 1 wurde gesendet");
        /*Status LED geht wieder aus*/
        digitalWrite(led, LOW);
    }
  } else zaehler_b1 = 0;    // Taste wurde losgelassen, also zaehler auf 0 setzen

  status = digitalRead(button_2);
  if (status == 0)    // wenn Taste gedrückt ist (pin ist low)
  {
    zaehler_b2++;
    if (zaehler_b2 == 20)   // wurde die Taste mindestens 20ms gedrückt dann
    {
        /*Status LED geht an*/
        digitalWrite(led, HIGH);
        /* Binärcode für die Klingel (433MHZ) */
        mySwitch.send("000000000");
        Serial.println("Signal 2 wurde gesendet");
        /*Status LED geht wieder aus*/
        digitalWrite(led, LOW);
    }
  } else zaehler_b2 = 0;    // Taste wurde losgelassen, also zaehler auf 0 setzen

  delay(1);    // nur 1 Millisekunde warten

}
Vielen Dank für eure Hilfe