19.دماسنج کامپیوتری(قابل اتصال به پورت پرینتر)
· سخت افزار سیستم:
سخت افزار این سیستم مدار ساده ای بوده که به پورت پرینتر (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
میکروکنترلر ( ATtiny13 )
ATtiny13
در این دماسنج از پایه های 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 جانبی موجود است.