سرخط خبرها
خانه » نرم افزار » کامپایلر ها » بسکام » کنترل بی سیم ۸ کاناله با برد بیش از ۹۰ متر

کنترل بی سیم ۸ کاناله با برد بیش از ۹۰ متر

در این پست یک پروژه ۸ کاناله بیسیم با استفاده از ماژول های HMTR قرار داده ایم که اطلاعات ۸ کلید را  به وسیله ماژول HMTR  ارسال میکند و در گیرنده ۸ رله قرار گرفته شده است که متناسب با هر کلید در فرستنده ، یک رله در خروجی گیرنده فعال میگردد و تا زمانی که کلید در فرستنده وصل باشد رله مورد نظر در گیرنده  فعال میباشد و به قولی لحظه ای میباشد .

جهت پردازش اطلاعات در فرستنده و گیرنده  ،از ای سی AVR  به شماره ATMEGA8 و در گیرنده جهت راه اندازی رله ها از ای سی ULN2803  استفاده شده  و زبان برنامه نویس ان بیسیک است و از نرم افزار بسکام جهت نوشتن برنامه ان استفاده شده است.

امروزه ماژول های بیسیم مختلف وجود دارد که برد ارسالی اطلاعات در ان ها از ۵۰ متر تا چندین کیلومتر متغیر میباشد  و ماژول HMTR  در گروه برد ۵۰۰ متر قرار گرفته است که در فاصله وکیفیت ارسال اطلاعات ، بسته به شرایط مدار  و کیفیت برد ان متفاوت بوده و حداقل برد ان ۹۰ متر در فضای ازاد میباشد.

بیسیم
wireless

در چندین پست قبلی سایت یک نمونه مدار بیسیم چهارکاناله قرار داده بودیم که با استفاده از ای سی های Pt2262 و pt2272  اطلاعات را ارسال و دریافت میکرد اما در ان مدار اطلاعات را نمیتوان به صورت مستقیم  ارسال کرد و  اطلاعات باید به صورت موازی در ورودی ای سی فرستنده قرار میگرفت و در گیرنده نیز اطلاعات به صورت موازی دریافت می شد.

در یکی دیگر از پست ماژولی HMTR  را معرفی کردیم که این ماژول اطلاعات را به صورت سریال (بانرخ ارسال  ۹۶۰۰ ) دریافت میکرد و ان را ارسال می نمود و همچنین در گیرنده اطلاعات به صورت سریال در خروجی ظاهر میشد که هر  ماژول می توانست به صورت فرستنده و یا گیرنده مورد استفاده قرار گیرد.

در این جا یک نمونه مدار عملی ساخته شده با این ماژول برای شما کاربران یزدکیت قرار داده شده است.

فرستنده:

در فرستنده از ۸ میکرو سوییچ جهت ورودی استفاده شده است که در نقشه شماتیک زیر مشخص شده است.

کلید ها توسط مقاومت شانه ای PR1  که مقدار ان ۱۰ کیلو است به صورت PULL UP  قرار گرفته شده است.

میکرو این کلید ها را هر ۲۰۰ میلی ثانیه یک بار چک میکند و در خروجی سریال UART خود یک متغییر یک بایتی را  به ماژول ارسال میکند .

اگر هیچ کدام از کلید ها زده نشود عدد ۲۵۵ (باینری = ۱۱۱۱۱۱۱۱ ) ارسال میگردد

هر یک از بیت های ۸ گانه این متغییر یک بایتی، مربوط به یک کلید است یعنی در حالت عادی که کلیدی زده نشود متغییر به صورت ۱۱۱۱۱۱۱۱  (این اعداد به صورت باینری است) میباشدو اگر کلید ۱ زده شود مقدار متغییر به صورت ۱۱۱۱۱۱۱۰  تغییر میکند و اگر هر ۸ کلید باهم زده شود مقدار متغییر به صورت ۰۰۰۰۰۰۰۰ مقدار دهی میشود.

در عکس شماتیک زیر خروجی سریال و ماژول HMTR  نشان داده شده است.

 

عکس ماژول و انتن در زیر اورده شده است و در صورتی که به انتن دسترسی ندارید میتوانید برای تست مدار از یک سیم تک رشته بجای انتن استفاده کنید توجه داشته باشید که اگر انتن بر روی ماژول نباشد هیچ اطلاعاتی ارسال و دریافت نمیشود.


جهت کسب اطلاعات تکمیلی در مورد این ماژول به لینک زیر مراجعه نمایید.
http://yazdkit.com/transparent-wireless-data-link-module-hm-tr-2564.html

در پورت c میکرو دو led  قرار گرفته شده است که  LED3 در حالت عادی که کلیدی زده نشده باشد و میکرو عدد ۲۵۵ را به ماژول ارسال میکند روشن و خاموش میشود و  LED2  زمانی که یکی از کلید ها فشار داده شود روشن وخاموش میشود که در قسمت زیر نشان داده شده است.

یک کانکتور ۶ پینی به نام STK200/300  در فرستنده و گیرنده وجود دارد که این کانکتور جهت پروگرام کردن میکرو به وسیله پروگرامر stk200/300  میباشد که جهت کسب اطلاعات بیشتر در مورد این پروگرامر میتوانید به این پست مراجعه کنید.

stk200-300

در برنامه مربوط به فرستنده جهت ارسال دیتا از میکرو به ماژول که ارتباط ان ها به صورت سریال میباشد از دستور زیر استفاده شده است .

همانطور که در بالا میبینید با این دستور متغییر SEND_DATA  به پورت سریال ارسال میگردد و اسم متغییر میتواند نام دلخواه دیگر و همچنین از نوع دیگر باشد نکته ای که است در برنامه فرستنده و گیرنده نوع متغییر حتما باید از یک نوع باشد.

عکس زیر نمونه ساخته شده فرستنده میباشد.

فرستنده
مدار فرستنده

نکته مهم:
در ای سی avr فرستنده از کریستال داخلی ۲ مگاهرتز جهت نوسان سازی استفاده شده است که باید در فیوز بیت میکرو ان را تنظیم نمایید.

تغذیه:

تغذیه میکرو و ماژول ۵ ولت dc  میباشد که میتوانید به وسیله یک رگولاتور ۵ ولت ان را به یک باطری کتابی وصل کنید و جریان مصرفی میکرو و فرستنده حدود ۷۰ میلی آمپر میباشد.

گیرنده:

در قسمت گیرنده ماژول hmtr اطلاعات دریافتی خود را به صورت سریال (پروتکل UART )  به ای سی ATMega8  ارسال میکند و میکرو نسبت به مقدار متغییر دریافتی در خروجی رله ها را فعال یا غیر فعال میکند.

خروجی ای سی ATM8  به ای سی درایور ULN2803  متصل شده است که این ای سی به صورت NOT  عمل میکند .داخل این ای سی ۸ عدد گیت NOt  وجود دارد که میتوان با ان ها رله و یا استپ موتور های کوچک را درایو کرد. در شماتیک زیر رله ها را مشاهده میکنید که با هر رله یک led نیز به صورت موازی قرار گرفته است که با روشن شدن رله ،led  مربوط به ان هم روشن میشود و به دلیل این که در  ای سی ULN2803   در هر خروجی یک دیود دمپر وجود دارد لذا در بوبین رله ها از دیود استفاده نشده است .

رله هایی که در این مدار استفاده شده است از نوع ۵ ولت هستند به همین دلیل میتوانید گیرنده را نیز با تغذیه ۵ ولت راه اندازی نمایید.

در گیرنده بر روی پورت C میکرو دو led  قرار گرفته است که led5  از زمان روشن شدن دستگاه مدام چشمک میزند که این نشان دهنده روشن بودن میکرو است و led6  زمانی که سیگنال از فرستنده به گیرنده برسد چشمک میزند یعنی اگر فرستنده خاموش باشد و یا از محدوده ارتباطی (برد ارسالی سیگنال) بیرون رود این led خاموش میشود.

محل اتصال ماژول و فیش پروگرامر و همچنین دو led  موجود در گیرنده و فرستنده دقیقا بر روی یک پورت میباشد.

در گیرنده جهت دریافت اطلاعات از مد وقفه ایی UART استفاده شده است به این صورت که هر وقت داده ای یتوسط میکرو دریافت شد، میکرو به زیر برنامه پرش میکند و مقدار داده را میخواند که دستور زیر فعال کردن مد وقفه ایی سریال را نشان میدهد که با دریافت دیتا میکرو به لیبل GETDATA  پرش میکند که نام گذاری این لیبل نیز میتواند به دلخواه باشد.

برای این که در مد وقفه اطلاعات را دریافت کنید مقدار دیتا دریافتی در رجسیتر UDR  ذخیره میگردد که این رجیستر یک بایتی است و جهت خواندن رجیستر از نمونه برنامه زیر استفاده میشود.


در صورتی که در هنگام دریافت داده دیتایی دریافت نشود و یا به هر علتی ارتباط قطع گردد (خاموش شدن فرستنده و یا بیرون رفتن از محدوده برد سیگنال) وضعیت رله ها به صورت اخرین دیتا دریافتی باقی میماند که جهت خاموش شدن رله ها در این وضعیت از تایمر استفاده میکنیم به این صورت که اگر بیش از ۹۰۰ میلی ثانیه طول کشید و هیچ دیتایی توسط میکرو دریافت نشد میکرو خروجی های مربوط به رله ها را صفر میکند .

در هر دریافت دیتا تایمر مقدار ان صفر میگردد به این ترتیب در زمان دریاف دیتا هیچ موقع این عمل اتفاق نمی افتد.

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

زمانی که تایمر بیش از ۲۵ دفعه OVF  شود این ۲۵ دفعه زمانی حدود یک ثانیه را طی میکند.

 در دستور زیر با هر OVF  شدن متغییر I  یک واحد با ان اضافه میگردد و زمانی که مقدار متغییر به بیش از ۲۵ واحد رسید ،یعنی ارتباط قطع شده است و خروجی های رله ها صفر می شود.درضمن با هربار دریافت داده مقدار متغیر I  صفر میشود وبه نوعی شمارش زمان صفر میشود

عکس زیر نمونه ساخته شده گیرنده میباشد.

برد ساخته شده گیرنده با ماژول HMTR
مدار گیرنده

نکته مهم:
در ای سی avr گیرنده از کریستال داخلی ۸ مگاهرتز جهت نوسان سازی  استفاده شده است که باید در فیوز بیت، فرکانس میکرو را بر روی ۸ MHZ تنظیم کنید.



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

در ادمه فایل شماتیک و سورس برنامه که به زبان بیسیک است را برای دانلود قرار داده ایم . امید واریم که این مدارات گامی کوچک در یادگیری avr به دوستان عزیزمان باشد.

دانلود “نقشه شماتیک فرستنده و سورس برنامه به زبان بیسیک” ferestande.zip – Downloaded 9144 times – 97 KB

دانلود “نقشه شماتیک گیرنده و سورس برنامه به زبان بیسیک” girande.zip – Downloaded 6954 times – 115 KB

موفق و پیروز باشید.

یاعلی

همچنین ببینید

ساخت دور سنج با استفاده از سنسور اثر هال UGN3503

در چندین پست قبلی سنسور اثر هال Ugn3505  معرفی گردید که میتوانید جهت دیدن ان ...

۴۱ دیدگاه

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

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

  3. ممنونم ازتون.من خىلى دنبال رىموت کنترل تو اىنترنت گشتم.فقط تو ساىت شما پىداش کردم.فقط ىه مشکل کوچىک قىمت بالاى ماژول هست ۴۴۰۰۰ تومان

  4. باسلام خدمت اقای دشتی ودوستان وتشکر از برنامتون .من یه برنامه
    دوکاناله باماژول (اچ ام تی واچ ام ار)نوشتم وکدگذاری کردم
    وخوب کارمی کنه ولی وقتی تقذیه اش رو قطع میکنم ودوباره
    وصل میکنم گیرنده هنگ میکنه دیگه فرستنده رونمیشناسه باچند بار
    قطع ووصل کردن ویا یکبار دراوردن گیرنده از سوکت روی مدار
    ودوباره جا زدن راه می افته خوب کارمیکنه البته این مشکل در مورد
    گیرنده است؟ایا دراین مورد نظری داری خوشحال میشم بفرمائید

  5. سلام مشیه از این را به ۱۶ کانال ارتقا داد؟ چه جوری؟

  6. سلام اطلاعات خوبی بود لطفا راهنماییم کنید میخواستم زمانی که فرستنده و گیرنده در محدوده هم قرار گرفتند یک bezzer کار کند

  7. سلام خسته نباشید اطلاعات خوبی بود ولی میشه از این مدار برای ارسال و دریافت تصویر هم استفاده کرد یعنی مثلا میشه اطلاعات یک دروبین دیجیتال رو به وسیله اون ارسال و دریافت کرد

  8. salam.
    khaste nabashid etelat besyar aali bodan va hastan.ali yaretoon.

  9. ممنون دوستان عزیز اطلاعات مهمی بوند
    راستی حالا چرا فایل پی سی بی شونذاشته بودین؟

  10. سلام وخسته نباشید واقعاً اطلاعات مفیدی بود. بنده یه سوالی داشتم واینه که چطور میشه به وسیله لب تاب وماژول HMTR یه روباتو کنترل کرد ازاین پروژه به خوبی جواب گرفتم حالا میخوا به همون لبتاب وصل کنم ممنون از سایت بی نظیرتون .

پاسخ دهید