ساخت دماسنج خطی
سنسورهای دما آنالوگ یک قطعه نیمه رسانا می باشند که با توجه به دمای محیط و مواد تشکیل دهنده آن ها، مقدار مقاومتشان تغییر پیدا می کند، در نتیجه می توان با اندازه گیری جریان عبوری از آن اقدام به ساخت دماسنج نمود تا مقدار دمای محیط را محاسبه کرد. از این دماسنج ها می توان در مدارات الکترونیک برای آشکار سازی تغییرات حرارت استفاده کرد.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
LCD کاراکتری مدل 16×2 با Backlighting آبی | 1 عدد |
مقاومت 10 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
مقاومت 4.7 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
در این پروژه از مبحث آموزش آردوینو یک تراشه دماسنج به شماره MCP9700A از شرکت MICROCHIP THECHNOLOGY Inc برای اندازه گیری دما توسط برد آردوینو Arduino Uno استفاده کرده ایم. این تراشه به صورتی عمل می کند که توسط یک حسگر آنالوگ حرارت موجود را به ولتاژ آنالوگ تبدیل می کند. این دمانسج در تراشه خود نیازی به سیگنال و قطعات اضافی برای راه اندازی ندارد، بنابراین با حداقل هزینه می توان این امکانات را در اختیار گرفت، و با اندازه گیری ولتاژ خروجی این تراشه به صورت مستقیم توسط یکی از کانال های ADC (مبدل آنالوگ به دیجیتال) یک برد آردوینو، مقدار دما را به سادگی محاسبه نمود.
سخت افزار پروژه
سخت افزار بعدی مورد استفاده در پروژه یک LCD کاراکتری 2*16 می باشد، که نحوه اتصال آن به آردوینو در تصاویر زیر درج شده است.
همچنین شما می توانید برای ارتقاء سطح پروژه آردوینو با اضافه کردن چند خط برنامه در کدهای اصلی پروژه، یک منو نیز به آن اضافه نمائید، و همچنین با تعبیه یک صفحه کلید به کاربر این امکان را بدهید که بتواند برخی متغییرها همانند متغییر دمای بالا و یا متغییر دمای پایین جهت کنترل دما تعریف کند و بتواند مقدار دلخواه خود را وارد نماید. (این موضوع به خواننده واگذار می شود)
حالا با اتصال حسگر دمای MCP9700A به وردی آنالوگ A1 آردوینو می توان حرارت را اندازه گرفت. در آخر اطلاعات اندازه گیری شده توسط برد آردوینو بر روی ال سی دی کاراکتری میزان حرارت را نشان می دهد.
برنامه آردوینو در نرم افزار آردوینو
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 |
#include // Arduino pins used for LCD LiquidCrystal lcd(8, 9,4, 5, 6, 7); void setup() { // initialize the LCD display lcd.begin(16, 2); } void loop() { float temperature = 0.0; // stores the calculated reading int sample; // counts through ADC samples float ten_samples = 0.0; // stores sum of 10 samples // take 10 samples from the MCP9700 sensor for (sample = 0; sample < 10; sample++) { // convert A1 value to temperature temperature = ((float)analogRead(A1) * 5.0 / 1024.0) ‐ 0.5; // 500mV offset corrected – see datasheet of MCP9700 temperature = temperature / 0.01; // sample every 10ms delay(100); // sum of all samples ten_samples = ten_samples + temperature; } // get the average value of 10 samples temperature = ten_samples / 10.0; // display the temperature on the LCD lcd.setCursor(0, 0); lcd.print(temperature); lcd.print(” deg. C “); ten_samples = 0.0; } |
توجه : برای حذف نویزهای احتمالی و افزایش میزان دقت دماسنج می توانید همانند نقشه شماتیک زیر سنسور دمای MCP9700A را با استفاده از دو عدد خازن عدسی 100nF راه اندازی نمائید.