Arduino - Drahtlose Kommunikation
Die drahtlosen Sende- und Empfangsmodule arbeiten mit 315 MHz. Sie passen problemlos in ein Steckbrett und arbeiten gut mit Mikrocontrollern zusammen, um eine sehr einfache drahtlose Datenverbindung herzustellen. Bei einem Paar aus Sender und Empfänger können die Module Daten nur in eine Richtung übertragen. Sie benötigen jedoch zwei Paare (mit unterschiedlichen Frequenzen), um als Sender / Empfänger-Paar zu fungieren.
Note- Diese Module sind wahllos und empfangen ziemlich viel Lärm. Sowohl der Sender als auch der Empfänger arbeiten mit gemeinsamen Frequenzen und haben keine IDs.
Technische Daten des Empfängermoduls
- Produktmodell - MX-05V
- Betriebsspannung - DC5V
- Ruhestrom - 4mA
- Empfangsfrequenz - 315 MHz
- Empfängerempfindlichkeit - -105DB
- Größe - 30 * 14 * 7 mm
Technische Daten des Sendermoduls
- Produktmodell - MX-FS-03V
- Startentfernung - 20-200 Meter (unterschiedliche Spannung, unterschiedliche Ergebnisse)
- Betriebsspannung - 3,5-12V
- Abmessungen - 19 * 19 mm
- Betriebsart - AM
- Übertragungsrate - 4 KB / S.
- Sendeleistung - 10mW
- Sendefrequenz - 315 MHz
- Eine externe Antenne - 25 cm normale Mehrkern- oder Einkernleitung
- Pinbelegung von links → rechts - (DATA; V CC ; GND)
Erforderliche Komponenten
Sie benötigen folgende Komponenten:
- 2 × Arduino UNO Board
- 1 × HF-Verbindungssender
- 1 × HF-Verbindungsempfänger
Verfahren
Folgen Sie dem Schaltplan und stellen Sie die Verbindungen wie in der Abbildung unten gezeigt her.
Skizzieren
Öffnen Sie die Arduino IDE-Software auf Ihrem Computer. Die Codierung in der Arduino-Sprache steuert Ihre Schaltung. Öffnen Sie eine neue Skizzendatei, indem Sie auf Neu klicken.
Note- Sie müssen die Tastaturbibliothek in Ihre Arduino-Bibliotheksdatei aufnehmen. Kopieren Sie die Datei VirtualWire.lib und fügen Sie sie in den Bibliotheksordner ein, wie im folgenden Screenshot hervorgehoben.
Arduino Code für Sender
//simple Tx on pin D12
#include <VirtualWire.h>
char *controller;
void setup() {
pinMode(13,OUTPUT);
vw_set_ptt_inverted(true);
vw_set_tx_pin(12);
vw_setup(4000);// speed of data transfer Kbps
}
void loop() {
controller="1" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,1);
delay(2000);
controller="0" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,0);
delay(2000);
}
Zu beachtender Code
Dies ist ein einfacher Code. Zuerst wird das Zeichen '1' und nach zwei Sekunden das Zeichen '0' usw. gesendet.
Arduino Code für Empfänger
//simple Rx on pin D12
#include <VirtualWire.h>
void setup() {
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_rx_pin(12);
vw_setup(4000); // Bits per sec
pinMode(5, OUTPUT);
vw_rx_start(); // Start the receiver PLL running
}
void loop() {
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking {
if(buf[0]=='1') {
digitalWrite(5,1);
}
if(buf[0]=='0') {
digitalWrite(5,0);
}
}
}
Zu beachtender Code
Die an Pin 5 auf der Arduino-Platine angeschlossene LED leuchtet, wenn das Zeichen '1' empfangen wird, und wird ausgeschaltet, wenn das Zeichen '0' empfangen wird.