راه اندازی سنسور LM35 با میکروکنترلر AVR
مقدمه
سنسور LM35 یک مدار مجتمع (IC) است که برای اندازه گیری دما به طور دقیق و خطی استفاده می شود. راه اندازی سنسور LM35 با میکروکنترلر AVR از مزایای زیر برخوردار است:
- خروجی خطی: ولتاژ خروجی سنسور به طور مستقیم با دمای اندازه گیری شده متناسب است، که محاسبات را آسان می کند.
- دامنه وسیع: سنسور LM35 می تواند دما را در محدوده -۵۵ درجه سانتیگراد تا +۱۵۰ درجه سانتیگراد اندازه گیری کند.
- دقت بالا: این سنسور دقت بالایی در حدود ±۰.۴ درجه سانتیگراد دارد.
- مصرف برق کم: سنسور LM35 مصرف برق پایینی دارد که آن را برای کاربردهای حساس به انرژی مناسب می کند.
- سهولت استفاده: سنسور LM35 برای استفاده آسان است و به اجزای اضافی کمی نیاز دارد.
هدف این راهنما ارائه یک راهنمای گام به گام برای راه اندازی سنسور دمای LM35 با میکروکنترلرهای AVR است. این راهنما شامل موارد زیر خواهد بود:
- لیست اجزای سخت افزاری مورد نیاز
- درک نحوه عملکرد سنسور LM35
- نحوه اتصال سنسور به میکروکنترلر AVR
- برنامه نویسی میکروکنترلر برای خواندن داده های دما
- تست دقت سنسور
جهت مشاهده آموزش برنامه نویسی میکروکنترلر AVR به مدرسه آنلاین نیراسیستم مراجعه نمایید.
لیست اجزای لازم برای راه اندازی سنسور LM35 با میکروکنترلر AVR
برای راه اندازی سنسور LM35 با میکروکنترلر AVR به موارد زیر نیاز دارید:
- برد میکروکنترلر AVR: هر برد AVR مانند Arduino Uno یا Arduino Nano مناسب است.
جهت خرید برد آموزشی AVR میتوانید به فروشگاه نیراشاپ مراجعه نمایید.
- سنسور دمای LM35: می توانید سنسور را از فروشگاه های الکترونیکی یا به صورت آنلاین خریداری کنید.
- سیم های جامپر: برای اتصال سنسور به برد میکروکنترلر استفاده می شوند.
- برد بورد (اختیاری): استفاده از برد بورد می تواند اتصال سنسور را آسان تر کند، به خصوص اگر با لحیم کاری آشنایی ندارید.
درک سنسور LM35
سنسور LM35 بر اساس اصل “ترموکوپل” کار می کند. ترموکوپل از دو سیم فلزی مختلف ساخته شده است که به هم متصل شده اند. هنگامی که junction گرم می شود، emf (نیروی محرکه الکتریک) کوچکی بین دو سیم ایجاد می شود. emf به طور مستقیم با دمای junction متناسب است.
سنسور LM35 یک مدار مجتمع است که سیگنال emf ترموکوپل را به یک ولتاژ خروجی خطی تبدیل می کند. ولتاژ خروجی به طور مستقیم با دمای اندازه گیری شده متناسب است. مشخصات این سنسور به شرح زیر است:
- ولتاژ کار: ۴ تا ۳۰ ولت DC
- جریان مصرفی: حدود ۶۰ میکرو آمپر
- محدوده دمای عملیاتی: -۵۵ درجه سانتیگراد تا +۱۵۰ درجه سانتیگراد
- دقت: ±۰.۴ درجه سانتیگراد
- زمان پاسخگویی: ۶۰ ثانیه
اتصال سنسور LM35
مراحل اتصال به شرح زیر میباشد:
- پین VCC سنسور LM35 را به پین ۵ ولت برد میکروکنترلر AVR وصل کنید.
- پین GND سنسور LM35 را به پین GND برد میکروکنترلر AVR وصل کنید.
- پین خروجی سنسور LM35 را به پین آنالوگ A0 برد میکروکنترلر AVR وصل کنید.
در شکل زیر میتوانید شماتیک مدار راهاندازی سنسور LM35 با میکروکنترلر AVR را مشاهده نمایید.
برنامه نویسی میکروکنترلر AVR
مفهوم تبدیل آنالوگ به دیجیتال (ADC)
میکروکنترلرهای AVR دارای یک مبدل آنالوگ به دیجیتال (ADC) داخلی هستند که می تواند سیگنال های آنالوگ مانند ولتاژ را به مقادیر دیجیتال تبدیل کند. این امر به میکروکنترلر اجازه می دهد تا داده های دنیای واقعی را از سنسورها و سایر دستگاه های آنالوگ بخواند.
ADC در میکروکنترلرهای AVR دارای وضوح ۱۰ بیتی است، به این معنی که می تواند ۲^۱۰ = ۱۰۲۴ مقدار دیجیتال مختلف را نشان دهد. هر مقدار دیجیتال به یک ولتاژ آنالوگ خاص در محدوده ولتاژ مرجع ADC نگاشت می شود.
خواندن داده های دما
برای خواندن داده های دما از سنسور LM35، باید مراحل زیر را انجام دهیم:
- setup() را تعریف کنید: این تابع در ابتدای برنامه اجرا می شود. در این تابع، باید پین های آنالوگ را به عنوان ورودی پیکربندی کنیم.
void setup() {
Serial.begin(9600); // سرعت baud را برای ارتباط سریال تنظیم کنید
pinMode(A0, INPUT); // پین A0 را به عنوان ورودی پیکربندی کنید
}
- loop() را تعریف کنید: این تابع به طور مداوم در طول اجرای برنامه اجرا می شود. در این تابع، باید ولتاژ خروجی سنسور LM35 را بخوانیم، آن را به یک مقدار دیجیتال تبدیل کنیم و سپس آن را به عنوان درجه سانتیگراد نمایش دهیم.
void loop() {
int sensorValue = analogRead(A0); // ولتاژ خروجی سنسور را بخوانید
float voltage = sensorValue * (5.0 / 1024.0); // ولتاژ را محاسبه کنید
float temperatureC = voltage / 0.01; // دما را به درجه سانتیگراد تبدیل کنید
Serial.print(“Temperature: “); // دما را به صورت سریال چاپ کنید
Serial.print(temperatureC);
Serial.println(” degrees C”);
delay(1000); // بین هر خواندن ۱ ثانیه تأخیر ایجاد کنید
}
توضیح:
- در تابع setup()، پین A0 به عنوان ورودی پیکربندی شده است.
- در تابع loop()، تابع analogRead() برای خواندن مقدار ولتاژ در پین A0 استفاده می شود.
- سپس مقدار ولتاژ به یک عدد بین ۰ و ۱۰۲۳ تبدیل می شود.
- دمای سانتیگراد با تقسیم ولتاژ بر ۰.۰۱ محاسبه می شود.
- در نهایت، دما به صورت سریال چاپ می شود.برای آشنایی بیشتر با سیستمهای نهفته میتوانید به نیرابلاگ مراجعه نمایید.
امیدوارم این راهنما جامع و مفید باشد!