In diesem Tutorial möchte ich den 433 MHz Funksender & Empfänger beschreiben. Mit diesem kleinen, drahtlosen Sender kannst du deine Schaltungen am Arduino bequem von weiter weg bedienen.
Es gibt dieses als 433MHz und 315MHz Version. Bevor man eines von beiden erwirbt, muss im jeweiligen Land / Bundesland geprüft werden, ob dieses erlaubt ist.
Im Lieferumfang des 433 MHz Funksender ist der Sender und der Empfänger enthalten, die Batterie für den Sender ist gem. den EU-Richtlinien nicht Bestandteil und muss extra erworben werden. Ich habe diese Batterie vom Typ “V27A” wiederum bei ebay.de* erstanden. Somit ergab sich ein Preis von 3 € für Sender / Empfänger und 3 € für die Batterie.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Version mit 315MHz
In dem Frequenzplan der Bundesnetzagentur ist der Frequenzbereich von 315 MHz unter anderem für das Militär reserviert. (Siehe Seite 36 im PDF Dokument.) daher empfehle ich die Version mit 433MHz, diese ist für die zivile Nutzung freigegeben. (Siehe Seite 272 im PDF Dokument.)
Technische Daten
Empfangseinheit
- Betriebsspannung 5V
Sender
- Betriebsspannung 12V
Schaltplan / Aufbau
Antenne
Das Modul kommt fertig aufgebaut, einzig muss noch eine Antenne angeschlossen werden. Dazu habe ich ein Stück (ca. 30 cm) Klingeldraht genommen.
In dem folgenden kurzen Video zeige ich wie eine einfache Antenne für dieses Modul erstellt werden kann.
Diese Antenne wird an das Modul am Anschluss “ANT” angelötet.
Wichtig
Bei dem mir gelieferten Modul war der IC nicht korrekt angelötet, daher war zuerst keine Funktion gegeben. Daher, wenn das Modul eventuell nicht funktioniert, einfach mal die Lötstellen prüfen und nachbessern. Bei einem Preis von ca. 3 € ist dieses verschmerzbar.
Aufbau
Das Empfangsmodul verfügt über die PINs
Bezeichnung | Beschreibung | Arduino UNO |
---|---|---|
5V | Betriebsspannung | 5V |
GND | Ground / – | GND |
D0 | digitaler Ausgang 0 | digitaler PIN 2 |
D1 | digitaler Ausgang 1 | digitaler PIN 3 |
D2 | digitaler Ausgang 2 | digitaler PIN 4 |
D3 | digitaler Ausgang 3 | digitaler PIN 5 |
UT* | digitaler Ausgang 5 | digitaler PIN 6 |
*Der PIN mit der Bezeichnung UT ist immer auf HIGH, wenn irgendein Taster auf dem Sender betätigt wurde.
Der Aufbau ist relativ simple, da jeder PIN vom Receivermodul als digitaler Eingang am Arduino UNO angeschlossen wird (außer natürlich 5V & GND).
Quellcode
Einfaches Beispiel
const int btnApin = 4; //digitaler PIN 2 const int btnBpin = 2; //digitaler PIN 3 const int btnCpin = 5; //digitaler PIN 4 const int btnDpin = 3; //digitaler PIN 5 const int btnAnyPin = 6; //digitaler PIN 6 void setup() { Serial.begin(9600); //Begin der Seriellen kommunikation } void loop() { //Abfragen der zustände boolean btnApressed = digitalRead(btnApin)== HIGH ? true: false; boolean btnBpressed = digitalRead(btnBpin)== HIGH ? true: false; boolean btnCpressed = digitalRead(btnCpin)== HIGH ? true: false; boolean btnDpressed = digitalRead(btnDpin)== HIGH ? true: false; boolean btnAnyPressed = digitalRead(btnAnyPin)== HIGH ? true: false; //Ausgabe des zustandes auf dem Seriellen Ausgang. //Lesbar im Seriellen Monitor. printBtnState("A", btnApressed); printBtnState("B", btnBpressed); printBtnState("C", btnCpressed); printBtnState("D", btnDpressed); printBtnState("\'any\'", btnAnyPressed); } /** * Methode zum ausgeben eines Textes auf dem Seriellen Ausgang. * Es wird nur etwas ausgegeben wenn die Variable 'var' TRUE ist. */ void printBtnState(String text, boolean var){ if(var){ //Wenn TRUE dann: Serial.print("Button "+text+" pressed ="); //Text ausgeben ohne Zeilenumbruch. Serial.println(var); //Status True / False ausgeben. Und einen Zeilenumbruch ausführen. } }
Beispiel steuern eines 4-fach Relaismoduls
Ein einfaches Beispiel ist das Steuern eines 4-fach Relaismoduls. Wie man ein 2fach Relaismodul ansteuert habe ich im Tutorial Arduino Lektion 13: 2 fach Relaisplatine ansteuern beschrieben. Das 4-fach Relaismodul unterscheidet sich “nur” darin, dass nun 2 Adern mehr angeschlossen werden müssen und auch 2 digitale Pins mehr benötigt werden.
Quellcode
const int btnApin = 2; //digitaler PIN 2 const int btnBpin = 3; //digitaler PIN 3 const int btnCpin = 4; //digitaler PIN 4 const int btnDpin = 5; //digitaler PIN 5 //const int btnAnyPin = 6; //digitaler PIN 6 const int relais1Pin = 8; const int relais2Pin = 9; const int relais3Pin = 10; const int relais4Pin = 11; //Variablen zum speichern der Zustände der einzelnen PINs des Receivermodules. boolean btnApressed = false; boolean btnBpressed = false; boolean btnCpressed = false; boolean btnDpressed = false; //boolean btnAnyPressed = false; void setup() { Serial.begin(9600); pinMode(relais1Pin, OUTPUT); pinMode(relais2Pin, OUTPUT); pinMode(relais3Pin, OUTPUT); pinMode(relais4Pin, OUTPUT); } void loop() { if(digitalRead(btnApin) == HIGH){ activateRelais(relais2Pin); } if(digitalRead(btnBpin) == HIGH){ activateRelais(relais4Pin); } if(digitalRead(btnCpin) == HIGH){ activateRelais(relais1Pin); } if(digitalRead(btnDpin) == HIGH){ activateRelais(relais3Pin); } } void activateRelais(int relaisPin){ digitalWrite(relaisPin, HIGH); //Relais an delay(500); //500ms warten digitalWrite(relaisPin, LOW); //Relais aus delay(1000);// 1000ms warten }
Video
Reichweite
Das Modul ist mit einer Reichweite von ca. 100 m angegeben. Dieses habe ich auf gerader Strecke probiert und hier jetzt das Ergebnis. In der Grafik sind 2 Strecken erkennbar, die Blaue ist ca. 50 m lang und die grüne ca. 100 m lang. Dieses wurde mit der Anwendung Google Earth gemessen.
Testergebnis
Mein Ziel war es wie aus der Grafik zu erkennen 2 Strecken auszutesten 50 m & 100 m jedoch war schon nach 6 m Schluss mit der Sende bzw. Empfangsleistung.
Fazit
Die Funkfernbedienung macht auf dem Bild einen stabilen Eindruck, jedoch, wenn man diese in die Hand nimmt, ändert sich das ziemlich schnell. Des Weiteren sitzt die Batterie sehr ungünstig locker, sodass ich diese mit etwas Klebeband und Papier fixieren musste.
Im Kapitel Schaltplan / Aufbau > Wichtig habe ich bereits erwähnt, dass die Qualität des gelieferten Empfangsmoduls etwas niedrig ist, jedoch ist dieses bei 3 € auch nicht verwunderlich.
Nachdem alle “Probleme” beseitigt wurden, war der Bausatz jedoch schnell betriebsbereit und die Programmierung des selbigen ist auch sehr einfach, da die PINs D1 bis D4 als digitale Eingänge am Arduino angeschlossen werden.
Schwierig ist dabei jedoch, da das Programm / Sketch die Signale erkennt und verarbeitet da, sobald man die Taste loslässt der PIN von “HIGH” auf “LOW” wechselt.
Die Sende und Empfangsleistung ist mit 50 m bis 100 m angegeben. Jedoch ist diese ein vielfaches weniger, nämlich ca. 6 m.
Der 315Mhz Bereich ist in den USA freigegeben. Laut der Webseite https://reifenpresse.de/2019/10/30/inverkehrbringen-von-315-mhz-rdks-sensoren-verboten-in-europa/ ist der Bereich in Deutschland/Europa verboten
Hi Jens,
danke für deine Information.
Gruß,
Stefan