Funkverbindung über 433mhz mit dem Arduino
Quelle: https://funduino.de/nr-03-433mhz-funkverbindung
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
mySwitch.enableTransmit(10); // Der Sender wird an Pin 10 angeschlossen
}
void loop() {
mySwitch.send(1234, 24); // Der 433mhz Sender versendet die Dezimalzahl „1234“
delay(1000); // Eine Sekunde Pause, danach startet der Sketch von vorne
}
Empfänger
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup()
{
Serial.begin(9600);
mySwitch.enableReceive(0); // Empfänger ist an Interrupt-Pin "0" - Das ist am UNO der Pin2
// einer der beiden Datenpins wird angeschlossen, sonst nur GND und 5V
}
void loop() {
if (mySwitch.available()) // Wenn ein Code Empfangen wird...
{
int value = mySwitch.getReceivedValue(); // Empfangene Daten werden unter der Variable "value" gespeichert.
if (value == 0) // Wenn die Empfangenen Daten "0" sind, wird "Unbekannter Code" angezeigt.
{
Serial.println("Unbekannter Code");
}
else // Wenn der Empfangene Code brauchbar ist, wird er hier an den Serial Monitor gesendet.
{
Serial.print("Empfangen: ");
Serial.println( mySwitch.getReceivedValue() );
}
mySwitch.resetAvailable(); // Hier wird der Empfänger "resettet"
}
}
Senden einer Datenreihe
#include <RCSwitch.h>
int numbers[20] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int zahl=20;
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableTransmit(10); // Der Sender wird an Pin 10 angeschlossen
}
void loop() {
for (int i=0; i<20; i++){
zahl= numbers[i];
mySwitch.send(zahl,24); // Dezimalzahl mit 24 Bit Länge
delay(100);
}
mySwitch.send(15000000,24); // 2^24 = 16.777.216 (ca. 16,8 Millionen) theoretisch möglich
delay(500); // Eine Sekunde Pause, danach startet der Sketch von vorne
}