Arduino Tutorial 37: 433 MHz Sender & Empfänger

In diesem Tutorial möchte ich den 433MHz Funksender & Empfänger erläutern.

433 MHz Sender (oben) und Empfänger (unten).
433 MHz Sender (oben) und Empfänger (unten).

Ich hatte bereits ein Set mit einer Fernbedienung im Tutorial Arduino Lektion 34: 433MHz Funksender erläuter. Jedoch war der Sender eine Fernbedienung. In diesem Tutorial wird der Sender durch einen Microcontroller gesteuert.

Technische Daten

Sender

  • Abmaße – 19mm x 19mm
  • Betriebsspannung – 3,5V bis 12V
  • Sendeleistung – 10mW
  • Reichweite – 20m bis 200m (je nach Umgebung und Spannung)
  • Betriebsart – AM
  • Empfangsfrequenz – 433 MHz

Empfänger

  • Abmaße – 30mm x 14,7mm
  • Betriebsspannung – 5V
  • Empfängerempfindlichkeit –  -105 dB
  • Sendefrequenz – 433,92 MHz

Schaltplan

Sender

Der Sender verfügt über 3 Anschlüsse welche mit dem Arduino UNO wie folgt verbunden werden.

SenderArduino UNO
 GND Ground
 VCC 5V
 Data digitaler PIN 9
433MHz Sender auf Steckplatine, verbunden mit einem Arduino UNO.
433MHz Sender auf Steckplatine, verbunden mit einem Arduino UNO.

Empfänger

Der Empfänger verfügt über 4 PINs von denen „nur“ 3 mit dem Arduino wie folgt verbunden werden.

SenderArduino UNO
 GND Ground
 VCC 5V
 Data* digitaler PIN 2
*   In diesem beispiel verwende ich den PIN neben dem GND PIN des Empfängers.
433MHz Empfänger auf Steckplatine, verbunden mit einem Arduino UNO.
433MHz Empfänger auf Steckplatine, verbunden mit einem Arduino UNO.

Drahtantenne

Der Sender und Empfänger verfügt jeweils über einen Lötpunkt zum Anschluss einer Drahtantenne welche man selber ganz leicht erzeugen kann.

Wickelantenne für das 433MHz, 4 Kanal Funkmodul
433Mhz Funksender / Empfänger mit Wickelantenne
433Mhz Funksender / Empfänger mit Wickelantenne

Quellcode

Für den nachfolgenden Quellcode wird die Bibliothek RCSwitch benötigt, diese kann vom GitHub Repository  https://github.com/sui77/rc-switch geladen werden.

Zuerst fangen wir mit einem einfachen Beispiel an. Es soll „nur“ eine Dezimalzahl gesendet und empfangen werden. Dazu benötigt man jeweils einmal den Sender und Empfänger und zwei Microcontroller.
Ich nutze in diesem Beispiel zweimal den Arduino UNO.

Aufbau, einfache Schaltung 433MHz Sender & Empfänger am Arduino UNO.
Aufbau, einfache Schaltung 433MHz Sender & Empfänger am Arduino UNO.

Sender

Empfänger

Das senden einer einfachen Dezimalzahl ist mit der Funktion rcSwitch.send(Zahl, Bitlänge) ziemlich einfach. Anders sieht es aus wenn man eine Zeichenkette senden möchte, hier muss man die Zeichenkette zuerst in einzelne Character zerlegen und diese wiederum in Bytecode darstellen.

Reichweite

Die Reichweite des Senders und Empfängers ist mit 20m bis 200m angegeben, jedoch fließen hier folgende Faktoren mit ein:

  • Spannung,
  • Themperatur,
  • Störungsquellen (andere Funkstationen),
  • u. v. a. m.

Ich habe nun auf freiem Feld den Abstand gemessen.
Folgende mögliche Störungsquellen waren gegeben:

  • Handy,
  • Strommast (ca. 115m entfernt),
  • Siedlung (ca. 250m entfernt),
  • Temperatur  5°C

Der Sender bzw. der Arduino UNO am Sendemodul wurde mit einer 9V Blockbatterie betrieben, der Empfänger wurde mit einer Powerbank betrieben, beide Geräte befanden sich jeweils in einem Kunststoffgehäuse.

Es wurde eine maximale Reichweite von 23m erreicht.

 

2 Gedanken zu „Arduino Tutorial 37: 433 MHz Sender & Empfänger

  • August 9, 2018 um 09:46
    Permalink

    Hallo,

    ich habe Ihren Blog entdeckt und interessiere mich als Hobbybastler sehr für Elektronik. Toll Ihre Seite!
    Ich habe vor mir eine Zeitmessanlage mit 3 Laserlichtschranken die per Funk oder Wlan kommunizieren zu bauen. Ich bin Trainer einer Jugendfußballmannschaft.
    Wäre es für Sie vorstellbar, da Sie sich bestimmt viel besser in der Programmierung auskennen, mir unter die Arme zu greifen?
    Die Abweichung des Messergebnisses sollte natürlich sehr gering sein (1/100 vlt)
    Welchen Weg würden Sie gehen?
    1.) Drei Sender mit Arduino /LS/866MHzSender und 1 Arduino mit Display/Taster/866MHzEmpfänger zum Auswerten?
    2.) Oder das ganze per Wlan mit z.B.: NodeMCU
    3.) Oder Variante 1 mit 433MHz-Technik (soll aber wohl sehr störanfällig sein.

    Die Anlage soll drinnen wie draußen verwendet werden können. Stromnetzunabhängig sein und extrem genau sein.

    Würde mich über ein kleines Feedback sehr freuen.

    LG Hardy aus Teltow/Berlin.

    Antwort
    • August 9, 2018 um 10:41
      Permalink

      Hi,

      danke für Ihr Lob.
      Ich würde Ihnen empfehlen auf WLAN zu wechseln denn dieses hat eine größere Reichweite und vorallem die Möglichkeiten sind deutlich höher.
      Für Ihr Vorhaben würde ich sogar noch etwas weiter gehen:
      1. Laser Lichtschranken (https://draeger-it.blog/arduino-lektion-41-ky-008-laser-pointer-sender-empfaenger/)
      2. SD Card Shield mit Uhr (RealtimeClock) (https://draeger-it.blog/wemos-d1-mini-shield-sd-card-shield-mit-realtimeclock/)
      2. Als Sender für die Lichtschranken -> Wemos D1 mini (https://draeger-it.blog/wemos-d1-mini-uebersicht/)
      3. Als Empfänger zum Daten sammeln auch ein Wemos D1 mini
      4. Ein Handy / Tablet zum darstellen einer Webseite
      5. 2x Powerbank mit min 5000 mAh für den Betrieb der Microcontroller

      Die Laser Lichtschranke wird mit dem Wemos D1 mini verbunden und sendet beim Auftreten einer Aktion (Lichtstrahl durchbrochen) ein Signal an den zweiten Wemos D1 mini welcher dann einen Zeitstempel aufnimmt.
      Des Weiteren ist eine kleine Webseite auf dem Wemos D1 mini enthalten welche eine Schaltfläche enthält um den Start durchzuführen (hier könnte man überlegen mit einem zusätzlichen Akustischen Signal zu arbeiten).
      Nachdem Start wird der Sprinter / Läufer irgendwann die Lichtschranke durchqueren und das zweite Signal wird genutzt um die Zeitdifferenz für die Strecke zu berechnen und auf einer SD Karte abzuspeichern und / oder aber auf der Webseite in einer Tabelle darzustellen.

      Mit freundlichen Grüßen,

      Stefan Draeger

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.