آموزش راه اندازی سنسور دما LM35 با آردوینو

آموزش راه اندازی سنسور دما LM35 با آردوینو

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

سنسور دما LM35

LM35 یک سنسور دمای ولتاژ پایین ساخته شده توسط Texas Instruments است که می­تواند دما را بر حسب درجه سانتی­گراد اندازه‌گیری کند. خروجی این تراشه، سیگنال ولتاژی است که به طور خطی با دما (برحسب درجه سانتی­گراد) تغییر می­کند، بنابراین استفاده از آن با آردوینو بسیار آسان است.

شکل ظاهری یک سنسور دما LM35

سنسور دمای LM35 نسبتاً دقیق است، هرگز فرسوده نمی‌شود، در شرایط محیطی مختلف کار می­کند و برای اندازه­‌گیری دما به قطعات خارجی نیاز ندارد. علاوه براین، سنسور LM35 نیازی به کالیبراسیون ندارد و معمولاً با دقت 0.5± درجه سانتی‌گراد در دمای اتاق و 1± درجه سانتی‌گراد در محدوده دمایی 55- تا 155+ درجه سانتی‌گراد، دما را اندازه می­گیرد.

ولتاژ تغذیه این سنسور 4 تا 30 ولت و جریان مصرفی آن هنگام تبدیل دما کمتر از 60 میکروآمپر است. همچنین خود گرمایی بسیار پایینی دارد (کمتر از 0.08 درجه سانتی گراد در هوای ساکن).

مشخصات کامل

ولتاژ تغذیه 4 الی 30 ولت
جریان‌ مصرفی 60 میکروآمپر
محدوده دمای کاری 55- الی 155+ درجه سانتی گراد
دقت ±0.5 درجه سانتی گراد
ضریب مقیاس خروجی 10 میلی‌ولت بر درجه سانتی‌گراد
خروجی در دمای 25 درجه سانتی‌گراد 250 میلی‌ولت

برای کسب اطلاعات بیشتر در مورد سنسور LM35 به دیتاشیت آن مراجعه کنید.

تنها عیب سنسور LM35 این است که برای اندازه‌­گیری دمای منفی به یک ولتاژ بایاس منفی نیاز دارد. بنابراین اگر قصد اندازه‌­گیری دمای منفی را دارید، پیشنهاد می­شود از سنسور دمای TMP36 استفاده کنید. TMP36 توسط دستگاه‌­های آنالوگ نسبتاً دقیق است (40- تا 125درجه سانتی­گراد) و این مزیت را دارد که دماهای منفی را بدون نیاز به ولتاژ بایاس منفی اندازه­‌گیری کند.

یک جایگزین بهتر برای LM35 استفاده از سنسورهای دما دیجیتال مانند DS18B20 است که پکیج مشابهی دارند. سنسورهای دما دیجیتال نسبت به نویز مقاومت بیشتری دارند و زمانی که سنسور در فاصله‌­ی دور یا در یک محیط پر سر و صدا قرار می­گیرد، مفید خواهند بود.

اساس عملکرد سنسور LM35

برای راه اندازی سنسور دما LM35 با آردوینو UNO R3 یا هر مدل دیگری از آردوینو، ابتدا باید عملکرد این سنسور را بررسی کنیم. LM35 از تکنیک حالت جامد برای اندازه­‌گیری دما استفاده می­کند. براساس این واقعیت که افت ولتاژ بین بیس و امیتر (ولتاژ مستقیم – Vbe) ترانزیستور متصل‌­شده به دیود، با ریت مشخصی با افزایش دما کاهش می­یابد. با تقویت دقیق این تغییر ولتاژ، به راحتی می­توان یک سیگنال آنالوگ تولید کرد که به طور مستقیم با دما متناسب است.

نمودار رابطه بین جریان کلکتور برحسب میلی آمپر و دمای اندازه گیری شده برحسب میلی ولت بر درجه سانتی گراد

رابطه­‌ی خطی بین ولتاژ مستقیم و دما دلیل استفاده از ترانزیستورهای متصل‌­شده به دیود به عنوان دستگاه‌­های اندازه­گیری دما است. اساساً این روشِ اندازه­‌گیری دما است، اگرچه در طول سال­‌ها پیشرفت‌­هایی در این تکنیک حاصل شده­‌است.
خبر خوب این است که تمام این محاسبات پیچیده درون LM35 انجام می­شود و خروجی این سنسور ولتاژی است که به طور خطی با دما تغییر می­کند.

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

راه اندازی سنسور دما LM35 با آردوینو آسان است. تنها کافی است پایه سمت چپ سنسور را به تغذیه (4 تا 30 ولت) و پایه سمت راست را به زمین (با فرض اینکه سمت صاف سنسور رو به شما باشد) متصل کنید. سپس پین میانی دارای یک ولتاژ آنالوگ خواهد بود که با دما برحسب درجه سانتی­گراد متناسب است. این را می­توان به راحتی در نمودار مشخصه‌­ی ولتاژ خروجی نسبت به دما مشاهده کرد. توجه داشته باشید که ولتاژ خروجی آنالوگ مستقل از تغذیه است.

نمودار مشخصه‌­ی ولتاژ خروجی نسبت به دما سنسور دما LM35

برای تبدیل ولتاژ به دما از فرمول زیر استفاده می­شود:

دما (برحسب درجه سانتی گراد) = ولتاژ خروجی * 100

به عنوان مثال، اگر ولتاژ خروجی 0.5 ولت باشد، به این معناست که دما 0.5 * 100 = 50 درجه سانتی­گراد است.

تست سنسور LM35

تست سنسور LM35 هم بسیار آسان است، پایه سمت چپ را به تغذیه 4 تا 30 ولت (چهار باتری AA بسیار مناسب است) و پایه سمت راست را به زمین (با فرض اینکه سمت صاف سنسور رو به شما باشد) وصل کنید. اکنون مولتی‌متر خود را در مد ولتاژ DC قرار دهید و پایه میانی را به زمین متصل کنید. در دمای اتاق (25 درجه سانتی­گراد)، ولتاژ باید حدود 0.25 ولت باشد.

اگر محفظه پلاستیکی سنسور را به آرامی فشار دهید، شاهد افزایش دما خواهید بود.

افزایش دمای اندازه گیری شده توسط سنسور دما LM35 از طریق لمس کردن آن

یا اگر یک تکه یخ را به سنسور نزدیک کنید (یخ را در یک کیسه پلاستیکی قرار دهید تا سنسور با آب تماس پیدا نکند)، کاهش دما را مشاهده خواهیدکرد.

کاهش دمای اندازه گیری شده توسط سنسور دما LM35 از طریق نزدیک کردن یک تکه یخ به آن

پایه‌­های سنسور LM35

LM35 به سه شکل مختلف عرضه می­شود، اما رایج­ترین نوع آن پکیج سه پایه TO-92 است که دقیقاً شبیه یک ترانزیستور است. بیایید نگاهی به پایه‌های این سنسور بیندازیم.

معرفی پایه‌های سنسور دما LM35

پين VCC پایه‌ی تغذیه سنسور که می‌تواند به 4 تا 30 ولت متصل شود.

پين Vo این پایه یک ولتاژ آنالوگ تولید می‌کند که با دما رابطه‌ی مستقیم دارد و باید به پایه ورودی آنالوگ (ADC) متصل شود.

پين GND پایه زمین است.

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

اتصال LM35 به آردوینو بسیار ساده است. فقط کافی است باید سه پایه را به آن متصل کنید: دو پایه برای تغذیه و یک پایه برای خواندن مقدار سنسور.

این سنسور را می­توان با 5 ولت تغذیه کرد. ولتاژ مثبت به “Vs+” و زمین به “GND” متصل می­شود. پایه میانی “Vout” خروجی سیگنال آنالوگ سنسور است و به پایه ورودی آنالوگ (A0) یک آردوینو متصل می­گردد.

در شکل زیر نحوه­‌ی اتصالات نشان داده شده­‌است:

نحوه متصل کردن سنسور دما LM35 به آردوینو

برای اندازه‌گیری دمای هوا، سنسور را در هوای آزاد قرار دهید یا آن را به جسمی که می‌خواهید دمای آن را اندازه‌گیری کنید، مانند هیت سینک متصل کنید.

خواندن داده‌های دمای آنالوگ

همانطورکه در شکل بالا مشاهده می­کنید، خروجی LM35 به یکی از ورودی‌های آنالوگ آردوینو متصل می­شود. مقدار این ورودی آنالوگ با تابع ()analogRead قابل­ خواندن است.

با این حال، تابع ()analogRead ولتاژ خروجی سنسور را بر نمی­گرداند. بلکه ولتاژ ورودی در بازه­ی ولتاژ 0 تا ولتاژ مرجع ADC (از لحاظ فنی ولتاژ کاری 5 یا 3.3 ولت است مگر اینکه آن را تغییر دهید) را به مقادیر صحیح 10 بیتی از 0 تا 1023 نگاشت می­کند. برای تبدیل مجدد این مقدار به ولتاژ ، از فرمول زیر استفاده می­شود:

ولتاژ خروجی = (5/1024) * (مقدار خوانده شده از ADC)

این فرمول عدد 0تا 1023 از ADC را به 0تا 5 ولت تبدیل می­کند.

سپس برای تبدیل ولت به دما از فرمول زیر استفاده می­شود:

دما (برحسب درجه سانتی­گراد) = ولتاژ خروجی * 100

کد آردوینو – دماسنج ساده

برنامه زیر روشی سریع برای خواندن دمای اندازه‌­گیری شده توسط سنسور LM35 را نشان می‌دهد و می‌تواند به عنوان برنامه‌­ی پایه برای اکثر آزمایش‌ها و پروژه‌های عملی مورد استفاده قرارگیرد. این برنامه به سادگی با استفاده از پورت آنالوگ A0 مقادیر از LM35 خوانده­ و دمای فعلی (بر حسب درجه سانتی­گراد و درجه فارنهایت) بر روی مانیتور سریال چاپ می­شود. برنامه را برروی آردوینو خود آپلود کنید.

// Define the analog pin, the LM35's Vout pin is connected to
#define sensorPin A0

void setup() {
  // Begin serial communication at 9600 baud rate
  Serial.begin(9600);
}

void loop() {
  // Get the voltage reading from the LM35
  int reading = analogRead(sensorPin);

  // Convert that reading into voltage
  float voltage = reading * (5.0 / 1024.0);

  // Convert the voltage into the temperature in Celsius
  float temperatureC = voltage * 100;

  // Print the temperature in Celsius
  Serial.print("Temperature: ");
  Serial.print(temperatureC);
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.print("C  |  ");
  
  // Print the temperature in Fahrenheit
  float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
  Serial.print(temperatureF);
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.println("F");

  delay(1000); // wait a second between readings
}

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

مشاهده کردن خروجی کدهای آردوینو در مانیتور سریال

توضیحات کد راه اندازی سنسور LM35 با آردوینو:

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

#define sensorPin A0

در تابع setup ، اتصال سریال با کامپیوتر را مقداردهی می­کنیم.

void setup() {
  Serial.begin(9600);
}

در تابع loop، ابتدا سیگنال آنالوگ را با استفاده از تابع ()analogRead از سنسور LM35 می­خوانیم.

int reading = analogRead(sensorPin);

سپس، از فرمول­‌هایی که ذکر شد برای تبدیل مقدار آنالوگ خوانده­‌شده به ولتاژ و سپس به دما استفاده خواهیم کرد.

float voltage = reading * (5.0 / 1024.0);

float temperatureC = voltage * 100;

سپس نتایج بر روی مانیتور سریال چاپ می­شود.

Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.print("\xC2\xB0"); // shows degree symbol
Serial.print("C  |  ");

مقدار دمایی که به‌­دست می­‌آید بر حسب درجه سانتی­گراد است. با استفاده از فرمول ساده­ی زیر به فارنهایت (°F) تبدیل و بر روی مانیتور سریال چاپ می­شود.

دما برحسب درجه فارنهایت = دما برحسب درجه سلسیوس * 9/5 + 32

float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF);
Serial.print("\xC2\xB0"); // shows degree symbol
Serial.println("F");

پروژه آردوینو – یک دماسنج مستقل با LM35 و LCD

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

در این مثال، ما LCD را به همراه LM35 به آردوینو متصل می­کنیم.

 همانطور که در شکل زیر مشاهده می­کنید، اتصال LCD بسیار آسان است. اگر با LCD آشنایی ندارید، میتوانید مقاله آموزش راه اندازی LCD كاراكتری 2×16 با آردوینو را مطالعه کنید.

نحوه­ی اتصال LCD و سنسور به آردوینو در شکل زیر نشان داده شده­‌است.

چگونگی اتصال LCD سنسور دما LM35 با آردوینو

برنامه زیر مقادیر دما را روی LCD چاپ می­کند. این کد مشابه مثال قبلی است، با این تفاوت که مقادیر روی LCD چاپ می­شوند.

// Include the LiquidCrystal_I2C library
#include <LiquidCrystal_I2C.h>

// Create a new instance of the LiquidCrystal_I2C class
LiquidCrystal_I2C lcd(0x3F, 16, 2);

// Define a custom degree character
byte Degree[] = {
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};

// Define the analog pin, the LM35's Vout pin is connected to
#define sensorPin A0

void setup() {
  // Start the LCD and turn on the backlight
  lcd.init();
  lcd.backlight();

  // Create a custom character
  lcd.createChar(0, Degree);
}

void loop() {
  // Get the voltage reading from the LM35
  int reading = analogRead(sensorPin);

  // Convert that reading into voltage
  // Replace 5.0 with 3.3, if you are using a 3.3V Arduino
  float voltage = reading * (5.0 / 1024.0);

  // Convert the voltage into the temperature in Celsius
  float temperatureC = voltage * 100;

  // Print the temperature on the LCD;
  lcd.setCursor(0, 0);
  lcd.print("Temperature:");
  lcd.setCursor(0, 1);
  lcd.print(temperatureC, 1);
  lcd.write(0); // print the custom degree character
  lcd.print("C ");
  
  // Print the temperature in Fahrenheit
  float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
  lcd.print(temperatureF, 1);
  lcd.write(0); // print the custom degree character
  lcd.print("F ");

  delay(1000); // wait a second between readings
}

سپس خروجی زیر را روی LCD خواهید دید:

نمایش نهایی دما روی LCD

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

مقالات مشابه

۲ دیدگاه. Leave new

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

    پاسخ
    • سلام و درود به شما،
      خواهش می‌کنم، خوشحالیم که مفید بوده،
      این کد، مختص محیط آردوینو نوشته شده و فقط کافیه شما اون رو کپی پیست کنی.

      پاسخ

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

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

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

پر بازدید ترین مقالات