رفتن به مطلب

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


ارسال های توصیه شده

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

 

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

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

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

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

 

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

 

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

فرستنده:

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

1ykbtr4ihkvhmj3sgmmr_thumb.gif

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

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

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

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

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

tw1wj0b7qfyxcqj8xh2w_thumb.gif

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

 

lo3miv879jmrnci1z9.jpg

c7n4igx7406c5s9jwriy_thumb.jpg

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

b2gxhnayp6ypam1m7uc2_thumb.gif

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

h3h57seicz9t3srs2ef_thumb.gif

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

71aujuaqbrbk8ettwia.jpg

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

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

df01zo7yrbzyanxjb0ny_thumb.jpg

تغذیه:

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

گیرنده:

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

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

9bww5kvakspvvotvdqsh_thumb.jpg

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

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

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

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

idr5bihx9q26bysw7k2x.jpg

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

hxonh0nqemczlnn2hmvp.jpg

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

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

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

x6jamyuesb0et50d7ct.jpg

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

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

 

7t3yk70sosn9vugm1ixm.jpg

 

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

fjoos4sjcnx13fscfv_thumb.jpg

 

 

 

  • Like 2
لینک به دیدگاه
×
×
  • اضافه کردن...