راه اندازی ماژول های فرستنده و گیرنده RF با آردوینو

VirtualWire-1.27هدفمون در این پروژه ساده آموزش راه اندازی ماژول های فرستنده و گیرنده RF با آردوینو میباشد. ماژول فرستنده و گیرنده بیسیم استفاده شده در این پروژه در فرکانس 315MHz کار میکنند. البته ماژول های مختلفی هستند که با فرکانس های 433MHz  و 915MHz کارمیکنند.  از این ماژول ها به راحتی در ساخت پروژه های اولیه و پروژه های تجاری از پروژه های روی بردبورد گرفته تا درب های اتوماتیک نیز میتوان استفاده نمود. با تهیه فقط یک ماژول فقط میتوانید اطلاعات را ارسال یا دریافت نمایید ولی به منظور داشتن یک سیستم فرستنده و گیرنده کامل باید دو عدد از این ماژول ها را (یک عدد فرستنده و یک عدد گیرنده) تهیه نمایید. شما همچنین میتوانید آردوینو را به شبکه وای_فای وصل کنید برای یادگیری نحوه انجام اینکار آموزش راه اندازی ماژول ESP8266 را بخوانید.

ماژول های فرستنده و گیرنده RF

مشخصات ماژول گیرنده

  • نام محصول : MX-05V
  • ولتاژ کاری : 5V
  • جریان بایاس : 4mA
  • فرکانس گیرنده : 315MHz
  • حساسیت گیرنده : -105DB
  • ابعاد : 7*14*30 میلی متر

مشخصات ماژول فرستنده

  • نام محصول : MX-FS-03V
  • مسافت قابل استفاده برای سیگنال : 20 الی 200 متر (وابسته به ولتاژ)
  • ولتاژ کاری : 3.5V تا 12V
  • حالت کاری : AM
  • نرخ ارسال داده : 4Kb/S
  • توان ارسالی : 10mW
  • فرکانس کاری : 315MHz
  • آنتن خارجی – 25 سانتی متر نوع معمولی چند هسته یا تک هسته
  • ابعاد : 19*19 میلی متر
  • ترتیب قرار گیری پایه ها از چپ به راست : (DATA; VCC; GND)

مطابق شکل زیر قطعات مورد نیاز را به برد آردوینو متصل نمایید :

راه اندازی ماژول های فرستنده و گیرنده RF با آردوینو

نرم افزار آردوینو را باز کرده و به منظور ایجاد یک برنامه جدید، از منوی File گزینه New را انتخاب نمایید.

برنامه آردوینو

همچنین لایبری VirtualWire را مطابق شکل زیر کپی کرده و در پوشه libraries قرار دهید. یا از قسمت نصب لایبری خود آردوینو نصبش کنید.

فایل کتابخانه keypad

کد آردوینو برای فرستنده RF

//simple Tx on pin D12
//Melec.ir
#include <VirtualWire.h>
#include <VirtualWire_Config.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);
}

نکات برنامه

این برنامه بسیار ساده است! در ابتدا کاراکتر ‘1’ ارسال می شود و پس از 2 ثانیه کاراکتر ‘0’ ارسال می شود و به همین ترتیب …

کد آردوینو برای گیرنده RF

//simple Rx on pin D12
#include <VirtualWire.h>
#include <VirtualWire_Config.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);
}
}

نکات برنامه

LED متصل به پایه شماره 5 بر روی برد آردوینو زمانی روشن می شود که کاراکتر ‘1’ دریافت شود و با دریافت کاراکتر ‘0’ خاموش می شود.

مطلب پیشنهادی:  سطل آشغال هوشمند با استفاده از آردوینو، سنسور آلتراسونیک و سروو موتور

برای مشاهده پروژه های بیشتر در مورد آردوینو میتوانید به دسته بندی پروژه های آردوینو مراجعه کنید و همچنین برای یادگیری برنامه نویسی آردوینو نیز به دسته بندی آموزش آردوینو مراجعه کنید.

استعداد آدمی را می پوشاند و وقتی استعدادش کاهش یافت آنچه هست نمایان می شود. فریدریش نیچه

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

13 دیدگاه

  1. کد ها ارور میده

  2. مجید قربانی

    کدها مشکل داره

    • میلاد جهاندیده

      سلام، خیلی ممنون آقای قربانی بابت اطلاع رسانی بله مشکل از ورژن لایبری ها بود که اصلاح شد. لینک جدید به نوشته اضافه شد. لایبری جدید ورژن 1.27 هستش دانلود، قبلی را حذف و جدید را اضافه کنید مشکل حل میشه.

  3. من یه ریموت کد ثابت دارم که کدش رو به صورت صفر و یک دارم که با یک ماژول pc-jc02 کار میکرد ، حالا مدتیه که ظاهرا ماژول گیرنده از کار افتاده (چون مطمینم ریموت سالمه و کار میکنه) حالا یدونه از همین ماژول گیرنده سفارش دادم ، میخوام بدونم کدش چی هست که کد ریموت کنترل کد ثابتم رو با لحیم بر اساس اون تنظیم کنم ، سوالم ااز چه طریقی میتونم بفهمم کد ماژول گیرنده چیه تا ریموت کنترلم رو بر اساس اون تنظیم کنم

  4. سلام ممکنه کد های فرستنده رو برای آردوینو نانو قرار بدید؟!!

  5. سلام آقا ی جهاندیده.
    میشه با این پروژه هر کاراکتری رو ارسال و دریافت کرد مثل g , l یا…
    واینکه تو ی یک خط از این کد چند کاراکتر میتونه ارسال بشه
    ممنون میشم پاسخ بدید.

    • میلاد جهاندیده

      سلام آقا حسن

      پروژه را من ننوشتم ولی یک نگاه کلی انداختم بله میشه در مثال بالا هم مقدار متغیر controller برابر با رشته 0 است که همون را میفرسته فقط.

      controller=”0″ ;

  6. ببخشید من تازه متوجه شدم لایبری مشکل داره

  7. ممنون آقای جهاندیده کتابخوانه درست شد .
    فقط شما دوتا کتابخوانه فراخوانی کردید ولی یه کتابخوانه گذاشتید.
    باید کتابخوانه ی دوم هم باشه یا نه.
    چون ارور نمیده .
    شک کردم.
    منظورم اینه اگه کتابخوانه ی دومی تو پوشه ی کتابخوانه ی آردواینو نباشه مشکلی پیش نمیاد.

  8. سلام ؛ برای این کد، با ریموت 0 و 1 میدیم ؟ اگه ریموت نباشه ،باید چیکار کرد ال ای دی روشن بشه؟