Внешний вид приемника и передатчика на 315MHz.
Слева передатчик, справа приемник.

Технические детали:
Параметры приемного модуля:
Модель: MX-05V
Рабочее напряжение: DC5V
Ток покоя: 4мА
Приемная частота: 315МГц
Чувствительность приемника: -105дБ
Размеры: 30x14x7мм
Внешняя антенна: 32см одножильный провод, намотанный в спираль.
Параметры передающего модуля:
Модель: MX-FS-03V
Максимальное расстояние передачи: 20-200м (зависит от напряжения)
Рабочее напряжение: 3.5-12В
Размеры: 19x19мм
Рабочий режим: AM
Скорость передачи: 4Kb/s
Мощность передачи: 10мВт
Частота передачи: 315МГц
Внешняя антенна: 25см обычный многожильный или одножильный провод
Особенности:
Модули не разборчивы и получают много шума. Не имеют ID. Таким образом надо делать фильтрацию шумов и сопрягать передатчик и приемник. Это делается программым кодом ниже.
Библиотеки:
VirtualWire Library
Подключение:
Подключение передатчика 315MHz RF к arduino:
Подключается к PIN 12.

Пример кода:
/*
SimpleSend
This sketch transmits a short text message using the VirtualWire library
connect the Transmitter data pin to Arduino pin 12
*/
#include <VirtualWire.h>
void setup()
{
// Initialize the IO and ISR
vw_setup(2000); // Bits per sec
}
void loop()
{
send("Hello there");
delay(1000);
}
void send (char *message)
{
vw_send((uint8_t *)message, strlen(message));
vw_wait_tx(); // Wait until the whole message is gone
}
Подключение приемника 315MHz к arduino:
Подключается по библиотеке к PIN 11.

Пример кода:
/*
SimpleReceive
This sketch displays text strings received using VirtualWire
Connect the Receiver data pin to Arduino pin 11
*/
#include <VirtualWire.h>
byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages
byte messageLength = VW_MAX_MESSAGE_LEN; // the size of the message
void setup()
{
Serial.begin(9600);
Serial.println("Device is ready");
// Initialize the IO and ISR
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver
}
void loop()
{
if (vw_get_message(message, &messageLength)) // Non-blocking
{
Serial.print("Received: ");
for (int i = 0; i < messageLength; i++)
{
Serial.write(message[i]);
}
Serial.println();
}
}
Полезные ссылки:
arduino и 315MHz RF
|