ترمومتر این پروژه دمای محیط را از ۰ تا ۹۹ درجه سانتی گراد با دقت ۰٫۵ درجه سانتیگراد اندازه گیری کرده و آن را بر روی LCD نمایش می دهد.
همچنین از این پروژه میتوان بعنوان یک ترموستات نیز استفاده نمود. تا پائین یا بالارفتن دما از حد مشخص را کنترل نمود.
این پروژه با میکروکنترلر AVR و با استفاده از کامپایلر Bascom AVR طراحی شده است.
برای Setpoint این پروژه دو دما قابل تنظیم می باشد. برای تنظیم بیشترین مقدار دما و کم ترین مقدار دما می توان از تک سوییچ ها استفاد کرد. مقادیر تنظیم شده در حافظه EEPROM داخلی میکروکنترلر ذخیره خواهد شد. تا با قطع تغذیه مدار، این مقادیر محفوظ بماند.
خروجی این پروژه از نوع رله خواهد بود. و قابلیت کنترل دو عدد رله را دارد. یکی از رله ها برای کنترل سیستم گرمایشی و دیگری برای کنترل سیستم سرمایشی استفاده خواهد شد.
برای استفاده از خروجی این سیستم باید از شماتیک زیر استفاده کرد.
برنامه این پروژه به روش ساب روتین نوشته شده است.
سابروتین چیست:
در گذشته جهت جابجایی در قسمت های مختلف برنامه از دستورات goto و jamp استفاده می کردند. این کار باعث پیچیده شدن برنامه و ناخوانی آن می شد. برای رفع این مشکل ساختار زیربرنامه و تابع ایجاد شد.
در این روش یک برنامه تشکیل شده از یک Main که هسته اصلی برنامه است و تعداد زیادی از زیر برنامه ها.
هر زیربرنامه فقط یک کار انجام میدهد و بعد از اتمام کار، برنامه به همان جایی که فراخوانی شده بود بر میگردد.
برنامه هایی که به روش ساب روتین نوشته می شوند، از خوانایی بالاتری برخوردار بوده و مشکلات برنامه را سریعتر می توان پیدا کرد. از یک زیربرنامه می توان برای برنامه های دیگر نیز استفاده کرد. و این روش سرعت تهیه برنامه های بعد را نیز افزایش می دهد.
توجه داشته باشید که بعد از استفاده از زیربرنامه ، در آخر باید از دستور Return استفاده کنید تا برنامه به جای اول خود برگردد.
در این پروژه برنامه نویسی به روش ساب روتین به بهترین شکل ممکن انجام شده است. تمامی فرامین برنامه تحت یک زیر تابع نوشته شده و در برنامه اصلی فقط این زیر برنامه ها مدیریت می شوند.
در برنامه نویسی این پروزه کوچک به تعداد 12 عدد زیر تابع استفاده شده است.
جهت مشاهده سورس این پروژه اینجا کلیک کنید.
زیر تابع های این پروژه از قرار زیر است:
. • Display_start_text
. • Eeprom_default
. • Eeprom_save
. • Eeprom_load
. • Up_maximum_temperature
. • Down_maximum_temperature
. • Up_minimum_temperature
. • Down_minimum_temperature
. • Red_temp
. • Show_temp
. • Setting_fan
. • Setting_hiter
خرد کردن پیکره ی برنامه به تکه های کوچکتر، به میزن قابل توجهی از کدهای قسمت اصلی برنامه، کم کرده و باعث افزایش خوانایی برنامه شده است.
اهداف آموزشی:
. • آشنایی با LCD کاراکتری و نحوه راه اندازی آن
. • آشنایی با ADC میکروکنترلر
. • آشنایی با سنسور دمای LM35 و نحوه راه اندازی آن
. • آشنایی با رله و نحوه راه اندازی آن
. • نحوه خواندن و نوشتن بر روی حافظه EEPROM داخلی میکروکنترلر
. • آشنایی با روش برنامه نویسی ساب روتین
محتویات فایل دانلود:
. • سورس برنامه با کامپایلر بیسکام
. • شبیه سازی پروژه با نرم افزار پروتیوس
جهت دانلود فایل های این پروژه اینجا کلیک کنید. ( 224KB )
تهیه و تنظیم: علیرضا جودی
منبع:
http://projects.m32.ir/1310/