// Programm zur Übermittlung eines Schalterzustandes mit einem 2,4 GHz NRF24 Modul
// Die Betriebsspannung vom NRF24 Modul MUSS!! an 3,3V vom Arduino angeschlossen werden
// ACHTUNG!!! ca 10 nF Elko zwischen 3,3V und Masse schalten um die Übertragung zu stabilisieren
// Bibliotheken zur Bedienung des NRF24 Moduls
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
// Variablen und Instanzendefinition für das NRF Modul
RF24 radio(8, 9); // CE, CSN - die Zahlen geben die Digitalports am Arduino an, Instatz um das Modul zu starten
const byte address[6] = "00001"; //Adresse, auf dem die Empfangsdaten gesendet werden sollen. Der Empfänger benötigt dieselbe Adresse!
boolean button_state = 0;
int button_pin = 7; // Signalpin zum Einlesen des Schaltsignals (Taster, Bewegungsmelder etc.)
void setup() {
Serial.begin(9600); // Start des seriellen Ausgabe per USB an einen PC
pinMode(button_pin, INPUT); // Port zum Einlesen des Schalterzustandes konfigurieren
radio.begin(); // Start der 2,4 GHz Wireless Kommunikation
radio.openWritingPipe(address); // Setzen der Sendeadresse zur Übermittlung der Daten
radio.setPALevel(RF24_PA_HIGH); // Leistung des NRF Moduls je nach Entfernung kann man von MIN bis MAX einstellen (MAX,HIGH,LOW,MIN)
radio.stopListening(); // Das angeschlossene Modul wird als Sender konfigurieret
}
void loop()
{
button_state = digitalRead(button_pin); // Einlesen des Schalterzustandes
Serial.println(button_state); // Kontrollausgabe des Schalterzustandes am PC-Monitor
/* if(button_state == HIGH)
{
const char text[] = "Your Button State is HIGH"; // Erstelle Zeichenkette als Textmitteilung
radio.write(&text, sizeof(text)); //Sende Zeichenkette zum Empfänger
}
else
{
const char text[] = "Your Button State is LOW"; // Erstelle Zeichenkette als Textmitteilung
radio.write(&text, sizeof(text)); //Sende Zeichenkette zum Empfänger
}
*/
// const char text[] = "Your Button State"; // Erstellen einer Zeichenkette als Textmitteilung
// radio.write(&text, sizeof(text)); // Senden der Zeichenkette zum Empfänger
radio.write(&button_state, sizeof(button_state)); //Senden des Schalterstatus zum Empfänger
delay(50);
}