Hallo zusammen,
ich habe ein Problem mit meinem Arduino und den 433 MHZ Sende-und
Empfangsmodule.
Das Sende-Modul ist auf meinem Arduino UNO angeschlossen.
Das Empfangsmodul auf meinem Arduino MICRO.
Das Senden und empangen funktioniert zwar perfekt, aber ich bekomme
mehrmals die gleiche Zahl gesendet.
Wenn ich z.B. mit dem Sender die Zahl '1' einmal sende, dann kommt diese
beim Empfänger so lange an, bis ich mit dem Sender wieder die nächste
Zahl sende.
Hier mal die beiden Codes:
1 | //Sender-Code:
|
2 |
|
3 | #include <RCSwitch.h>
|
4 | RCSwitch mySwitch = RCSwitch();
|
5 |
|
6 | void setup()
|
7 | {
|
8 | Serial.begin(9600);
|
9 | // Transmitter is connected to Arduino Pin #12
|
10 | mySwitch.enableTransmit(12);
|
11 |
|
12 | // Optional set pulse length.
|
13 | // mySwitch.setPulseLength(320);
|
14 |
|
15 | // Optional set protocol (default is 1, will work for most outlets)
|
16 | // mySwitch.setProtocol(2);
|
17 |
|
18 | // Optional set number of transmission repetitions.
|
19 | // mySwitch.setRepeatTransmit(15);
|
20 | }
|
21 |
|
22 | void loop()
|
23 | {
|
24 | mySwitch.send(1, 24);
|
25 | Serial.println("1 EINS");
|
26 |
|
27 | delay(500);
|
28 | mySwitch.send(2, 24);
|
29 | Serial.println("2 ZWEI");
|
30 |
|
31 | delay(500);
|
32 | mySwitch.send(2000, 24);
|
33 | Serial.println("2000 ZWEI TAUSEND");
|
34 | Serial.println("\t");
|
35 |
|
36 | delay(2000);
|
37 | }
|
1 | //Emfpänger-Code:
|
2 |
|
3 | #include <RCSwitch.h>
|
4 | RCSwitch mySwitch = RCSwitch();
|
5 |
|
6 | void setup()
|
7 | {
|
8 | Serial.begin(9600);
|
9 | mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2, //pin 3 on Arduino MICRO
|
10 | }
|
11 |
|
12 |
|
13 |
|
14 | void loop()
|
15 | {
|
16 | if (mySwitch.available())
|
17 | {
|
18 | int value = mySwitch.getReceivedValue();
|
19 |
|
20 | if (value == 0)
|
21 | {
|
22 | Serial.println("Encoding Error");
|
23 | }
|
24 |
|
25 | else
|
26 | {
|
27 | Serial.println(value);
|
28 | }
|
29 |
|
30 | //mySwitch.resetAvailable();
|
31 | }
|
32 | }
|
Im Bild kann man die Ausgabe des SerialMonitors sehen. Dort ist als
Beispiel die Zahl '2' gewählt worden. Sie wird vom Sender, wie im Code
sichbar, nur einmal gesendet, beim Empfänger kommt sie aber solange an,
bis ich die nächste Zahl, im Beispiel die '2000', sende.
Das möchte ich nicht. Ich möchte, dass die Zahl nur einmal ankommt bzw.
ausgegeben wird.
Danke schon im Voraus für Antworten!