Kategorie: Sensoren
Veröffentlicht: Montag, 01. Februar 2016 15:19
Geschrieben von Super User
Zugriffe: 2339

Das 433 MHz Empfangsmodul

433MHz RXEinführung

Die kleinen Sende und Empfangsmodule für das ehemalige Amateurfunkband 433MHz (= 70 cm) sind meist paarweise bei Ebay und noch mehr in China für sehr kleines Geld erhältlich. Üblicherweise werden die Module aber ohne Antenne geliefert, weshalb man ein 17,5 cm langes möglichst nicht zu dünnes Stück Kupferdraht ein die vorhandene Bohrung einlöten muss. Ich habe einen 1 mm starken Kupferlackdraht genommen und bin sehr zufrieden mit dem Ergebnis (den Lack muss man natürlich am zu verlötenden Ende abschaben.) Hier und da wird empfohlen, den Antennendraht zu einer Spule zu wickeln. Das hat zwar Vorteile bei der Handhabung, schränkt aber die Übertragungsfähigkeiten ein.

Es sei aber an dieser Stelle nochmal erwähnt dass es mir nicht gelungen ist, beide Module gleichzeitig, also im Transceiverbetrieb zum Laufen zu bringen. Das scheint an der VirtualWire Library zu liegen, die darauf wohl nicht ausgelegt ist.

Anschluss

ArduinoModul
5V Vcc
GND -
Pin 8 Data

Ein Pin am Modul bleibt leer

 

Beispielcode

#include <VirtualWire.h>    // you must download and install the VirtualWire.h to your hardware/libraries folder
 
#undef int
#undef abs
#undef double
#undef float
#undef round
 
void setup()
{
  Serial.begin(9600);
 
  // Initialise the IO and ISR
  vw_set_ptt_inverted(true);    // Required for RX Link Module
  vw_setup(2000);                   // Bits per sec
  vw_set_rx_pin(8);           // We will be receiving on pin 4 connecting the RX pin from the module 
  vw_rx_start();                      // Start the receiver
}
 
void loop()
{
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
 
  if (vw_get_message(buf, &buflen))   {
    Serial.print("Receiving:");
    int i;
    // Message with a good checksum received.
    for (i = 0; i < buflen; i++)    {
      Serial.print((char)buf[i]);                     // the received data is stored in buffer
    }
    Serial.println("!");
    delay(100);
  }
}