ماژول DRA886RX یک گیرنده ASK بر پایه RFIC ها می باشد . این ماژول دارای خاصیت ضد تداخلی قوی و همچنین پایداری و حساسیت بالا است . جهت ارتباط با این ماژول می توان از ماژول DRA886TX استفاده کرد . به راحتی با استفاده از این ماژول می توان ارتباط بین دو MCU را به صورت وایرلس در آورد . ماژول های DRA886RX در فرکانس های مختلفی ساخته می شود که تنها فرستنده و گیزنده های هم فرکانس توانایی برقراری ارتباط را دارند . برای تبادل دیتا با این ماژول می توانید از ماژول های فرستنده ASK همچون FS1000A استفاده کنید . برای راه اندازی ماژول های ASK در آردوینو می توان از کتابخانه RH_ASK استفاده کرد . این کتابخانه با بسیاری از پروتکل های ارتباطی سازگار است .

 

مشخصات ماژول DRA886RX :

  • ولتاژ تغذیه 3.6 ولت تا 5 ولت
  • حساسیت -107dBm
  • جریان مصرفی 4m A
  • دارای برد 100 متری
  • فرکانس کاری 433MHz
  • مدولاسیون ASK
  • نرخ انتقال دیتا 9600 بیت بر ثانیه
  • مدت زمان شروع به کار پس از اتصال تغذیه 9ms

 

پین های ماژول DRA886RX :

 

همان طور که در تصویر فوق می بینید پین شماره 2 این ماژول برای اتصال به آنتن می باشد که می توانید آن را به یک آنتن 433MHz متصل کنید اما بدون آنتن نیز ماژول تا حدود 20 متری عملکرد درستی دارد . پین شماره 4 نیز جهت فعال سازی ماژول می باشد که باید به زمین متصل شود .

 

اتصال به آردوینو :

برای اتصال این ماژول به آردوینو ، پین های تغذیه را به 5V و GND ماژول متصل کنید و نیز پین دیتای ماژول را به پین 2 آردوینو (پین وقفه 0) متصل کنید .

 

مدار فرستنده :

کد های راه اندازی توسط آردوینو :

کد های فرستنده

#include <RH_ASK.h>
// Include dependant SPI Library 
#include <SPI.h> 
 
// Create Amplitude Shift Keying Object
RH_ASK rf_driver;
 
void setup()
{
    // Initialize ASK Object
    rf_driver.init();
}
 
void loop()
{
    const char *msg = "Hello World";
    rf_driver.send((uint8_t *)msg, strlen(msg));
    rf_driver.waitPacketSent();
    delay(1000);
}

 

کد های گیرنده :

RH_ASK rf_driver;
 
void setup()
{
    // Initialize ASK Object
    rf_driver.init();
    // Setup Serial Monitor
    Serial.begin(9600);
}
 
void loop()
{
    // Set buffer to size of expected message
    uint8_t buf[11];
    uint8_t buflen = sizeof(buf);
    // Check if received packet is correct size
    if (rf_driver.recv(buf, &buflen))
    {
      
      // Message received with valid checksum
      Serial.print("Message Received: ");
      Serial.println((char*)buf);         
    }
}

 

در این پروژه از ماژول FS1000A برای ارسال دیتا استفاده شده است .

Tags:
About Author: USER_4