Как использовать передатчик и приемник - 315Mhz.

На Dealextreme нашел приемник и передатчик 315Mhz, в статье будет коротко описано как это дело можно использовать c Arduino.

315Mhz приемник/ передатчик для Arduino


Технические характеристики:
Цвет: зеленый;
Материал: PCB + алюминиевый сплав;
Особенности: 315MHz Передатчик / Приемник;
Спецификация: Частота: 315MHz; Входное напряжение: 3-12V (чем больше напряжение, тем больше мощность передачи);
Применение: комплект состоит из передатчика и приемника, широко используется для дистанционного управления;
инструкция на английском: да;
В комплекте: 1 х передатчик, 1 х приемник;

Модуль слева: Получатель. Модуль справа: Передатчик
Модуль слева: Получатель
Модуль справа: Передатчик

Примечание: Эти модули не имеют идентификации канала, поэтому будут получать изрядное количество шума. Передатчик и приемник работают на общий частоте. Таким образом, метод фильтрации этого шума и сопряжения передатчика и приемника будет необходимо реализовать.

В нашем примере приемник и передатчик соединены по отдельности к двум платам Arduino. Передатчик подключаем к контакту 12 Arduino, приемник подключаем к контакту 11 Arduino.

Передатчик подключаем к контакту 12 Arduino, приемник подключаем к контакту 11 Arduino

Подключение передатчика к Arduino:

Подключение передатчика 315Mhz к Arduino

Пример кода для передачи сигнала:
/*
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
}


Подключение приемника к Arduino:

Подключение приемника к Arduino

Пример кода для приема сигнала:


/*
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();
}
}


Также отметим, что доставка сообщения не гарантируется, и если выйти из диапазона или попасть на чрезмерные радиопомехи, то некоторые сообщения могут потеряться.
Для приема и передачи использовать библиотека VirtualWire, которая обеспечивает интерфейс к беспроводному оборудованию.

0 комментариев

Оставить комментарий