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

سنسور دمای LM35 جزء سنسورهای دقیق دما (توی بازار جنس اصل پیدا کنید) با خروجی آنالوگ متناسب به صورت خطی با دمای محیط برحسب درجه سانتی گراد است.در این مثال آموزشی راه اندازی سنسور دما LM35 با آردوینو را یاد میگیریم.

یکی از مزیت های LM35 این است که اندازه گیری دما برحسب درجه سانتی گراد است در حالی که بسیاری از سنسورها برحسب کلوین هستند و برای تبدیل آن به درجه سانتی گراد باید یک عدد بزرگی را از مقدار قرائت شده کم کنیم. این سنسور نیازی به کالیبراسیون اضافی ندارد و به صورت پیشفرض دارای دقتی برابر °C¼± در دمای اتاق  و °C¾± در دمای 55−  تا 150 درجه‌سانتی‌گراد می باشد.

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

  • به صورت پیشفرض بر حسب درجه سانتی گراد کالیبره شده است
  • خروجی خطی متناسب با ده میلی ولت بر درجه سانتی گراد mV/°C
  • دارای دقت 5°C در دمای 25 درجه سانتی گراد (بصورت گارانتی شده)
  • محدوده اندازه گیری دمای 55−  تا 150 (درجه‌سانتی‌گراد)
  • مناسب برای کاربردهای از راه دور

قطعات مورد نیاز :

  • 1 عدد برد برد
  • 1 عدد برد آردوینو Uno R3
  • 1 عدد سنسور LM35

مراحل :

مطابق شکل زیر قطعات مدار را به یکدیگر متصل نمایید.

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

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

نرم افزار آردوینو را باز کرده و با کلیک بر روی گزینه New یک برنامه جدید باز نمایید.

مطلب پیشنهادی:  راه اندازی I2C در آردوینو

کد آردوینو :

float temp;
int tempPin = 1;

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

void loop() {
 temp = analogRead(tempPin);
 // read analog volt from sensor and save to variable temp
 temp = temp * 0.48828125;
 // convert the analog volt to its temperature equivalent
 Serial.print("TEMPERATURE = ");
 Serial.print(temp); // display temperature value
 Serial.print("*C");
 Serial.println();
 delay(1000); // update sensor reading each one second
}

نکات برنامه  :

سنسور LM35 دارای سه پایه Vs ، Vout و GND می باشد و مطابق شکل زیر متصل می شوند :

  • پایه +Vs به تغذیه +5V متصل می شود.
  • پایه Vout به پایه آنالوگ A1 متصل می شود.البته میتوانید به پایه های دیگر مبدل آنالوگ به دیجیتال هم وصل کنید و داخل برنامه شماره پایه را عوض کنید.
  • پایه GND به پایه زمین برد متصل می شود.

مبدل ADC برد ولتاژ آنالوگ خروجی سنسور را مطابق فرمول زیر به یک عدد باینری تبدیل می کند :

Value = sample * 1024 / reference voltage (+5v)

مقدار = مقدار نمونه * 1024 / ولتاژ مرجع (+5V)

در نتیجه طبق این رابطه برای ولتاژ مرجع +5V مقدار خروجی دیجیتال برابر با ولتاژ ورودی ضرب در عدد 205 خواهد بود.

نتایج :

با اپلود برنامه LM35 با آردوینو روی برد مقدار دمای اندازه گیری شده در خروجی سریال و بر روی مانیتور نمایش داده می شود و هر 1 ثانیه به روز می شود.

مطلب پیشنهادی:  کنترل موتور DC با آردینو

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

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

11 دیدگاه

  1. یا سلام میشه بپرسم این رابطه بالا چطور بدست اومده؟

    مظورم اینه:

    Value = sample * 1024 / reference voltage (+5v)

    • میلاد جهاندیده

      سلام، این فرمول در اکثر ADC های میکروکنترلرها هستش و برای اطلاعات بیشتر به دیتاشیت میکروکنترلرهای AVR یا یک کتابی که ساختار ADC را توضیح میده مراجعه کنید. در اینجا ولتاژ مرجع 5 ولت هستش و تعداد بیت نمونه برداری 10 بیت و برای همین از اعداد 5 ولت و 1024 استفاده شده در فرمول. مثلا به جای sample اگر 5 بذارید ( ولت ورودی بدید به ADC ) در خروجی عدد 1024 را خواهید داشت… ولتاژ رفرنس را میتونید تغییر بدید و به ولتاژ دیگری وصل کنید…مثلا برای دقت های بالا به ولتاژ دقیق پایین تر وصلش میکنن…

    • سلام وقت بخیر سوال داشتم ایا میتونین سنسور lm35 یاim۳۵ رو با یه سیم رابط بلند تر به کیت نمایشگر متصل کرد . مثلا سنسور در یک قسمت نصب بشه ونمایشگر در چند متر دورتر
      ممنونم راهنماییم کنین

      • میلاد جهاندیده

        سلام
        با رعایت اصول افزایش طول سیم و جبران افت ولتاژ میتوانید این کار را بکنید. البته اگر کوتاه باشه مشکلی نیست. سنسورهای ماژول شده ای هم هستن که بهشون سیم یک متری یا نیم متری و با پوشش ضد آب وصل شده…

  2. سلام
    0.48828125 از کجا اومد؟
    5 تقسیم بر 1024 میشه 0.0048828125

  3. سلام مجدد.
    در کاتالوگ lm35 قید شده که این مدل مدار که شما بستید فقط بازه 2-150 درجه سانتی گراد رو اندازه گیری میکنه.
    برای اندازه گیری در بازه منفی دو مدار دیگر پیشنهاد داده:
    یکی با ولتاژ منفی و مدار دیگر هم شامل دو عدد دیود و یک مقاومت میشه.
    من مدار که شامل دو دیود و یک مقاومت میشد رو بستم ولی دمایی که مدار شما نشون میده 28 درجه هست و در صورتی که با اون مدار دما رو 124 نشون میده.
    ایا اون فرمول که اون بالا نوشتید باید تغییر پیدا کنه؟

  4. خیلی ممنون بابت این مطلب خوب

  5. سلام ممنون بابت آموزشتون من زیاد از این چیز ها سر در نمی آرم ولی کارکرد و عالی بود اگه من بخوام مثلا یک هشدار دهنده با ال ای دی بسازم که مثلا وقتی دما به 20 رسید ال ای دی روشن بشه باید چه کد هایی رو بزنم

    • میلاد جهاندیده

      سلام، سوال کلی پرسیدین و خط به خط کد نمی‌تونم الان ولی لاجیک یا منطق برنامه را من توضیح می‌دم تو چند خط.

      دما را مثل این پروژه می‌خونید از سنسور. مثلا در این کد مقدار متغیر temp برابر دما هست.

      در مرحله بعد با استفاده از IF شرط میذاریم مثلا

      if temp > 20 then
      LED = TRUE

  6. سلام دوباره منم میخواستم شرط تععین کنم …الان ال ای دی رو متغییر کنم فقط چجوری اینا رو بزنم یعنی پایین کد های خودتون و چجوری پین ال ای دی رو مشخص کنم ………..تشکر دوباره ازتون