آموزش آردوینوپروژه های آردوینو

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

یکی از ساده‌ترین و مقرون‌به‌صرفه‌ترین راه‌ها برای افزودن قابلیت اندازه‌گیری دما به پروژه‌های آردوینو، استفاده از سنسور دمای TMP36 است. این سنسورها نسبتاً دقیق هستند و برای کارکردن به هیچ قطعه خارجی نیاز ندارند. بنابراین، با چند اتصال ساده و کمی کدنویسی در آردوینو، می‌توانید به سرعت دما را اندازه‌گیری کنید!

سنسور دمای TMP36

سنسور TMP36 یک سنسور دمای دقیق و کم‌مصرف است که توسط شرکت Analog Devices تولید شده است. این سنسور یک ولتاژ خروجی ارائه می‌دهد که به صورت خطی با دمای محیط بر حسب درجه سانتی‌گراد (°C) متناسب است و بنابراین، استفاده از آن با آردوینو بسیار آسان است.

سنسور دمای TMP36

سنسور 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

استفاده از سنسور TMP36 بسیار آسان است. کافی است پایه سمت چپ را به منبع تغذیه (2.7 تا 5.5 ولت) و پایه سمت راست را به زمین (GND) متصل کنید (با فرض اینکه طرف صاف سنسور به سمت شما باشد). سپس پایه وسط یک ولتاژ آنالوگ تولید می‌کند که مستقیماً با دمای محیط بر حسب درجه سانتی‌گراد متناسب است.

نحوه اندازه‌گیری دما با TMP36

برای تبدیل ولتاژ خروجی به دما، از فرمول ساده زیر استفاده کنید:

دما (°C) = (ولتاژ خروجی – ۰٫۵) * ۱۰۰

به عنوان مثال، اگر ولتاژ خروجی 1 ولت باشد، دمای محیط به این صورت محاسبه می‌شود:

(۱ – ۰٫۵) * ۱۰۰ = ۵۰°C

تست سنسور TMP36

تست سنسور TMP36 بسیار ساده است. کافی است پایه سمت چپ را به منبع تغذیه 2.7 تا 5.5 ولتی (مثلاً دو باتری قلمی) و پایه سمت راست را به زمین (GND) متصل کنید (با فرض اینکه طرف صاف سنسور به سمت شما باشد). حالا مولتی‌متر خود را در حالت ولتاژ DC به زمین و پایه وسط وصل کنید. در دمای اتاق (25°C)، ولتاژ باید حدود 0.75 ولت باشد.

مطلب پیشنهادی:  تست برد آردوینو (آموزش تعمیر خرابی سوختن آردوینو)

تست سنسور TMP36

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

سعی کنید بدنه پلاستیکی سنسور را به آرامی فشار دهید تا افزایش دما را مشاهده کنید. یا می‌توانید سنسور را با یک تکه یخ (درون یک کیسه پلاستیکی تا مدار شما با آب تماس نداشته باشد) لمس کنید و کاهش دما را مشاهده کنید.

تست سنسور TMP36

 

پایه‌های سنسور TMP36

سنسور TMP36 در سه فرم‌ فاکتور مختلف موجود است، اما رایج‌ترین نوع آن، بسته‌بندی 3 پایه‌ای TO-92 است که شبیه یک ترانزیستور به نظر می‌رسد. بیایید نگاهی به پایه‌های آن بیندازیم:

پایه‌های سنسور TMP36

  • +Vs: پایه تغذیه سنسور که می‌تواند بین 2.7 تا 5.5 ولت باشد.
  • Vout: پایه خروجی آنالوگ که ولتاژی متناسب با دما تولید می‌کند. این پایه باید به یک ورودی آنالوگ (ADC) متصل شود.
  • GND: پایه زمین.

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

اتصال سنسور 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");

این کد ساده و کاربردی است و برای پروژه‌هایی که نیاز به اندازه‌گیری دما دارند، بسیار مناسب است. خروجی این کد به شکل زیر است:

مطلب پیشنهادی:  آموزش وقفه ها در آردوینو (دستور attachInterrupt)

کد آردوینو: دماسنج ساده با TMP36

پروژه آردوینو: دماسنج مستقل با TMP36 و LCD

گاهی اوقات ایده‌هایی به ذهن می‌رسد که در آنها می‌خواهید قرائت‌ های دما را به صورت بلادرنگ نمایش دهید و در صورت خارج شدن دما از محدوده مشخص شده، هشدار دهید. در این صورت، احتمالاً به یک LCD کاراکتری 2*16 به جای سریال مانیتور نیاز خواهید داشت.

در این مثال، LCD کاراکتری I2C را به همراه سنسور TMP36 به آردوینو متصل می‌کنیم. اتصال LCD کاراکتری I2C بسیار ساده است، همانطور که در نمودار اتصالات زیر مشاهده می‌کنید.

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

خروجی این کد به دو شکل هم در سریال مانیتور به شکل زیر و هم در ال سی دی کاراکتری است.

پروژه آردوینو: دماسنج مستقل با TMP36 و LCD کاراکتری I2C

نتیجه دماسنج مستقل TMP36

موارد موجود در فایل : سورس کامل

5 (2 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

برای ارسال تصاویر از انجمن سایت استفاده کنید.

سوالات فنی را در انجمن سایت مطرح کنید تا در مسابقه شرکت کنید. ورود به انجمن

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *