این ماژول یک ماژول ترنسیور بر پایه چیپ CC1101 می باشد که توانایی ارسال و دریافت دیتا را دارد.این ماژول در واقع یک فرستنده گیرنده سریال می باشد که توسط آن می توان ارتباط UART بیت دو MCU را به صورت بیسیم در آورد . این ماژول بر خلاف دیگر ماژول های ترنسیور ، دارای فریمور بوده و از طریق رابط سریال می توان آن را کنترل کرد . با استفاده از دو ماژول HC-11 می توان یک فرستنده گیرنده UART با حداکثر برد 200 متر ساخت .HC-11 دارای پین خروجی آنتن بوده و علاوه بر آن یک سوکت IPX(UHF) جهت اتصال آنتن خارجی بر روی برد ماژول وجود دارد . راه اندازی و به کارگیری این ماژول بسیار راحت بوده و کنترل آن از طریق دستورات AT+Command می باشد . از این ماژول می توان برای سیستم های انتقال دیتا وایرلس و همچنین ساخت رادیو کنترلر ها استفاده کرد .
نکته : ماژول های HC-11 در فرکانس های مختلفی ساخته می شوند که تنها ماژول های هم فرکانس توانایی ارتباط با همدیگر را دارند .
امکانات :
- فرکانس کاری 433MHz ، 315MHz و …
- رابط ارتباطی UART
- ولتاژ تغذیه 3.3 تا 5 ولت
- دارای حساسیت -112dBm
- دارای بادریت 9600 بیت بر ثانیه
- برد 1 تا 40 متری بدون آنتن
- برد 200 متری با آنتن
- دمای کاری -40 تا +85 درجه سانتی گراد
پین های ماژول HC-11 :
این ماژول داری 6 پین به شرح زیر می باشد .
1)پین SET جهت فعال تغییر مد کاری
2)پین Vcc پین تغذیه ماژول
3)پین GND زمین ماژول
4)پین های Rx و Tx جهت ارتباط سریال با ماژول
5)پین ANT جهت اتصال به آنتن(علاوه بر این پین یک سوکت IPX بر روی ماژول موجود است)
راه اندازی ماژول HC-11 :
راه اندازی این ماژول ها بسیار ساده بوده و حتی می توان بدون ایجاد تغییر در تنظیمات اولیه ، آن را راه اندازی کرد ( تنظیمات اولیه کلیه ماژول ها یکی بوده و به همیت سبب دو ماژول بدون تغییر در تنظیمات اولیه ، توانایی ارتباط با همدیگر را دارند ).
این ماژول دارای دو مد عملکرد عادی و حالت At+Command می باشد . در مد At+Command می توان ماژول را تنظیم کرد و در حالت عادی با قرار گیری هر دیتایی در پبن های RX و TX همان دیتا عینا ارسال می شود . در حالت عادی باید پین SET به جایی متصل نباشد . برای حالت At+Command باید پین SET را قبل از روشن کردن ماژول صفر کنید .
در مثال زیر با استفاده از ماژول HC-11 بین دو عدد آردوینو ارتباط برقرار می شود .
باید به این نکته توجه شود که ابتدا هردو ماژول را روی یک کانال قرار داد(در این مثال تنظیمات دو ماژول در حالت پیش فرض قرار دارد) .
برنامه فرستنده :
#include <SoftwareSerial.h> SoftwareSerial mySerial(2,3); void setup() { Serial.begin(9600); mySerial.begin(9600); } void loop() { if(mySerial.available()>0) { String input=Serial.readString(); Serial.println(input); } delay(5); }
برنامه گیرنده :
#include <SoftwareSerial.h> SoftwareSerial mySerial(2,3); void setup() { Serial.begin(9600); mySerial.begin(9600); } void loop() { if(Serial.available()>0) { String input=Serial.readString(); Serial.println(input); } if(mySerial.available()>1) { String input=mySerial.readString(); Serial.println(input); } delay(5);}