Projekt 1- RF Blink
Als erstens müssen wir testen, ob die HF-Module arbeiten. Also werden wir eine sehr einfachen Sende- und Empfangs Aufbau entwerfen, um die Funktion zu testen.
Wir benutzen die Arduino OnBoard LED um das senden und empfangen zu sehen. Es wird eine leichte Verzögerung zwischen den beiden Arduinos geben.
Man kann auch eine Antenne auf den Modulen löten um die Reichweite zu erhöhen, dies tu ich aber jetzt nicht.
Beim Versuchsaufbau fand ich heraus das ich eine bessere Genauigkeit mit 3.3 V bekomme anstatt mit 5 V um dem Empfänger zu versorgen.
Hier sind die Teile die erforderlich sind für den Aufbau:
Hier sind die Teile, die Sie benötigen, um dieses Projekt durchzuführen:
2 x Arduino UNO oder kompatiblen Boards (oder ATTiny85 und Uno) ect.
Breadboard
Kabel
RF-Modul (433 MHz)
Fritzing Aufbau:
Arduino - Sketch - Sender:
// 433 mhz Blink - Sender Sketch
#define rfsenderPin 4 //RF Sender pin = digital pin 4
#define ledPin 13 //Onboard LED = digital pin 13
void setup(){
pinMode(rfsenderPin, OUTPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
for(int i=4000; i>5; i=i-(i/3)){
digitalWrite(rfsenderPin, HIGH); //sendet ein HIGH Signal
digitalWrite(ledPin, HIGH); //LED anschalten
delay(2000); //1 Sekunde warten
digitalWrite(rfsenderPin,LOW); //sendet ein LOW Signal
digitalWrite(ledPin, LOW); //LED ausschalten
delay(i); //variabler Delay
}
}
--------------------------------------------------------
Arduino - Sketch - Empfänger
// 433 mhz Blink - Sender Sketch
#define rfReceivePin A0 //RF Empfänger Pin = Analog pin 0
#define ledPin 13 //Onboard LED = digital pin 13
unsigned int data = 0; // Variable zum speichern empfangener Daten
const unsigned int upperThreshold = 70; //Höchster Schwellenwert
const unsigned int lowerThreshold = 50; //niedrigster Schwellenwert
void setup(){
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop(){
data=analogRead(rfReceivePin); //warten auf Daten am Analog pin 0
if(data>upperThreshold){
digitalWrite(ledPin, LOW); //Wenn ein LOW Signal empfangen wird, LED AUS
Serial.println(data);
}
if(data<lowerThreshold){
digitalWrite(ledPin, HIGH); //Wenn ein HIGH Signal empfangen wird, LED AN
Serial.println(data);
}
}