Arduino - Werte nur einmal ausgeben

OP #4304913
Lesenswert?
• ▲
▼
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!
Angehängte Dateien:
Gast #4304917
Lesenswert?
• ▲
▼
Teddy B. schrieb:
> Im Bild kann man die Ausgabe des SerialMonitors sehen.

Welches Bild?

Erstmal solltest du prüfen, ob laufend gesendet wird oder über deine 
RCSwitch Bibliothek im Empfänger immer den gleichen Wert zurückliefert, 
bis der Empfang bestätigt wurde.

Tip: Üblicherweise gibt es zu den Arduino Bibliotheken funktionsfähige 
Beispiele auf die man aufbauen kann.
(Firma: Nisch-Aufzüge) Persönliche Seite #4305198
Lesenswert?
• ▲
▼
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
          if (oldvalue !=value) 
28
          {
29
               Serial.println(value);
30
               oldvalue=value;
31
          }
32
      }    
33
    //mySwitch.resetAvailable();
34
  }
35
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.