·       سخت افزار سیستم:

سخت افزار این سیستم مدار ساده ای بوده که به پورت پرینتر (LPT) کامپیوتر متصل می شود و متشکل از یک میکروکنترلر AVR به شماره ATtiny13 و یک سنسور آنالوگ دما به شماره LM35 و تعدادی مقاومت و یک خازن می باشد. در ابتدا توضیحات مختصری در مورد پورت پرینتر آورده شده است که البته شرح کامل این پورت به CD جانبی ضمیمه شده است.

  پورت پرینتر ( LPT Port )

به طور کلی LPT به عنوان پورت پرینتر یا پورت موازی شناخته می شود. پورت موازی می تواند داده ها را به صورت بایت به بایت ارسال یا دریافت کند که همین امر باعث شده سرعت آن نسبت به پورت سری که داده ها را به صورت بیت به بیت انتقال می دهد، بالاتر باشد اما معایبی نیز از جمله هزینه بالای انتقال اطلاعات و برد کم دارد.

برای دستیابی به هر رابط از یک کامپیوتر، دانستن آدرس آن بخش ضروری است. پورت LPT نیز مانند هر رابط دیگری دارای آدرس جهت ارسال و دریافت داده ها می باشد. در واقع LPT گروهی از سه پورت داده (Data Port)، وضعیت (Status Port) و کنترل (Control Port) است. این پورت ها هر کدام دارای آدرس مجزا بوده که در یک کامپیوتر شخصی استاندارد آدرسهای 378H ، 379H و 37aH به ترتیب برای پورت‎های داده، وضعیت و کنترل می باشد. پورت داده که پین‎های 2 تا 9 رابط LPT است یک درگاه خروجی بوده اما با یک تنظیم ساده می توان آن را به ورودی تبدیل کرد. پورت وضعیت همیشه ورودی و شامل پین های 10 تا 13 و 15 رابط LPT می باشد. پورت کنترل نیز به صورت خروجی عمل کرده و پین های 1، 14، 16 و 17 از درگاه LPT را به خود اختصاص داده است. پین های 18 تا 25 نیز زمین (Ground) می‎باشند.

در پروژه دماسنج از بیت 5 پورت وضعیت به عنوان ورودی داده‎ها به کامپیوتر و از بیتهای 3 و 7 پورت داده جهت انتقال سیگنال از کامپیوتر به میکروکنترلر استفاده شده است. از آنجایی که کل مصرف مدار الکترونیکی سیستم کمتر از 5 میلی آمپر و حداکثر جریان خروجی هر یک از بیت های پورت داده در حدود 10 میلی آمپر می باشد بنابراین برای تغذیه مدار مذکور از بیت صفر پورت داده استفاده شده است و در برنامه کامپیوتر همیشه این بیت در سطح منطقی 1 نگه داشته می شود.

 

  سنسور دما ( LM35 )

                                                           

   

LM 35

سنسور LM35 که در این سیستم به کار رفته دارای خروجی آنالوگ می باشد و طبق مشخصه آن در دمای 25 درجه سانتیگراد دارای 250 میلی ولت ولتاژ در خروجی  می باشد و به ازای هر 1 درجه سانتیگراد تغییر دما، 10 میلی‎ولت تغییر ولتاژ در خروجی ایجاد می کند؛ بنابراین در دمای 0°C دارای 0mV و در دمای 150°C دارای 1500mV در خروجی می‎باشد. جهت اینکه مقدار دما در کامپیوتر نمایش داده شود بایستی خروجی آنالوگ این سنسور به دیجیتال تبدیل شده و به صورت کد باینری به کامپیوتر منتقل شود؛ این تبدیل و انتقال به کامپیوتر توسط میکروکنترلر موجود در سیستم انجام می شود. دیتاشیت سنسور LM35 به صورت PDF در CD جانبی موجود است.

 

  میکروکنترلر ( ATtiny13 )

                                     

ATtiny13

میکروکنترلر ATtiny13 دارای 1 کیلو بایت حافظه برنامه بوده و همانطور که در شکل زیر نشان داده شده دارای 8 پایه می باشد که پایه های شماره 4 و 8 آن تغذیه منفی و مثبت و پایه شماره 1 ریست خارجی است و مابقی پینها می‎تواند طبق برنامه ریزی انجام شده، ورودی یا خروجی باشد. البته لازم به ذکر است که پایه ریست (PB5) نیز می تواند به عنوان ورودی/خروجی به کار رود که در این صورت بایستی تغییری در رجیستر مربوطه تحت عنوان فیوزبایت انجام داد.

در این دماسنج از پایه های 5 و 6 و 7 جهت ارتباط میکروکنترلر با کامپیوتر به صورت سریال استفاده شده و خروجی سنسور دما نیز به پین شماره 2 متصل شده است. همانطور که قبلاً ذکر شد یکی از وظایف میکروکنترلر، تبدیل ولتاژ آنالوگ به دیجیتال است و از آنجایی که میکروکنترلر به کار رفته خود دارای آنالوگ به دیجیتال داخلی می باشد لذا نیازی به استفاده از چیپ آنالوگ به دیجیتال جداگانه نیست و بنابراین حجم مدار واسط بسیار کاهش یافته و باعث شده تا این مدار در داخل قاب پورت پرینتر قرار گیرد. دیتاشیت مربوط به میکروکنترلر ATtiny13 تحت فایل PDF در CD جانبی موجود می باشد.

  نقشه مدار واسط

نقشه مدار الکترونیکی سیستم به صورت مقابل می‎باشد و همانطور که نشان داده شده است از پایه های 2 و 18 پورت پرینتر به ترتیب به عنوان تغذیه مثبت و منفی مدار استفاده شده است و به منظور کاهش نویز و ریپل ولتاژ تغذیه یک خازن الکترولیتی 470 میکرو فاراد به این دو پایه متصل شده است.

 

 نرم افزار سیستم:

برای این سیستم 2 برنامه یکی برای میکروکنترلر به زبان Basic و دیگری برای کامپیوتر به زبان C نوشته شده است.

 

 برنامه میکروکنترلر به زبان Basic

برنامه میکروکنترلر تحت نرم افزار Bascom-AVR نوشته شده و کد هگزادسیمال حاصل از کامپایل آن توسط پروگرامر به حافظه برنامه میکروکنترلر منتقل شده است. این برنامه که به همراه شرح کامل آن در CD جانبی موجود است، 51%  از حافظه میکروکنترلر که معادل 522 بایت می باشد را اشغال نموده است. به طور کلی از امکانات موجود در میکروکنترلر فقط آنالوگ به دیجیتال (ADC) آن استفاده شده و در هر بار ارسال داده ها به کامپیوتر یکبار آنالوگ به دیجیتال

 

 برنامه کامپیوتر به زبان C

برنامه کامپیوتر به زبان C تحت نرم افزار TurboC3 نوشته و کامپایل شده است. به طور کلی این برنامه دارای یک حلقه اصلی بوده که در این حلقه مکرراً داده ها را از میکروکنترلر گرفته و تا 5 بار این کار را انجام و داده ها را با هم جمع می کند، سپس حاصل را بر 5 تقسیم کرده و آنگاه نتیجه را نمایش می دهد و این کار بدین منظور است که از تغییرات لحظه ای شدید جلوگیری شود که البته عمل دریافت داده و جمع کردن تا 5 بار به طور مداوم تا زمانیکه کلیدی از صفحه کلید فشرده نشود ادامه می یابد. لازم به ذکر است که داده ای که میکروکنترلر به کامپیوتر منتقل می‎کند مقدار واقعی دما نیست و برای این منظور بایستی داده دریافتی در هر بار بر عدد ثابت 2.95 تقسیم شود تا مقدار واقعی دما به دست آید.

 

 نرم افزار UserPort

در صورتی که برنامه کامپیوتری سیستم در ویندوزهای سری 9x یا Me استفاده شود مشکلی به وجود نمی آید، اما در صورت استفاده از ویندوزهای سری NT ، نرم افزار کامپیوتر با سخت افزار ارتباط برقرار نخواهد کرد و این بدان علت است که این خانواده از ویندوز پورت های کامپیوتر را بسته و اجازه دسترسی هر نرم افزاری را به پورت ها نمی دهد. لذا بایستی به طریقی اجازه ارتباط با پورت را گرفته و آن را باز کرد. در این پروژه برای باز کردن پورت از نرم افزاری به نام UserPort استفاده شده که کار کردن با آن بسیار ساده می‎باشد. این نرم افزار در CD جانبی موجود است.