
محتویات
سلام. کنترل وسایل خانه با ریموت مادون قرمز و PIC (آموزش کامل پروژه خانه هوشمند با کنترل IR) را آماده کردیم. فیلم عملکرد مدار را ببینید !
کنترل وسایل خانه با ریموت مادون قرمز و PIC
در این پروژه PIC ، ما می خواهیم از میکروکنترلر PIC برای کنترل از راه دور چند وسیله AC با استفاده از ریموت IR استفاده کنیم. در پایان این پروژه شما قادر خواهید بود با استفاده از یک کنترلمعمولی به راحتی روی صندلی بنشینید ، و وسایل خانه مثل لامپ و … را روشن و خاموش کنید. برای جالب تر شدن این پروژه ، یک ویژگی دیگر نیز برای کنترل سرعت پنکه با کمک Triac فعال کرده ایم. همه این موارد را می توان با فشار ساده بر دکمه کنترل مادون قرمز خود انجام دهید. سیگنالهای مختلف IR از راه دور توسط میکروکنترلر دریافت می شوند که سپس رله های مربوطه را از طریق مدار فعال یا غیر فعال میشود. این رله ها برای روشن و خاموش کردن وسایل مثل چراغ ، پنکه و … استفاده میشوند.
نحوه کار پروژه خانه هوشمند با کنترل IR
نحوه کار این پروژه ساده است. هنگامی که یک دکمه روی کنترل فشار داده میشود، توالی کد را به صورت پالس های رمزگذاری شده با استفاده از فرکانس 38Khz ارسال میشود. این پالس ها توسط سنسور گیرنده مادون قرمز TSOP1738 دریافت میشوند و سپس توسط میکروکنترلر خوانده میشوند. سپس میکروکنترلر توالی دریافتی را رمزگشایی میکند.
توالی کد دریافتی توسط میکروکنترلر با توالی کد هایی که ما تعیین کرده ایم مقایسه میشوند و در صورت یکسان بودن رله مربوط را فعال / غیرفعال میکند. نتیجه توسط LED روی برد نمایش داده میشود. این پروژه ما از 4 لامپ به جای وسایل خانه استفاده کردیم همچنین از یک لامپ بزرگتر به عنوان فن استفاده کردیم تا سرعت آن را با استفاده از ترایاک تنظیم کنیم.
ما از کلید 1 برای رله 1 ، کلید 2 برای رله 2 ، کلید 3 برای رله 3 ، کلید 4 برای رله 4 و از -+ برای کم و زیاد کردن سرعت فن استفاده کردیم. توجه داشته باشید در اینجا ما به جای پنکه از لامپ 100 وات استفاده کرده ایم.
توضیحات قطعات مورد استفاده در مدار
انواع زیادی از کنترل های IR برای دستگاه های مختلف موجود است ، اما بیشتر آنها در فرکانس 38 کیلوهرتز کار می کنند. در اینجا در این پروژه ، ما وسایل خانگی را با استفاده از کنترل IR تلویزیون کنترل می کنیم و برای تشخیص سیگنال های IR ، از گیرنده IR TSOP1738 استفاده می کنیم. این سنسور TSOP1738 می تواند سیگنال فرکانس 38 کیلوهرتز را حس کند.
میکروکنترلر PIC ما در +5V کار می کند و رله ها در +12V کار می کنند ، از این رو ما از ترانسفورماتور برای پایین آمدن برق 220V AC استفاده کردیم. این ولتاژ را با آی سی 7812 و 7805 به ترتیب به 12 ولت و +5 ولت تنظیم می کنیم. برای کنترل رله ما از ترانزیستورهایی مانند BC547 استفاده می کنیم که می توانند به عنوان سوئیچ الکترونیکی عمل کنند تا رله ها را بر اساس پیام دریافتی از میکروکنترلر PIC روشن یا خاموش کنند. TRIAC یک نیمه هادی است که قادر به کنترل ولتاژ خروجی است. از این قابلیت برای کنترل سرعت فن استفاده می شود.
همچنین ببینید : پروژه آردوینو کنترل سرعت فن AC با ترایاک – مدار تشخیص عبور از صفر
ما همچنین از درایور Triac برای کنترل Triac با استفاده از میکروکنترلر PIC استفاده کرده ایم. از این درایور برای دادن پالس زاویه به Triac استفاده کردیم تا قدرت خروجی کنترل شود. در اینجا ما از 6 سطح کنترل سرعت استفاده کرده ایم. هنگامی که سطح 0 باشد ، فن خاموش خواهد شد. هنگامی که سطح 1 خواهد بود سرعت 1/5 از سرعت کامل خواهد بود. هنگامی که سطح 2 خواهد بود ، سرعت 2/5 از سرعت کامل و به ترتیب برای دیگران خواهد بود. سطح فعلی سرعت را می توان با استفاده از یک سون سگمنت مشاهده کرد.
سنسور گیرنده مادون قرمز TSOP1738
TSOP1738 یک گیرنده مینیاتوری مادون قرمز می باشد که مناسب جهت استفاده در سیستم های کنترل از راه دور می باشد. یکی از انواع گیرنده های مادون قرمز که در وسایل صوتی و تصویری مورد استفاده قرار میگیرد TSOP1738 می باشد که فرکانس کاری ان 38 کلیو هرتز است. این ماژول همانطور که در تصویر میبینید دارای 3 پایه است. VS، DATA و GND.زمانی که به سنسور نور مادون قرمز با فرکانس خاص (برای نمونه TSOP1738 فرکانس 38 کیلو هرتز ) نتابد خروجی VOUT مقداری برابر VS (مثبت تغذیه) دارد و با تابیدن نور مادون قرمز 38 کیلو هرتز این خروجی صفر می شود.
نحوه خواندن دکمه فشرده شده توسط میکروکنترلر
همانطور که قبلاً گفته شد می توانید از هر نوع ریموت برای پروژه خود استفاده کنید. اما باید بدانیم که چه نوع سیگنالی از آن ریموت خاص تولید می شود. برای هر کلید در ریموت مقدار HEX معادل آن کلید وجود خواهد داشت. با استفاده از این مقدار HEX (تصویر پایین) می توانیم از هر کلید استفاده کنیم. در این پروژه از ریموت NEC استفاده کرده ایم. مقادیر HEX برای کلیدهای از راه دور NEC در زیر آورده شده است. در صورت استفاده از کنترل های دیگر باید مقدار HEX آن را بدانید.
همانطور که می بینید مقدار HEX دارای 7 کاراکتر است.
قطعات مورد نیاز این پروژه
- میکروکنترلر PIC18f2520
- گیرنده مادون قرمز IR TSOP1738
- کنترل مادون قرمز (تلویزیون یا دستگاه DVD یا بخرید !)
- ترانزیستور BC547 – چهار عدد
- رله 12 ولت – چهار عدد
- ال سی دی کاراکتری 16*2
- منبع تغذیه 12 ولت
- ترانسفورماتور 12-0-12
- رگولاتور 7805
- رگولاتور 7812
- خازن 1000uf
- خازن 10uf
- خازن 0.1uf
- خازن 0.01uf 400V
- خازن 33pf
- مقاومت 10 کیلو اهم – پنج عدد
- مقاومت 1 کیلو اهم – پنج عدد
- مقاومت 100 اهم – هفت عدد
- مقاومت 47 اهم 2 وات
توضیحات کد پروژه
این کد در نرم افزار MPLAB X نوشته شده است(دانلود MPLAB X).
در این قسمت از کد شما کتابخانه های مورد استفاده ما برای این پروژه را میبینید :
#include <xc.h> #include<string.h> #include<stdlib.h> #include "config.h"
در این قسمت از کد ما پین هایی که برای رله ها ، ال ای دی ها ، سنسور مادون قرمز ، ترایاک ، ال ای دی و فن تنظیم کردیم را میتوانیم تغییر دهیم :
#define tric RB1 #define ir RB2 #define relay1 RC2 #define relay2 RC3 #define relay3 RC4 #define relay4 RC5 #define rly1LED RB3 #define rly2LED RB4 #define rly3LED RB5 #define rly4LED RC1 #define fanLED RC0
نحوه تنظیم دکمه های کنترل برای عملکرد مشخص
سیگنال دریافتی از کنترل شامل 34bit است. ما همه این بیت ها را ذخیره میکنیم و آخرین بیت را رمزگشایی میکنیم.
while(ir == 1); INT0IE = 0; while(ir == 0); TMR0=0; while(ir == 1); i++; dat[i]=TMR0; if(dat[1] > 5000 && dat[1]<12000) { } else { i=0; INT0IE = 1; } if(i>=33) { GIE=0; delay(50); cmd=0; for(j=26;j<34;j++) { if(dat[j]>1000 && dat[j]<2000) cmd<<=1; else if(dat[j]>3500 && dat[j]<4500) { cmd|=0x01; cmd<<=1; } } cmd>>=1;
قطعه کد بالا با استفاده از تایمر سیگنال IR را دریافت و رمزگشایی می کند و مقدار HEX مربوطه را در متغیر cmd ذخیره می کند. اکنون می توانیم این مقدار HEX (متغیر cmd) را با مقادیر از پیش تعریف شده HEX خودمان مقایسه کنیم و رله را فعال / غیرفعال کنیم.
if(cmd == 0xAF) //تنظیمات دکمه رله شماره 1 { relay1=~relay1; rly1LED=~rly1LED; } else if(cmd == 0x27) // تنظیمات دکمه رله شماره 2 { relay2=~relay2; rly2LED=~rly2LED; } else if(cmd == 0x07) // تنظیمات دکمه رله شماره 3 { relay3=~relay3; rly3LED=~rly3LED; } else if(cmd == 0xCF) // تنظیمات دکمه رله شماره 4 { relay4=~relay4; rly4LED=~rly4LED; } else if(cmd == 0x5f) // تنظیمات دکمه افزایش سرعت پنکه { speed++; if(speed>5) { speed=5; } } else if(cmd == 0x9f) // تنظیمات دکمه کاهش سرعت پنکه { speed--; if(speed<=0) { speed=0; } }
موارد موجود در فایل : فایل سورس کامل ، شماتیک کامل و …
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود