اتصال سنسور دما TMP36 به برد آردوینو

محتویات
یکی از سادهترین و مقرونبهصرفهترین راهها برای افزودن قابلیت اندازهگیری دما به پروژههای آردوینو، استفاده از سنسور دمای TMP36 است. این سنسورها نسبتاً دقیق هستند و برای کارکردن به هیچ قطعه خارجی نیاز ندارند. بنابراین، با چند اتصال ساده و کمی کدنویسی در آردوینو، میتوانید به سرعت دما را اندازهگیری کنید!
سنسور دمای TMP36
سنسور TMP36 یک سنسور دمای دقیق و کممصرف است که توسط شرکت Analog Devices تولید شده است. این سنسور یک ولتاژ خروجی ارائه میدهد که به صورت خطی با دمای محیط بر حسب درجه سانتیگراد (°C) متناسب است و بنابراین، استفاده از آن با آردوینو بسیار آسان است.
سنسور TMP36 بسیار دقیق است، هرگز فرسوده نمیشود، در شرایط محیطی مختلف کار میکند و به هیچ قطعه خارجی نیاز ندارد. علاوه بر این، این سنسور نیازی به کالیبراسیون ندارد و دقت معمول آن در دمای 25°C حدود ±1°C و در محدوده دمایی 40-°C تا 125°C حدود ±2°C است.
این سنسور میتواند با ولتاژ تغذیه 2.7 تا 5.5 ولت کار کند و تنها 50 میکروآمپر در حین تبدیل دما مصرف میکند، که باعث ایجاد گرمای بسیار کم (کمتر از 0.1 °C در هوای ساکن) میشود. همچنین، یک قابلیت خاموشی (Shutdown) برای کاهش جریان تغذیه به کمتر از 0.5 میکروآمپر ارائه شده است.
مشخصات فنی TMP36
تغذیه | 2.7V تا 5.5V |
جریان مصرفی | 50µA |
محدوده دما | -40°C تا 125°C |
دقت | ±2°C |
ضریب خروجی | 10mV/°C |
محدوده خروجی | 0.1V (-40°C) تا 1.75V (125°C) |
خروجی در 25°C | 750mV |
نحوه عملکرد سنسور TMP36
سنسور TMP36 از یک تکنیک حالت جامد برای اندازهگیری دما استفاده میکند. این سنسور از این روش استفاده میکند که ولتاژ بین پایه های بیس و امیتر (ولتاژ مستقیم – Vbe) یک ترانزیستور دیودی با افزایش دما به میزان مشخصی کاهش مییابد. با تقویت دقیق این تغییر ولتاژ، میتوان یک سیگنال آنالوگ تولید کرد که مستقیماً با دما متناسب است.
این رابطه خطی بین ولتاژ مستقیم و دما، دلیل استفاده از ترانزیستورهای دیودی به عنوان سنسور دما است. تمام این محاسبات پیچیده در داخل سنسور TMP36 انجام میشود و تنها یک ولتاژ خروجی متناسب با دما ارائه میدهد.
نحوه اندازهگیری دما با TMP36
استفاده از سنسور TMP36 بسیار آسان است. کافی است پایه سمت چپ را به منبع تغذیه (2.7 تا 5.5 ولت) و پایه سمت راست را به زمین (GND) متصل کنید (با فرض اینکه طرف صاف سنسور به سمت شما باشد). سپس پایه وسط یک ولتاژ آنالوگ تولید میکند که مستقیماً با دمای محیط بر حسب درجه سانتیگراد متناسب است.
برای تبدیل ولتاژ خروجی به دما، از فرمول ساده زیر استفاده کنید:
دما (°C) = (ولتاژ خروجی – ۰٫۵) * ۱۰۰
به عنوان مثال، اگر ولتاژ خروجی 1 ولت باشد، دمای محیط به این صورت محاسبه میشود:
(۱ – ۰٫۵) * ۱۰۰ = ۵۰°C
تست سنسور TMP36
تست سنسور TMP36 بسیار ساده است. کافی است پایه سمت چپ را به منبع تغذیه 2.7 تا 5.5 ولتی (مثلاً دو باتری قلمی) و پایه سمت راست را به زمین (GND) متصل کنید (با فرض اینکه طرف صاف سنسور به سمت شما باشد). حالا مولتیمتر خود را در حالت ولتاژ DC به زمین و پایه وسط وصل کنید. در دمای اتاق (25°C)، ولتاژ باید حدود 0.75 ولت باشد.
سعی کنید بدنه پلاستیکی سنسور را به آرامی فشار دهید تا افزایش دما را مشاهده کنید. یا میتوانید سنسور را با یک تکه یخ (درون یک کیسه پلاستیکی تا مدار شما با آب تماس نداشته باشد) لمس کنید و کاهش دما را مشاهده کنید.
پایههای سنسور TMP36
سنسور TMP36 در سه فرم فاکتور مختلف موجود است، اما رایجترین نوع آن، بستهبندی 3 پایهای TO-92 است که شبیه یک ترانزیستور به نظر میرسد. بیایید نگاهی به پایههای آن بیندازیم:
- +Vs: پایه تغذیه سنسور که میتواند بین 2.7 تا 5.5 ولت باشد.
- Vout: پایه خروجی آنالوگ که ولتاژی متناسب با دما تولید میکند. این پایه باید به یک ورودی آنالوگ (ADC) متصل شود.
- GND: پایه زمین.
اتصال سنسور TMP36 به آردوینو
اتصال سنسور TMP36 به آردوینو بسیار ساده است. تنها نیاز به اتصال سه پایه دارید: دو پایه برای تغذیه و یک پایه برای خواندن مقدار سنسور.
- پایه +Vs به منبع تغذیه (3.3 یا 5 ولت) متصل میشود.
- پایه GND به زمین (GND) متصل میشود.
- پایه Vout به یکی از ورودیهای آنالوگ آردوینو (مانند A0) متصل میشود.
خواندن دادههای آنالوگ دما
همانطور که در نمودار اتصالات بالا مشاهده میکنید، خروجی سنسور TMP36 به یکی از ورودی های آنالوگ آردوینو متصل شده است. مقدار این ورودی آنالوگ را میتوان با تابع analogRead() خواند.
با این حال، تابع analogRead()
مستقیماً ولتاژ خروجی سنسور را برنمیگرداند. در عوض، ولتاژ ورودی بین 0 ولت و ولتاژ مرجع ADC (که معمولاً 5 ولت یا 3.3 ولت است، مگر اینکه تغییر داده شود) را به یک عدد 10 بیتی بین 0 تا 1023 تبدیل میکند. برای تبدیل این مقدار به ولتاژ خروجی سنسور، از فرمول زیر استفاده کنید:
ولتاژ خروجی = (مقدار خوانده شده از ADC) * (۵ / ۱۰۲۴)
اگر از آردوینو 3.3 ولتی استفاده میکنید، از این فرمول استفاده کنید:
ولتاژ خروجی = (مقدار خوانده شده از ADC) * (۳٫۳ / ۱۰۲۴)
سپس، برای تبدیل ولتاژ به دما، از فرمول زیر استفاده کنید:
دما (°C) = (ولتاژ خروجی – ۰٫۵) * ۱۰۰
کد آردوینو: دماسنج ساده با TMP36
کد کامل پروژه های این صفحه در فایل دانلودی انتهای مقاله قرار داده شده اند. در این جا قسمت های مختلف کد ها را بررسی میکنیم.
این کد روشی سریع برای خواندن سنسور دمای TMP36 است و میتواند به عنوان پایهای برای آزمایشها و پروژههای عملیتر استفاده شود. این کد به سادگی مقدار سنسور TMP36 را از پین آنالوگ A0 خوانده و دمای فعلی (هم در °C و هم در °F) را روی مانیتور سریال نمایش میدهد. میتوانید این کد را به آردوینو خود آپلود کنید.
اسکچ (کد برنامه) با تعریف پین آردوینو که پایه خروجی (Vout) سنسور به آن متصل شده است، شروع میشود.
#define sensorPin A0 // تعریف پین آنالوگ متصل به سنسور
در تابع setup
، ارتباط سریال با کامپیوتر راهاندازی میشود.
void setup() { Serial.begin(9600); // شروع ارتباط سریال با نرخ ۹۶۰۰ بیت بر ثانیه }
در تابع loop
، ابتدا سیگنال آنالوگ از سنسور TMP36 با استفاده از تابع analogRead()
خوانده میشود.
int reading = analogRead(sensorPin); // خواندن مقدار آنالوگ از سنسور
سپس، از فرمولهایی که قبلاً در مقاله مورد بحث قرار گرفتند، استفاده میکنیم تا مقدار آنالوگ خوانده شده را به ولتاژ و سپس به دما تبدیل کنیم.
float voltage = reading * (5.0 / 1024.0); // تبدیل مقدار آنالوگ به ولتاژ float temperatureC = (voltage - 0.5) * 100; // تبدیل ولتاژ به دمای سانتیگراد
سپس، نتایج روی مانیتور سریال چاپ میشوند.
Serial.print("Temperature: "); Serial.print(temperatureC); Serial.print("\xC2\xB0"); // نمایش نماد درجه Serial.print("C | ");
مقدار دمایی که به دست میآوریم بر حسب سانتیگراد (°C) است. این مقدار با استفاده از یک فرمول ساده به فارنهایت (°F) تبدیل شده و روی مانیتور سریال نمایش داده میشود.
T(°F) = T(°C) × 9/5 + 32 float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0; // تبدیل دمای سانتیگراد به فارنهایت Serial.print(temperatureF); Serial.print("\xC2\xB0"); // نمایش نماد درجه Serial.println("F");
این کد ساده و کاربردی است و برای پروژههایی که نیاز به اندازهگیری دما دارند، بسیار مناسب است. خروجی این کد به شکل زیر است:
پروژه آردوینو: دماسنج مستقل با TMP36 و LCD
گاهی اوقات ایدههایی به ذهن میرسد که در آنها میخواهید قرائت های دما را به صورت بلادرنگ نمایش دهید و در صورت خارج شدن دما از محدوده مشخص شده، هشدار دهید. در این صورت، احتمالاً به یک LCD کاراکتری 2*16 به جای سریال مانیتور نیاز خواهید داشت.
در این مثال، LCD کاراکتری I2C را به همراه سنسور TMP36 به آردوینو متصل میکنیم. اتصال LCD کاراکتری I2C بسیار ساده است، همانطور که در نمودار اتصالات زیر مشاهده میکنید.
خروجی این کد به دو شکل هم در سریال مانیتور به شکل زیر و هم در ال سی دی کاراکتری است.
موارد موجود در فایل : سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود