HMT-HMR یکی از ماژولهای ارتباط رادیویی دارای مدولاسیون FSK بوده و گزینه مناسبی برای انتقال دیتا به صورت ۱ طرفه میباشد. این نوع ماژولهای توسط پروتکل ارتباطی سریال با آردوینو یا میکروکنترلر ارتباط برقرار میکنند.نرخ انتقال دیتا در این ماژولها ۶۰۰bps الی ۹۶۰۰bps میباشد.برد اینگونه ماژولها در شرایط محیطی متفاوت بین ۵۰ الی ۲۵۰ متر میباشد.این گونه ماژولها نسبت به ماژولهای NRF از سادگی بیشتری برخوردار میباشند از این رو برای کاربران مبتدی مناسب است.در ادامه با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.
آموزش ماژول HMT – HMR آردوینو
ماژولهای HMT – HMR در چهار فرکانس کاری ۳۱۵ ، ۴۳۳ ، ۸۶۸ و ۹۱۵ مگاهرنز ساخته شدهاند که فرکانسهای ۴۳۳ و ۹۱۵ مگاهرتز در بازار رایجتر میباشند.
ویژگیهایHMT 915 ( فرستنده )
ولتاژ تغذیه ۲٫۵ الی ۵ ولت
برد ۵۰ الی ۲۵۰ متر
جریان مصرفی ۱۲ میلیآمپر
سرعت ۶۰۰bps الی ۹۶۰۰bps
دمای کاری منفی منفی ۳۵ الی ۸۵ درجه سانتیگراد
ویژگیهای HMR 915 ( گیرنده )
ولتاژ تغذیه ۲٫۵ الی ۵ ولت
برد ۵۰ الی ۲۵۰ متر
جریان مصرفی ۱۱ میلیآمپر
سرعت ۶۰۰bps الی ۹۶۰۰bps
دمای کاری منفی منفی ۳۵ الی ۸۵ درجه سانتیگراد
ماژول HMT ( ماژول فرستنده ) دارای سه عدد پین میباشد که پین VCC به مثبت ۵ ولت DC ، پین GND به GND آردوینو و پین DATA به TXD آردوینو متصل میکنیم.
ماژول HMR آردوینو
در تصویر فوق ماژول HMR ( ماژول گیرنده ) را مشاهده میکنید.این ماژول دارای ۴ پین میباشد که که پین VCC به مثبت ۵ ولت DC ، پین GND به GND آردوینو و پین DATA به RXD آردوینو متصل میشود ، همچنین پین ENABLE به منظور فعال سازی ماژول میباشد که به مثبت ۵ ولت DC متصل میشود.
توجه: ماژولهای HMT و HMR برر اساس پروتکل ارتباط سریال با آردوینو ارتباط برقرار میکنند. در صورتی که با پروتکل ارتباط سریال و کتابخانه آشنایی ندارید میتوانید آموزشهای زیر را مطالعه کنید.
آموزش ارتباط سریال در آردوینو بخش اول
آموزش ارتباط سریال در آردوینو بخش دوم
آموزش ارتباط سریال در آردوینو بخش سوم
آموزش ارتباط سریال در آردوینو بخش چهارم
آموزش ارتباط سریال در آردوینو بخش پنجم
کدهای پروژه
در این پروژه با استفاده از میکروسوئیچ یک عدد LED را از فاصله دور به صورت بیسیم خاموش و روشن میکنیم. پروژه به این صورت میباشد که با یک بار فشار دادن کلید (کلید به پین شماره ۸ آردوینو متصل میباشد) ، LED ( متصل به پین شماره ۱۳) روشن میشود و با فشار مجدد کلید ، LED خاموش میشود. در این پروژه برای تشخیص فشار دادم کلید از کتابخانه دیبانسینگ استفاده شده است که میتوانید در لینکهای زیر آموزش آنها را مشاهده کنید.
آموزش دیبانسیگ کلید در آردوینو بخش اول
آموزش دیبانسیگ کلید در آردوینو بخش دوم
کدهای فرستندهHMT
#include <Bounce2.h> #define BUTTON_PIN 8 // یک آبجگت از کلاس دیبانس میسازیم Bounce debouncer = Bounce (); bool state = false; void setup () { // پین متصل به کلید را در وضعیت پول آپ قرار می دهیم pinMode (BUTTON_PIN, INPUT_PULLUP); Serial.begin (9600); // عملیات دیبانس را به پین متصل به ککلید نسبت می دهیم debouncer.attach (BUTTON_PIN); //زمان نویزگیری را مشخص می کنیم debouncer.interval (50); } void loop () { debouncer.update (); // اگر وضعیت پین از ۱ منطقی به صفر منقطقی تغییر کند وارد شرط زیر می شود if ( debouncer.fell () ) { state = !state; if ( state == true ) { Serial.print ('T'); } else if ( state == false ) { Serial.print ('F'); } } }
کدهای گیرنده HMR
int led = 13; void setup () { Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (led, LOW); } void loop () { if ( Serial.available () > 0 ) { char c = Serial.read (); if ( c == 'T' ) { digitalWrite (led, HIGH); } else if ( c == 'F' ) { digitalWrite (led, LOW); } } }
سختافزار مورد نیاز
برد آردوینو دو عدد آردوینو UNO
ماژول HMT 915 مگاهرتز ( فرستنده )
ماژول HMR 915 مگاهرتز ( گیرنده )
میکروسوئیچ
سلام
آقای قربانی ضمن تشکر از آموزشتان، همانند پست های قبلی دقیق و روان درس داده اید.
بسیار آموزنده بود. مرسی
سلام ممنون از زحمات شما. لطف میکنید بفرمایین چگونه اطلاعات را کد کنم که با ماژول های دیگر تداخل نداشته باشم؟
سپاس
سلام از IC های سری pt باید استفاده کنید یا اینکه در حین ارسال دیتا خودتون اطلاعات رو کد کنید در گیرنده بر اسال الگوریتمم به کار برده شده در کد کردن ، دیتا را دیکود کنید
سلام استفاده از حروف واعداد برای کد کردن کافی است ؟ یا از روشهای دیگری باید استفاده کنیم
سلام
من کد های فرستنده رو که کامپایل می کنم این ارور رو می ده:
sketch_jun11b:1: error: #include expects “FILENAME” or
#include <Bounce2.h>
^
exit status 1
#include expects “FILENAME” or
کد های گیرنده هم که کامپایل می کنم این ارور رو میده:
C:\Users\mhsh\AppData\Local\Temp\arduino_modified_sketch_587288\sketch_jun11a.ino: In function ‘void loop()’:
sketch_jun11a:13: error: ‘gt’ was not declared in this scope
if ( Serial.available () > 0 )
^
sketch_jun11a:13: error: expected ‘)’ before ‘;’ token
if ( Serial.available () > 0 )
^
sketch_jun11a:13: error: expected ‘;’ before ‘)’ token
if ( Serial.available () > 0 )
^
sketch_jun11a:26: error: expected ‘}’ at end of input
}
^
exit status 1
‘gt’ was not declared in this scope
لطفا کمک کنید.
با سلام
ضمن تشکر از توجه شما، این ارورها مربوط به Filename میباشد. باید قسمت مربوطه را بین <> قرار دهید. این موضوع بخاطر تغییرات کدهای HTML بوجود میآیند.
آخه کجاش باید بزارم؟هر جاییش که میزارم یا دوباره همون ارور رو میده یا یه ارور دیگه.
بین همان قسمتی از کد که نرم افزار به رنگ قرمز تبدیل میکند. پس از include
واقعا ممنون که سریع پاسخ میدید.ولی حالا اون درست شد به جاش این ارور رو میده:
C:\Users\mhsh\AppData\Local\Temp\arduino_modified_sketch_247847\sketch_jun13a.ino:1:29: fatal error: <Bounce2.h>: No such file or directory
#include
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.
من تازه کار هستم و خیلی سر از آردوینو در نمی آورم.
راستی نگفتید واسه ارور های برنامه گیرنده چیکار باید بکنم؟
خواهش میکنم، این موضوع رفع اشکال از خدمات دیجی اسپارک میباشد. این ارور مربوط به عدم وجود کتابخانه Bounce2 در مسیر مربوطه میباشد. برای این منظور باید از منو Sketch>Include Library>Manage Libraries وارد قسمت افزودن کتابخانه بشوید. سپس واژه Bounce2 را سرچ و نصب کنید. تا این لحظه ارور مربوط به کتابخانه رفع شود.
خیلی ممنون بالاخره درست شد!کتاب خانه Bounce2 را نصب کردم و یه ذره با کد های گیرنده ور رفتم تا درست شد.خیلی ممنون از راهنمایی ها و مطالب جالبتون.
با سلام
خوشحالم از این موضوع، شاد و پیروز باشید.
بردی که گفته شده با آنتنه یا بدون آنتن و اگه با آنتنه برد بدون آنتن رو میشه بگین
با سلام
بردهای بدون آنتن هستند ولی قابلیت نصب آنتن را دارند.