در این پست از سایت اِمیک, پروژه روشنایی اتوماتیک چراغ های خیابان با تشخیص عبور خودرو قرار داده شده است که این پروژه با استفاده از میکروکنترلر AVR انجام شده است. عملکرد این پروژه به این صورت می باشد که در زمانی که هیچ خودرویی در خیابان حرکت نمی کند, چراغ های خیابان خاموش است. زمانی که یک خودرو در خیابان حرکت کند, توسط سنسورهای مادون قرمز (IR) حرکت خودرو تشخیص داده می شود و چراغ های خیابان یکی پس از دیگری با عبور خودرو روشن می شوند تا مسیر را برای حرکت اتومبیل روشن کنند. با رد شدن خودرو از جلوی هر چراغ و رسیدن به چراغ بعدی, چراغ های قبلی در صورتی که خودرویی از جلوی انها عبور نکند خاموش می شوند.
به این ترتیب می توان در مصرف انرژی الکتریکی صرف جویی کرد و روشنایی خیابان ها و مسیرهایی که در شب خودروهای زیادی از ان عبور نمی کند را هوشمند کرد تا فقط در زمان حرکت خودرو چراغ های خیابان روشن شود.
همانطور که گفته شد در این پروژه برای تشخیص عبور خودرو ما از سنسورهای مادون قرمز یا IR استفاده کرده ایم. قبلا مدار راه اندازی و تست این سنسورها را در سایت قرار داده بودم که در ان پست در مورد سنسورهای مادون قرمز و مدار راه انداز انها توضیحاتی داده شد, که می توانید ان پست را در اینجا مشاهده کنید.
ما در این پروژه مدار راه اندازی سنسورهای مادون قرمز که در بالا معرفی شد را به صورت جزئی تغییر داده ایم و برای راه اندازی سنسورهای IR این پروژه از ان استفاده کرده ایم. که این مدار بصورت زیر است:
برای هر تعداد چراغی که می خواهید کنترل کنید باید به همان تعداد مدار بالا را ببندید مثلا اگر 5 چراغ را می خواهید کنترل کنید باید 5 عدد از مدار بالا را ببندید. مدار بسیار ساده است, فرستنده مادون قرمز که با IR-T مشخص شد توسط مقاومت R3 تغذیه شده و نور مادون قرمز را منتشر می کند. گیرنده مادون قرمز نیز با IR-R مشخص شده و توسط مقاومت R4 به مثبت تغذیه متصل شده است و محل اتصال مقاومت R4 به گیرنده مادون قرمز به پایه مثبت اپ امپ U1 متصل شده است. مقاومت های R1 و R2 یک ولتاژ ثابت (نصف VCC) روی پایه منفی اپ امپ ایجاد می کنند.
زمانی که نور فرستنده به گیرنده برسد یا به عبارت دیگر خودرویی از جلوی سنسورها عبور نکند, مقاومت سنسور گیرنده کم شده و در نتیجه ولتاژ دو سر ان که همان ولتاژ پایه مثبت اپ امپ است کاهش می یابد و باعث می شود ولتاژ ثابتی که روی پایه منفی اپ امپ است از پایه مثبت ان بیشتر شده و درنتیجه خروجی اپ امپ صفر منطقی (Low) می شود.
زمانی که نور فرستنده به گیرنده نرسد یا به عبارت دیگر خودرویی از جلوی سنسورها عبور کند, مقدار مقاومت سنسور گیرنده زیاد شده و در نتیجه ولتاژ پایه مثبت اپ امپ از ولتاژ پایه منفی ان بیشتر می شود و خروجی اپ امپ یک منطقی (High) می شود.
برای این پروژه باید سنسور فرستنده IR را در یک سمت خیابان قرار دهیم و گیرنده را نیز در سمت دیگر خیابان و دقیقا مقابل ان قرار دهیم تا با عبور خودرو از بین انها نور فرستنده قطع شده و به گیرنده نرسد تا از این طریق بتوانیم عبور خودرو را تشخیص دهیم.
پروژه AVR روشن شدن چراغ خیابان با تشخیص حرکت خودرو :
ما در این پروژه از دو عدد سنسور فرستنده و گیرنده IR برای کنترل دو جفت چراغ LED استفاده کرده ایم. شما می توانید به دلخواه هر تعداد چراغی که خواستید را کنترل کنید فقط همانطور که گفته شد برای هر سنسور فرستنده و گیرنده IR باید یکی از مدار بالا بسته شود و البته باید سنسورهای جدید را در برنامه پروژه اضافه کنید. شماتیک پروژه برای دو سنسور فرستنده و گیرنده IR و کنترل دو جفت LED بصورت زیر است :
برای دیدن تصویر بالا در اندازه بزرگتر ان را ذخیره کنید. برای این پروژه از میکروکنترلر ATmega16 استفاده شده است. قسمت سنسورهای شماتیک بطور کامل در بالا توضیح داده شد و نیاز به نکته ی خاصی نیست. همانطور که مشاهده می کنید خروجی سنسور اول به پین 40 و خروجی سنسور دوم نیز به پین 39 میکرو متصل شده است. پین های 38 و 37 میکرو نیز به ترتیب به led های سنسور اول و دوم متصل شده اند که با حرکت خودرو از بین هر کدام از سنسورها خروجی ان فعال شده و میکروکنترلر چراغ های مربوطه را روشن می کند. در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید.
توجه کنید که پایه های تغذیه میکروکنترلر (پایه 10 و 11) را که در شماتیک بالا نیست, فراموش نکنید به تغذیه 5 ولت متصل کنید.
برنامه کدویژن :
در این پروژه فرکانس میکروکنترلر 1 مگاهرتز تنظیم شده است. در زیر برنامه نوشته شده به زبان C و کامپایلر کدویژن را مشاهده می کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
////////// WWW.EMIC.IR ////////// #include <mega16.h> #include <delay.h> void main(void) { int i=0; DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (1<<DDA3) | (1<<DDA2) | (0<<DDA1) | (0<<DDA0); PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); while (1) { //را روشن مي کند A هاي متصل به پين 2 از پورت LED يک شود يا به عبارتي ديگر زماني که سنسور اول فعال شود A زير زماني که پين 0 از پورت if شرط// if(PINA.0==1&PINA.1==0) { PORTA.2=1; PORTA.3=0; i=0; } //را روشن مي کند A هاي متصل به پين 3 از پورت LED زير زماني که سنسور دوم فعال شود if شرط// if(PINA.0==0&PINA.1==1) { PORTA.2=0; PORTA.3=1; i=0; } //ها را روشن مي کند LED شرط زير زماني که هر دو سنسور فعال باشند همه ي// if(PINA.0==1&PINA.1==1) { PORTA.2=1; PORTA.3=1; i=0; } //ها را خاموش مي کند LED شرط زير زماني که هر دو سنسور غيرفعال باشند بعد از 5 ثانيه همه ي// if(PINA.0==0&PINA.1==0) { delay_ms(10); i++; if(i>=500) { PORTA.2=0; PORTA.3=0; } } } } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…
سلام فرستنده و گیرنده مادون قرمز تا چه فاصله از هم دور باشند کار میکنند؟
سلام دمتون گرم ممنون
سلام مهندس روز بخیر
ببخشید میخواستم بگم میشه در این حالا برنامه از سون سگمنت هم استفاده کرد؟
سلام, سون سگمنت برای چه کاری؟ شما می تونید به دلخواه برنامه را با توجه به نیازتون تغییر بدید
داخل برنامه کدویژن کدها مربوط به پورت B هست، در صورتیکه شماتیک پروتئوسی که گذاشتید پورت A هست.
ممنون از توجه شما دوست عزیز کدها اصلاح شد
سلام و خسته نباشید و ممنون از سایت عالی و زحمات
مهندس تو این مدار میشه از 100 یا بیشتر led استفاده کرد؟
سلام, بله فقط led ها را به وسیله یک درایور (رله یا ترانزیستور) راه اندازی کنید
سلام خسته نباشید
وسایل این بروژتونو دارید
قیمتش چنده
سلام, خیر می تونید از فروشگاه های قطعات الکترونیکی تهیه کنید
سلام . خسته نباشید .
سایت خوب و کاربردی دارید .
یه سوال من میخواهم ۱۵ ال ای دی کنترل کنم این مدار ۲ تا هست .
چه نوع میکرو کنترلی استفاده کنم و برنامه مربوطه میکرو رو برام میزارید.
ممنونم ازتون
سلام, در توضیحات گفته شده که چگونه تعداد سنسورها را افزایش دهید و نیاز به تغییر میکروکنترلر نیست
سلام خسته نباشید
ممنونم از مطالبتون
واقعا سایتتون یکی از یهترین هاست