kk logo

Um Drahtlos Daten von einem Arduino zum anderen zu senden, bieten sich die kleinen RF 433mhz Chips an. Diese sind günstig, funktionieren gut und lassen sich leicht mit Ardublock Programmieren. Sie eignen sich für kleine Datenverbindungen mit einem Abstand von wenigen Metern. Die beiden Module können mit kleinen Antennen ausgestattet werden, wodurch die Reichweite erhöht wird. Da es einen Sender und einen Empfänger gibt, ist klar dass das Senden nur ein "Richtung" Funktioniert, ähnlich wie bei einer IR Fernbedienung. 

 Anschluss der RF Platini an den Arduino

Sender und Empfänger bekommen jeweils VCC und GND. Der Data Pin des Senders kann frei gewählt werden, ich habe hier PIN 10 verwendet. Der Empfänger muss an einen der beiden Interrupt Pins angeschlossen werden, ich habe den PIN 2 verwendet.

1 Arduino rf 433mhz Sender und Empfänger mit Ardublock Programmieren

 Programmierung des RF Senders

Das"include" und das RCSwitsch" bliebt immer gleich, egal ob Sender oder Empfänger, mit diesen beiden Zeilen wird das RF Modul im Arduino bereitgestellt. 

Nun folgt im Setup Teil das "enableTransmit (10)", mit diesm Code wird der PIN definiert an dem der Sender angeschlossen ist, hier der PIN 10.  

Nun kann über den Code "mySwitsch.send" eine Zahl gesendet werden. Je nachdem ob der digitale Eingang 2 oder 3 HIGH ist wird eine 1 oder eine 0 gesendet. Die Zahl 24 hat nichts mit der zu senden Zahl zu tun und muss nach dem Komma, so stehen bleiben. 

4 Arduino rf 433mhz Sender und Empfänger mit Ardublock Programmieren

 Um eine Variable zu senden muss in die Klammer der Name einer Variable eingefügt werden. Hier die Variable "value" die den Wert eines Analogen Eingangs enthält.   

5 Arduino rf 433mhz Sender und Empfänger mit Ardublock Programmieren

 Programmierung des RF Empfängers

Über den Code "mySwitsch.enableReceive(0)", wird der PIN des Empfängers definiert. Die Zahl steht aber nicht direkt für den digitalen PIN sondern für die Nummer des Interrupt PIN. Interrupt PIN 0 = digitaler PIN 2, Interrupt PIN 1 = digitaler PIN 3. Ich verwende hier also den digitalen PIN 2 für den Empfänger. Über den Code "mySwitsch.getReceivedValue", wird die Empfange Zahl in die Variable "value" geschrieben. Mit dieser Variablen kannst du nun weiter programmieren. 

Wird die Zahl 1 oder 0 Empfangen, wie aus dem ersten Senderbeispiel, eine LED an PIN 5 ein- oder ausgeschaltet. Hier an einem analogen PIN ohne Widerstand. 

6 Arduino rf 433mhz Sender und Empfänger mit Ardublock Programmieren

Hier wird die LED gedimmt, mit dem Wert des Poti aus dem zweiten Senderbeispiel. 

7 Arduino rf 433mhz Sender und Empfänger mit Ardublock Programmieren

Achtung! unter umständen ist es nötig den "myswitch" zu resetten, das ist dann wichtig, wenn der Wert nicht mehr übermittelt wird. Dann muss über eine "undnicht" Bedingungen abgefragt werden ob "keine" 0 ist, und nur dann darf die Variable übernommen werden. Um nun eine 0 zu generieren, zum Beispiel bei einem analogen Signal, muss -1 gerechnet werden. Dabei muss beachtet werden dass sich eine RF 433 Verbindung nicht zum übertragen von schnellen Verbindungen geigend ist, zumindest nicht mit Ardublock. 

8 Arduino rf 433mhz Sender und Empfänger mit Ardublock Programmieren 

 

 

Texte für kopieren und einfügen:

  • Sender und Empfänger
    • Code für globalen Bereich
      • #include <RCSwitch.h>
      • RCSwitch mySwitch = RCSwitch();
  • Sender
    • Setup
      • mySwitch.enableTransmit(10); 
    • Loop 
      • Zahl (1) senden
        • mySwitch.send(1, 24);
      • Zahl (0) senden
        • mySwitch.send(0, 24);
      • Variable senden
        • mySwitch.send(value, 24);
  • Empfänger
    • Setup
      • mySwitch.enableReceive(0);
    • Loop 
      • int value = mySwitch.getReceivedValue();
      • int value = mySwitch.getReceivedValue(); mySwitch.resetAvailable();

King of my heart

Let the King of my heart
Be the mountain where I run
The fountain I drink from
Oh, He is my song

Ronnie

schwäbischer tüftler und bastler, kraftsportler, ADHS power, 43 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee