در این مطلب از آموزشهای پروژه محور آردوینو قصد اندازهگیری دمای مثبت و منفی توسط سنسور lm35 را داریم.از نقات قوت این پروژه میتوان به اندازهگیری دمای منفی توسط این سنسور اشاره کرد که نمونهی آن در اینترنت به ندرت یافت میشود.با دیجی اسپارک همراه باشید.
ویژگیهای سنسور دما LM35
اندازهگیری دما در رنج ۵۵- تا ۱۵۰+ درجه سانتیگراد با حداکثر خطای ۰٫۵ درجه سانتیگراد
خروجی به صورت خطی ، ۱۰ میلی ولت به ازای تغییر هر درجه سانتیگراد
خروچی دما به صورت درجه سانتیگراد کالیبره شده است
ولتاژ کاری بین ۴ تا ۳۰ ولت
توضیحات سنسور LM35 با آردوینو
ترتین پینن های این سنور همانند شکل زیر میباشد. در دیتاشیت این سنسور دو نمونه مدار ساده از این سنسور قرار گرفته است.
مدار ۱ – Lm35 Arduino
با استفاده از این مدار ساده فقط میتوان دما را در رنج ۲+ تا ۱۵۰+ درجه سانتیگراد اندازهگیری نمود و عملا اندازه گیری دمای منفی توسط این مدار غیرممکن میباشد. در این مدار به ازای هر ۱۰ میلی ولت ، یک درجه سانتی گراد دما تغییر میکند.
مدار ۲ – Lm35 Arduino
توسط این مداز میتوان در بازه کامل سنسور lm 35 یعنی ۵۰- تا ۱۵۰+درجع سانتیگراد دما را اندازهگیری نمود.
مقدار مقاومت R1 در این مدار از تقسیم ولتاز تعذیه سنسور بر ۵ میکرو آمپر بدست میآید.توسط این مدار میتوان ولتاژی بین ۵۵۰- میلی ولت و همچنین ۱۵۰۰ میلی ولت بدست آورد.ولی مشکل اینجاست که ADC فقط میتواند مقادیر مثبت را بگیرد ، و عملا اعمال ولتاژهای منفی به پین های ADC (آنالوگ به دیجیتال ) آردوینو غیر ممکن است.برای این منظور از مدار شماره ۳ استفاده میکنیم.
مدار ۳ – Lm35 Arduino
با استفاده از این مدار و انجام عملیات ADC تفاضلی میتوان دما را در رنج ۵۵- تا ۱۵۰+ درجه سانتی گراد محاسبه نمود . روش کار اینگونه است که Vout+ و Vout- را به طور جداگانه به دو پین آنالوگ دیجیتال آردوینو متصل میکینم و مقدار آنالوگ هر کدام را بدست میآوریم.سپس ابن دو مقدار را از هم کم میکنیم.
بعد از محاسبات فوق مقدار differenceValue را توسط فرمول زیر به ولتاژ تبدیل میکنیم.
با توجه به دیتاشیت این سنسور ، به ازای هر ۱۰ میلی ولت ، یک درجه سانتیگراد تغییر دما داریم . بنابراین مقدار diffferenceVlotage را در ۱۰۰ ضرب میکنیم تا دمای اندازهگیری شده بدست آید.
کد سنسور دما LM35DZ با آردوینو
#include <LiquidCrystal.h> LiquidCrystal lcd(6, 7, 8, 9, 10, 11, 12); float adcValue0 , adcValue1, vlotage0 , voltage1 , difference , differenceVoltage , temp; void setup() { lcd.begin(16, 2); Serial.begin(9600); } void loop() { adcValue0 = analogRead(A0); adcValue1 = analogRead(A1); difference = adcValue0 - adcValue1; differenceVoltage = (difference * 5) / 1023; temp = differenceVoltage * 100; lcd.print("Dama : "); lcd.print(temp); lcd.print("C"); delay(500); lcd.clear(); }
شماتیک پروژه LM35DZ Arduino
دانلود کدهای پروژه به همراه فایل شبیه سازی شده در پروتئوس
سخت افزار مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
۳۷ دیدگاه