Arduino и беспроводной радиомодули на 433 МГц

Радиомодули на 433 МГц или RF модули очень полезная штуки которые вместе с Arduino позволяют передавать данные от передатчика к приемнику без проводов. 

В среде Arduino для этого есть специальная библиотека с примерами программ для работы с такими радиомодулями. Данные модули отлично подойдут для реализации проектов с дистанционным управлением и небольшим объемом передаваемых данных. Радиус действия таких модулей порядка 150 метров.

Данные датчики не используют какие либо протоколы передачи данных, все что поступает на вход data in передатчика передается приемнику. И приемник и передатчик имеют 4 вывода - земля,питание,антенна и данные.

Для того чтобы посмотреть что приходит в приемник его можно подключить к com порту компьютера. И посмотреть данные через программы мониторинга порта, можно  использовать тернинал порта среды Arduino. При подключении в терминале будет непрерывный поток данных, среди которого появляются те данные что мы шлем в передатчик. Библиотека VirtualWire позволяет извлекать из этого потока данные отсылаемые передатчиком.

Передатчик

Передатчик на 433 МГц

Характеристики передатчика:

  • напряжение - от 3 до 12 В;
  • мощность на выходе - 32 мВт;
  • рабочий ток - 8мА;
  • скорость передачи данных - 8 кб/сек;
  • рабочие температуры - от -20 до 80 градусов С.

Приемник

Приемник 433 МГц

Характеристики приемника:

  • напряжение:  5 В;
  • ток: 5,5 мА;
  • рабочая частота: 315-433 МГц;
  • скорость приема 9,6 кб/сек.

Код передатчика

#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);
}

 Код приемника 

#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(13, 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(13,1);
      }  
   if(buf[0]=='0'){
  digitalWrite(13,0);
    }

}
}

Схемы подключения радиомодулей передатчика и приемника

Схема подключения передатчика и arduino

Схема подключения приемника и Arduino

Радиомодули в действии

 

Добавить комментарий


Защитный код
Обновить

Последние комментарии

Последнии темы форума

  • Нет сообщений для показа