آموزش راه اندازی سنسور LM35 در سایت سرزمین الکترونیک شامل فیلم آموزشی نمونه برنامه و توضیحات قدم به قدم تا راه اندازی آن میباشد. آموزش راه اندازی سنسور LM35 با شناخت کافی از این سنسور و اطلاع از پایههای آن آغاز میشود. پس از اطلاع از نحوهی کار آن برنامه لازم جهت راه اندازی روی برد آردوینو در اختیار شما قرار میگیرد.
سنسور LM35 چیست؟
سنسور LM35 یک حسگر دمایی است که تغییرات دمایی اطراف مارا به صورت پالس الکتریکی نشان میدهد. با اندکی تغییرات در این پالس دریافتی میتوانیم اطلاعات لازم را دریافت نماییم.
این سنسور جزء ارزان ترین سنسورهای در بازار الکترونیک برای مانیتورینگ دما به حساب میآیند. همچنین راه اندازی این سنسور نیز کار سادهای است. پس از اتصال این سنسور به برد بورد و آردوینو و آپلود چند خط کد به راحتی دما را در پرت سریال یا LCD مشاهده خواهید نمود.
LM35 سنسوری با میزان مصرف الکتریکی پایین است که دما را به صورت سانتی گراد از طریق تغییرات پیوسته الکتریکی نمایش میدهد. این سنسور محصول ساخته شده توسط شرکت تگزاس آمریکاست که تحت لیسانس در بسیاری از کارخانه جات دنیا تولید میشود.
با توجه به قیمت پایین این سنسور باید در نظر داشت که شرایط کاری خاصی ندارد و در محدودهی کاری که برای آن معرفی شده به راحتی کار میکند. کالیبره کردن خاصی را لازم ندارد و سایر شرایط محیطی روی آن تاثیر کمی دارند. میزان خطای این سنسور ±0.5°C درجه سانتی گراد است. دمای کاری این سنسور برای نمایش و محاسبه از −55°C الی +155°C میباشد. ولتاژ کاری این سنسور بین 4 الی 30 ولت DC و آمپر مصرفی آن برابر 60µA میباشد. با توجه به گستره کاری این سنسور با ولتاژ بالا گرمای تولید شده توسط این سنسور هنگام کار کمتر از 0.08°C میباشد.
- ولتاژ کاری : 4 الی 30 ولت دیسی DC
- جریان کاری : 60µA
- رنج کاری دما : −55°C الی +155°C
- دقت اندازه گیری : ±0.5°C
- مقیاس خروجی سنسور : 10mV/°C
برای اطلاعات بیشتر در رابطه با نحهی کار این سنسور به دیتاشیت این سنسور که در پایین این آموزش قرار داده شده است مراجعه نمایید.
روش کار سنسور LM35
این سنسور از نیمه هادیهای جامد تشکیل شده است. شامل قطعاتی همچون دیود و ترانزیستور میباشد. روش کار سنسور LM35 با این صورت است که افت ولتاژ بین پایه و امیتر (ولتاژ جلو – V be ) ترانزیستور متصل به دیود با افزایش دما با سرعت مشخصی کاهش می یابد. با تقویت دقیق این ولتاژ میتوان سیگنال آنالوگ قابل پردازشی را به دست آورد.
جدول بالا رابطه خطی بین ولتاژ و دما را در اتصال ترانزیستور و دیود نشان میدهد. شیوهی محسابه دما توسط سنسور LM35 به شیوهی شرح داده شده در بالا میباشد. هرچند در طول سالین گذشتهروشهایی بهتر و قابل اعتماد دیگری نیز معرفی و استفاده شدهاند.
بهترین قسمت مطالبی که در بالا شرح داده شد این است که همهی این محاسبات و تغییرات در داخل سنسور LM35 صورت میگیرد. کاربری که از این سنسور استفاده مینماید تنها کاری که لازم است انجام دهد تحلیل سیگنال آنالوگ از این سنسور میباشد.
راه اندازی سنسور LM35
برای راه اندازی سنسور LM35 ابتدا باید با پایههای خروجی این سنسور آشنا شویم . سنسور را رو به روی خود بگیرید . مطابق تصویر بالا باید بتوانید نوشتههای روی سنسور را بخوانید. پایههای این سنسور از چپ به راست به شرح زیر میباشد.
- +Vs پایه شماره یک از چپ تغذیه سنسور با ورودی بین 4 الی 30 ولت DC
- Vout پایه وسط خروجی اطلاعات است که به میکروکنترلر یا برد آردوینو متصل میگردد.
- GND پایه سوم منفی یا زمین یا GND است
نمودار تغییرات ولتاژ براساس دما در زیر را بررسی نمایید. میبینید که رابطهای خطی میان تغییرات ولتاژ و دما وجود دارد.
در قسمتهای قبل به این نکته اشاره شده که به ازای هر یک درجه سانتی گراد که افزایش پیدا میکند 10 میلی ولت به سیگنال خروجی اضافه میشود. تبدیل ولتاژ خروجی به دما طبق این فرمول کار سادهای است. با استفاده از یک ولت متر دیجیتال ولتاژ پایهی وسط را اندازه بگیرید.
Temperature (°C) = V out * 100
طبق فرمول بالا اگر ولتاژ خروجی از پایه وسط این سنسور برابر 0.5 ولت باشد با قرار دادن این نیم ولت در معادله عدد 50 را به دست خواهیم آورد که برابر 50 درجه سانتی گراد خواهد بود.
راه اندازی سنسور LM35 با آردوینو
سنسور را طبق شماتیک ارائه شده زیر سرهم بندی نمایید. مطابق توضیحات ارائه شده بالا سنسور را مقابل خود قرار دهید به گونهای که نوشتههای آن روبه روی شما قرار گیرند. از سمت چپ اولین پایه را به ولتاژ 5 ولت روی برد آردوینو متصل نمایید. پایه وسط را که وظیفه انتقال سیگنال آنالوگ را دارد به پایه ( A0 ) A صفر آردوینو وصکنید. پایه آخر را نیز به منفی یا GND برد آروینو متصل نمایید.
همانطور که در تصویر بالا مشاهده میکنید. پایه وسط سنسور LM35 به پایه A0 که بخش آنلوگ آردوینو بوده متصل است. طبق فرمولی که در بالا به آن اشاره شده است ولتاژ ورودی در 100 ضرب گردد دمای محیط به دست خواهد آمد. مشکلی که در این قسمت وجود دارد این است که قسمت ADC آردوینو ولتاژ دریافتی را بین 0 الی 1023 مپ خواهد کرد. برای دریافت ولتاژ ورودی باید از فرمول زیر در برنامه خود استفاده نماییم.
V out = (reading from ADC) * (5 / 1024)
با این فرمول ولتاژ ورودی که در پورت A0 دریافت میشود از حالت 0 الی 1023 به ولتاژ اصلی خود باز میگردد. سپس عدد به دست آمده را در فرمول
Temperature (°C) = V out * 100
جایگذاری میکنیم و دما بر اساس درجه سانتی گراد به دست خواهد آمد.
کدهای زیر را در برد آردوینو خود آپلود نمایید و پورت سریال برنامه آردوینو را باز کنید.
برنامه راه اندازی سنسور 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 | ");
delay(1000); // wait a second between readings
}
برای دریافت دما در قالب درجه فارنهایت کد زیر را استفاده نمایید.
برنامه راه اندازی سنسور 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
}