VirtualWire-1.27هدفمون در این پروژه ساده آموزش راه اندازی ماژول های فرستنده و گیرنده RF با آردوینو میباشد. ماژول فرستنده و گیرنده بیسیم استفاده شده در این پروژه در فرکانس 315MHz کار میکنند. البته ماژول های مختلفی هستند که با فرکانس های 433MHz و 915MHz کارمیکنند. از این ماژول ها به راحتی در ساخت پروژه های اولیه و پروژه های تجاری از پروژه های روی بردبورد گرفته تا درب های اتوماتیک نیز میتوان استفاده نمود. با تهیه فقط یک ماژول فقط میتوانید اطلاعات را ارسال یا دریافت نمایید ولی به منظور داشتن یک سیستم فرستنده و گیرنده کامل باید دو عدد از این ماژول ها را (یک عدد فرستنده و یک عدد گیرنده) تهیه نمایید. شما همچنین میتوانید آردوینو را به شبکه وای_فای وصل کنید برای یادگیری نحوه انجام اینکار آموزش راه اندازی ماژول ESP8266 را بخوانید.
مشخصات ماژول گیرنده
- نام محصول : 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 با آردوینو
- 2 عدد برد آردوینو UNO
- 1 عدد ماژول فرستنده RF
- 1 عدد ماژول گیرنده RF
- بردبورد
- سیم بردبوردی
- یک عدد LED
- یک عدد مقاومت 330 اهم
مطابق شکل زیر قطعات مورد نیاز را به برد آردوینو متصل نمایید :
نرم افزار آردوینو را باز کرده و به منظور ایجاد یک برنامه جدید، از منوی File گزینه New را انتخاب نمایید.
همچنین لایبری VirtualWire را مطابق شکل زیر کپی کرده و در پوشه libraries قرار دهید. یا از قسمت نصب لایبری خود آردوینو نصبش کنید.
کد آردوینو برای فرستنده 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’ خاموش می شود.
برای مشاهده پروژه های بیشتر در مورد آردوینو میتوانید به دسته بندی پروژه های آردوینو مراجعه کنید و همچنین برای یادگیری برنامه نویسی آردوینو نیز به دسته بندی آموزش آردوینو مراجعه کنید.
استعداد آدمی را می پوشاند و وقتی استعدادش کاهش یافت آنچه هست نمایان می شود. فریدریش نیچه
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
کد ها ارور میده
سلام، مشکل حل شد. دیدگاه پایین را بخونید.
کدها مشکل داره
سلام، خیلی ممنون آقای قربانی بابت اطلاع رسانی بله مشکل از ورژن لایبری ها بود که اصلاح شد. لینک جدید به نوشته اضافه شد. لایبری جدید ورژن 1.27 هستش دانلود، قبلی را حذف و جدید را اضافه کنید مشکل حل میشه.
من یه ریموت کد ثابت دارم که کدش رو به صورت صفر و یک دارم که با یک ماژول pc-jc02 کار میکرد ، حالا مدتیه که ظاهرا ماژول گیرنده از کار افتاده (چون مطمینم ریموت سالمه و کار میکنه) حالا یدونه از همین ماژول گیرنده سفارش دادم ، میخوام بدونم کدش چی هست که کد ریموت کنترل کد ثابتم رو با لحیم بر اساس اون تنظیم کنم ، سوالم ااز چه طریقی میتونم بفهمم کد ماژول گیرنده چیه تا ریموت کنترلم رو بر اساس اون تنظیم کنم
سلام ممکنه کد های فرستنده رو برای آردوینو نانو قرار بدید؟!!
بله فرقی نداره
سلام آقا ی جهاندیده.
میشه با این پروژه هر کاراکتری رو ارسال و دریافت کرد مثل g , l یا…
واینکه تو ی یک خط از این کد چند کاراکتر میتونه ارسال بشه
ممنون میشم پاسخ بدید.
سلام آقا حسن
پروژه را من ننوشتم ولی یک نگاه کلی انداختم بله میشه در مثال بالا هم مقدار متغیر controller برابر با رشته 0 است که همون را میفرسته فقط.
controller=”0″ ;
ببخشید من تازه متوجه شدم لایبری مشکل داره
ممنون آقای جهاندیده کتابخوانه درست شد .
فقط شما دوتا کتابخوانه فراخوانی کردید ولی یه کتابخوانه گذاشتید.
باید کتابخوانه ی دوم هم باشه یا نه.
چون ارور نمیده .
شک کردم.
منظورم اینه اگه کتابخوانه ی دومی تو پوشه ی کتابخوانه ی آردواینو نباشه مشکلی پیش نمیاد.
سلام آقا حسین داخل پوشه لایبری ها ما دوتا فایل داریم.
فایل زیر را باز کن ببین:
https://melec.ir/micromilad/wp-content/uploads/2018/06/VirtualWire-1.27.zip
سلام ؛ برای این کد، با ریموت 0 و 1 میدیم ؟ اگه ریموت نباشه ،باید چیکار کرد ال ای دی روشن بشه؟