آردوینو, پروژه آردوینو

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

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

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

فهرست مطالب

لوازم مورد نیاز برای پروژه راه اندازی سنسور دما LM35 با آردوینو و نمایش داده روی LCD

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

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

سنسور دما LM35
سنسور دما LM35

از جمله مزایای سنسور دمای LM35 دقت بالا، ضد آسیب‌دیدگی، قابل استفاده بودن در شرایط دمایی مختلف و عدم نیاز به قطعات الکترونیکی اضافه می‌باشند. به علاوه، برای بهره‌مندی از این سنسور لازم نیست آن را کالیبره کنید زیرا دقت 0.5 درجه سانتی‌گرادی و خطای تقریباً 1 درجه سانتی‌گرادی دارد و می‌تواند در بازه دمایی منفی 55 تا مثبت 155 درجه سانتی‌گراد فعالیت نماید.

انرژی این سنسور را می‌توان با منبع تغذیه 4 تا 30 ولت تأمین کرد و با توجه به اینکه تنها 60 میکروآمپر جریان مصرف می‌کند، گرمای زیادی ایجاد نخواهد کرد.

مشخصات فنی سنسور دمای LM35

ولتاژ تغذیه

4 تا 30 ولت

جریان کاری

60 میکروآمپر

بازه دمای کاری

منفی 55 تا مثبت 155 درجه سانتی‌گراد

دقت

0.5 درجه سانتی‌گراد

تنها نقطه ضعف LM35 آن است که برای اندازه‌گیری دمای منفی، می‌بایست ولتاژ یکطرفه منفی وارد کرد بنابراین اگر می‌خواهید با این سنسور دماهای زیر 0 درجه سانتی‌گراد را اندازه بگیرید، شاید بهتر باشد سراغ سنسور دمای TMP36 بروید.

TMP36 یک قطعه آنالوگ است که می‌تواند در بازه دمایی منفی 40 تا مثبت 125 درجه سانتی‌گراد فعالیت کند و مزیت آن هم قابلیت اندازه‌گیری دماهای منفی بدون نیاز به ولتاژ یکطرفه می‌باشد. یک آلترناتیو دیگر برای LM35، سنسور دمای دیجیتال DS18B20 است که پکیج یکسانی دارد.

به طور کلی، سنسورهای اندازه‌گیری دما در برابر نویز مقاومت زیادی دارند و به همین خاطر وقتی در فضاهای نویزدار و شلوغ قرار می‌گیرند، همچنان عملکرد باثبات خود را ادامه می‌دهند.

اصول کاری سنسور دما LM35

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

رابطه میان ولتاژ فوروارد و دما
رابطه میان ولتاژ فوروارد و دما

این ارتباط خطی میان ولتاژ فوروارد و دما، دلیل استفاده از ترانزیستورهای دارای دیود به عنوان وسایل سنجش دما می‌باشد. در واقع اندازه‌گیری دما با همین روش انجام می‌شود هرچند در سالیان اخیر این شیوه با پیشرفت‌هایی همراه بوده است.

البته خبر خوب این است که تمامی محاسبات پیچیده، درون خودِ LM35 انجام می‌شوند و سنسور تنها ولتاژ خروجی را نشان می‌دهد که به صورت خطی با دما ارتباط دارد.

چگونگی اندازه‌گیری دما با LM35

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

رابطه منحنی خروجی سنسور دمای LM35
رابطه منحنی خروجی سنسور دمای LM35

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

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

برای مثال، اگر ولتاژ خروجی 0.5 ولت است، دما می‌شود: 0.5 × 100 = 50 درجه سانتی‌گراد.

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

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

در ادامه قسمت پلاستیکی سنسور را کمی فشار دهید تا دما افزایش یابد.

تست سنسور دمای LM35 با دست
تست سنسور دمای LM35 با دست

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

تست سنسور دمای LM35 با یخ
تست سنسور دمای LM35 با یخ

آشنایی با پین‌های LM35 پیش از شروع پروژه راه اندازی سنسور دما LM35 با آردوینو

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

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

پین‌های این سنسور عبارتند از:

  • +Vs: پین مخصوص ولتاژ 4 تا 30 ولت
  • Vout: پین مخصوص ارائه ولتاژ سیگنال آنالوگ که با دما ارتباط مستقیمی داشته و باید به ورودی آنالوگ وصل شود.
  • GND: اتصال به زمین

سیم‌کشی مدار پروژه راه اندازی سنسور دما LM35 با آردوینو

وصل کردن سنسور دمای LM35 کار به شدت ساده‌ای است زیرا فقط باید سه پین را وصل کنید؛ دو پین برای قدرت و یک پین برای دریافت داده‌ها.

می‌توان تا 5 ولت انرژی را به این سنسور وارد کرد. شما می‌توانید ولتاژ مثبت را به +Vs و اتصال به زمین را به GND بزنید. پین میانی Vout است که برای دریافت سیگنال‌های خروجی آنالوگ به دست آمده از سنسور به کار می‌رود و به پین ورودی آنالوگ A0 آردوینو وصل می‌شود.

در ادامه تصویری از مدار پروژه راه اندازی سنسور دما LM35 با آردوینو را می‌بینید.

سیم‌کشی مدار پروژه راه اندازی سنسور دما LM35 با آردوینو

برای اندازه‌گیری فشار هوا، سنسور را در هوای آزاد بگذارید و یا آن را به وسیله‌ای که می‌خواهید دمای آن را اندازه بگیرید، وصل کنید.

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

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

با این حال، تابع analogRead() ولتاژ خروجی سنسور را نمایش نمی‌دهد بلکه ولتاژ ورودی میان 0 و ولتاژ DC آنالوگ مرجع را نشان خواهد داد که بین 0 تا 1023 ولت به صورت عددی صحیح می‌باشد.

نکته: این ولتاژ معمولاً 5 یا 3.3 ولت است مگر اینکه خودتان آن را تغییر دهید.

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

ولتاژ خروجی = (ولتاژ DC آنالوگ) × (1024÷5)

این فرمول، اعداد ما بین 0 تا 1023 به دست آمده از ولتاژ DC آنالوگ را به بین 0 تا 5 ولت تبدیل می‌کند. در ادامه برای تبدیل ولتاژ به دما، از فرمول زیر بهره بگیرید:

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

کدنویسی پروژه راه اندازی سنسور دما LM35 با آردوینو

کدهایی که در ادامه آمده‌اند، امکان خواندن سریع داده‌های دمایی را فراهم می‌آورند و می‌توانند پایه و اساس بسیاری از پروژه‌های مشابه باشند. این چند خط کد صرفاً داده‌های کسب شده از 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 در آردوینو
خروجی سنسور دمای LM35 در آردوینو

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

کدهای ارائه شده با مشخص کردن اینکه کدام پین آردوینو به پین Vout متصل گردیده، شروع شده‌اند.

				
					#define sensorPin A0
				
			

در بخش Setup، ارتباط سریال با رایانه را آغاز می‌کنیم.

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

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

				
					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  |  ");
				
			

اطلاعات دمایی کسب شده بر واحد درجه سانتی‌گراد (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"); // shows degree symbol
Serial.println("F");
				
			

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

برخی اوقات این ایده به ذهن‌تان می‌رسد که اطلاعات دمایی را در لحظه ببینید و در صورت فراتر رفتن داده‌ها از مقدار قابل اندازه‌گیری، پیام هشداری دریافت کنید. در این شرایط به جای سریال مانیتور، به یک نمایشگر 2 × 16 از نوع LCD نیاز خواهید داشت.

در این مثال، یک I2C LCD را به خروجی آنالوگ آردوینو وصل می‌کنیم.

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

مدار سنسور دما LM35 با آردوینو و نمایشگر 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
}
				
			

با وارد کردن کدهای بالا، باید خروجی را مانند تصویر زیر ببینید تا پروژه راه اندازی سنسور دما LM35 با آردوینو و نمایشگر LCD با موفقیت به پایان رسیده باشد.

خروجی سنسور دمای LM35 در نمایشگر LCD
خروجی سنسور دمای LM35 در نمایشگر LCD

2 دیدگاه در “راه اندازی سنسور دما LM35 با آردوینو و نمایش داده‌های آن روی LCD

  1. سعيد گفت:

    با سلام
    ایا این امکان وجود داره که ۲ یا ۳ یا تعداو بیشتری سنسور را جهت اندازه گیری دماهای مختلف به آردینو وصل کرد و در lcd نمایش داد؟
    متشکرم

    1. فروشگاه بهنام رباتیک گفت:

      سلام خدمت شما
      بله امکانش هست فقط باید به به هر پایه آردوینو یک سنسور وصل کرد
      با تشکر از همراهی شما

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

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