Code:
#include <RCSwitch.h>
int led = 5; // LED pin (D1)
int button_1 = 16; // push button is connected (D0)
int button_2 = 5; // müste wohl D1 sein ??? wo der button dran hängt hier den entsprechendn Wert eintragen
int temp = 0; // temporary variable for reading the button pin status
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT); // declare LED as output
pinMode(button_1, INPUT); // declare push button as input ersten button
pinMode(button_2, INPUT); // declare push button as input zweiter button
mySwitch.enableTransmit(0); //Daten PIN D3 für das Sender Modul
// Optional set protocol (default is 1, will work for most outlets)
mySwitch.setProtocol(1);
// Optional set pulse length.
mySwitch.setPulseLength(759);
}
void loop() {
temp = digitalRead(button_1); // hier fragst Du den ersten Button ab, der Status landet in temp
if (temp == LOW) {
digitalWrite(led, LOW);
Serial.println("bereit zum senden!");
delay(1000);
} else // ansonsten kann er nur High sein
{
digitalWrite(led, HIGH);
/* Binärcode für die Klingel (433MHZ) */
mySwitch.send("010010010100000101000001");
Serial.println("Signal wurde gesendet");
delay(500);
}
temp = digitalRead(button_2); // hier fragst Du den zweiten Button ab, der Status landet wieder in temp
if (temp == LOW) {
digitalWrite(led, LOW);
Serial.println("bereit zum senden!");
delay(1000);
} else // ansonsten kann er nur High sein
{
digitalWrite(led, HIGH);
/* Binärcode für die Klingel (433MHZ) */
mySwitch.send("010010010100000101000001");
Serial.println("Signal wurde gesendet");
delay(500);
}
}
das ist nur ganz grob wie es sein könnte, aber nicht wirklich gut....
In deinem Programm sendet er eigentlich IMMER, weil ja der Button entweder high oder low ist.
Eigentlich gibt es ja nur Sinn zu senden wenn der Button gedrückt wird und dann auch nur einmal.
Man sollte also dann nix mehr tun, bis der Button wieder losgelassen wurde.
Und dann noch nen Moment warten, weit die Tasten meistens Prellen (mehrfach Auslösung) während der Kontakt
schließt oder sich öffnet.
Lesezeichen