آموزش آردوینوپروژه های آردوینو

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

آیا می خواهید با قیمتی کمتر از یک فنجان قهوه، قابلیت های رادیویی بی سیم را به پروژه آردوینو خود اضافه کنید؟ خوب، پس ماژول‌های فرستنده و گیرنده RF 433 مگاهرتز برای شما مناسب هستند! آنها را اغلب می توان به صورت آنلاین با کمتر از دو دلار خریداری کرد، که آنها را به یکی از ارزان ترین گزینه های ارتباط داده ای تبدیل می کند. و بهتر از همه، این ماژول ها بسیار کوچک هستند و به شما این امکان را می دهند که یک ارتباط بی سیم را تقریباً در هر پروژه ای بگنجانید.

ما در این مطلب با استفاده از آردوینو ماژول فرستنده و گیرنده RF را راه اندازی میکنیم. کد برای فرستنده و گیرنده رادیویی 433mhz به طور کامل نوشته شده است و توضیحات داده میشود.

ماژول ASK RF RX/TX 433MHZ

بیایید نگاهی دقیق‌تر به ماژول‌های فرستنده و گیرنده رادیویی 433 مگاهرتز بیندازیم.

ماژول‌ فرستنده رادیویی 433 مگاهرتز
ماژول‌ فرستنده رادیویی 433 مگاهرتز

ماژولی که در تصویر بالا میبینید فرستنده رادیویی 433 مگاهرتز است. قلب ماژول رزوناتور (تشدید کننده) SAW است که برای عملکرد 433.xx مگاهرتز تنظیم شده است. یک ترانزیستور سوئیچینگ و چند جزء غیرفعال نیز در مدار این ماژول وجود دارد.

هنگامی که یک منطق HIGH به ورودی DATA اعمال می شود، نوسانگر با تولید یک موج حامل خروجی RF ثابت در فرکانس 433.xx مگاهرتز کار می کند و هنگامی که ورودی DATA به منطق LOW می رسد، نوسانگر متوقف می شود. این تکنیک با نام Amplitude Shift Keying یا همان ASK شناخته می شود که به زودی در مورد آن به تفصیل صحبت خواهیم کرد.

ماژول‌ گیرنده رادیویی 433 مگاهرتز
ماژول‌ گیرنده رادیویی 433 مگاهرتز

تصویر بالا نمودار ماژول گیرنده 433 مگاهرتز است. اگرچه پیچیده به نظر می رسد، اما گیرنده نیز به سادگی ماژول فرستنده است. این ماژول یک مدار تنظیم شده RF و چند آپ امپ برای تقویت موج دریافتی از فرستنده است. سیگنال تقویت‌شده به یک PLL (حلقه قفل فاز) تغذیه می‌شود که رمزگشا را قادر می‌سازد تا روی جریان بیت‌ های دیجیتالی «Lock» شود که خروجی رمزگشایی‌شده را بهتر و نویز را کمتر می‌کند.

ASK – کلید زدن دامنه شیفت

همانطور که در بالا توضیح داده شد، برای ارسال داده های دیجیتال از طریق رادیو، این ماژول ها از تکنیکی به نام Amplitude Shift Keying یا ASK استفاده می کنند. در Amplitude Shift Keying، دامنه (یعنی سطح) موج حامل (در مورد ما یک سیگنال 433 مگاهرتز است) در پاسخ به سیگنال داده ورودی تغییر می کند.

این بسیار شبیه به تکنیک آنالوگ مدولاسیون دامنه است که اگر با رادیو AM آشنایی داشته باشید، ممکن است با آن آشنا باشید. گاهی اوقات به آن کلیدسازی با دامنه باینری می گویند زیرا فقط دو سطح وجود دارد. می توانید آن را به عنوان یک سوئیچ ON/OFF در نظر بگیرید.

  • منطق 1 – این حامل را با قدرت کامل هدایت می کند.
  • منطق 0 – این حامل را به طور کامل قطع می کند.

مدولاسیون Amplitude به این صورت است:

فرستنده RF 433 تغییر کلید زنی شکل موج ASK
فرستنده RF 433 تغییر کلید زنی شکل موج ASK

ASK این مزیت را دارد که اجرای آن بسیار ساده است. طراحی مدار رمزگشا بسیار ساده است. همچنین ASK به پهنای باند کمتری نسبت به سایر تکنیک های مدولاسیون مانند FSK (Frequency Shift Keying) نیاز دارد. این یکی از دلایل ارزان بودن آن است.

اما نقطه ضعف آن این است که ASK بسیار زیاد مستعد نویز است. اما تا زمانی که سرعت انتقال داده های خود را در حالت نسبتاً آهسته حفظ کنید، می تواند در اکثر محیط ها به طور قابل اعتماد کار کند.

پین های فرستنده و گیرنده RF 433Mhz

بیایید نگاهی به پین ​​اوت ماژول‌های فرستنده و گیرنده RF 433 مگاهرتز بیندازیم.

پین فرستنده رادیویی 433
پین فرستنده رادیویی 433 مگاهرتز
  • پین DATA داده های دیجیتال را برای انتقال می پذیرد.
  • VCC برق فرستنده را تامین می کند. این می تواند هر ولتاژ DC مثبت بین 3.5 تا 12 ولت باشد. توجه داشته باشید که خروجی RF متناسب با ولتاژ تغذیه است، یعنی هر چه ولتاژ بالاتر باشد، دامنه بیشتر خواهد بود.
  • GND یک پین زمین است.
  • آنتن یک پین برای آنتن خارجی است. میتوانید یک تکه سیم جامد 17.3 سانتی‌متری را برای دامنه بهبود یافته به این پین لحیم کنید.
پین فرستنده رادیویی 433 مگاهرتز
پین فرستنده رادیویی 433 مگاهرتز
  • VCC برق گیرنده را تامین می کند. برخلاف فرستنده، ولتاژ تغذیه گیرنده باید 5 ولت باشد.
  • پین های DATA داده های دیجیتال دریافتی را خروجی می دهند. دو پین مرکزی به صورت داخلی به هم متصل شده اند، بنابراین می توانید از هر کدام برای خروج داده ها استفاده کنید.
  • GND یک پین زمین است.
  • آنتن یک پین برای آنتن خارجی است که اغلب بدون علامت است. این پد در سمت چپ پایین ماژول، درست در کنار سیم پیچ کوچک است. میتوانید یک تکه سیم جامد 17.3 سانتی‌متری را برای دامنه بهبود یافته به این پین لحیم کنید.

مدار اتصال ماژول رادیویی 433mhz به آردوینو

اکنون که همه چیز را در مورد ماژول ها می دانیم، زمان استفاده از آنها فرا رسیده است. از آنجایی که داده‌ها را بین دو برد آردوینو ارسال خواهیم کرد، به دو برد آردوینو، دو برد بورد و چند سیم جامپر نیاز خواهیم داشت.

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

سیم کشی فرستنده نسبتاً ساده است. فقط سه اتصال دارد. پایه VCC را به پایه 5 ولت و GND را به GND در آردوینو وصل کنید. پین Data-In باید به پین ​​دیجیتال شماره ۱۲ آردوینو متصل شود. باید سعی کنید از پین 12 استفاده کنید زیرا به طور پیش فرض کتابخانه ای که ما در طرح خود استفاده خواهیم کرد از این پین برای ورودی داده استفاده می کند.

تصویر زیر سیم کشی را نشان می دهد.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

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

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

هنگامی که فرستنده را سیم کشی کردید، می توانید به سمت گیرنده بروید. سیم کشی مدار گیرنده به همان راحتی فرستنده است.

بار دیگر فقط سه اتصال برای ایجاد وجود دارد. VCC را وصل کنید به پایه 5 ولت و GND به GND در آردوینو. یک کدام از دو پین میانی Data-Out باید به پین ​​دیجیتال شماره 11 در آردوینو متصل شود. سیم کشی گیرنده باید به این شکل باشد.

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

کد آردوینو فرستنده رادیویی 433 مگاهرتز

کد کامل به همراه کتابخانه مورد نیاز در انتهای صفحه قرار داده شده است. ما میخواهیم دو کلمه ساده Hello World را از طریق ماژول فرستنده رادیویی 433 مگاهرتز ارسال کنیم. کد کامل به همراه توضیحات خط به خط در زیر قرار داده شده است.

// فراخوانی کتابخانه رادیویی ASD
#include <RH_ASK.h>
// فراخوانی کتابخانه ارتباط SPI
#include  <SPI.h> 
 
// ایجاد یک آبجکت برای ASK
RH_ASK rf_driver;
 
void setup()
{
    // پیکربندی ASK
    rf_driver.init();
}
 
void loop()
{
    const char *msg = "Hello World"; // تعیین متن برای ارسال
    rf_driver.send((uint8_t *)msg, strlen(msg)); // ارسال متن
    rf_driver.waitPacketSent(); // منتظر ماندن برای اتمام فرآیند ارسال
    delay(1000); // 1 ثانیه صبر
}

کد آردوینو گیرنده RF 433 مگاهرتز

برد گیرنده آردوینو را به کامپیوتر متصل کنید و کد زیر را در آن آپلود کنید. کد کامل به همراه توضیحات خط به خط در پایین قرار داده شده است.

// فراخوانی کتابخانه رادیویی ASD 
#include <RH_ASK.h> 
// فراخوانی کتابخانه ارتباط SPI 
#include <SPI.h> 

// ایجاد یک آبجکت برای 
ASK RH_ASK rf_driver;

 void setup() { 
    // پیکربندی ASK
    ASK rf_driver.init();
    // پیکربندی سریال مانیتور
    Serial.begin(9600);
}
 
void loop()
{
    // تعیین سایز بافر با توجه به پیام دریافتی
    uint8_t buf[11];
    uint8_t buflen = sizeof(buf);
    // بررسی صحیح بودن سایزپیام دریافتی
    if (rf_driver.recv(buf, &buflen))
    {
      
      // پیام دریافتی در سریال مانیتور نمایش داده میشود
      Serial.print("Message Received: ");
      Serial.println((char*)buf);         
    }
}

موارد موجود در فایل : سورس ها و کتابخانه

دانلود فایل های پروژه

4/5 - (4 امتیاز)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.
تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

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

نشانی ایمیل شما منتشر نخواهد شد.