راه اندازی سنسور دما lm35 توسط Zcross
در این پروژه آموزشی قصد داریم با نحوه راه اندازی سنسور دما lm35 توسط Zcross آشنا بشیم. سنسور دمای lm35 دارای خروجی آنالوگ و خطی می باشد که با افزایش دمای محیط ، ولتاژ خروجی نیز به صورت خطی افزایش می یابد. پس طبیعتا چون با سیگنال آنالوگ سر و کار داریم ، نیاز به استفاده از واحد ADC ( مبدل آنالوگ به دیجیتال ) سمت پردازنده می باشد. اگر با ADC آشنایی ندارید ، راه اندازی واحد ADC توسط EasyMCU را از دست ندهید.
سنسور دمای lm35
مطابق تصویر فوق شماره گذاری و ترتیب پایه ها مشخص است. رنج ولتاژ تغذیه lm35 بین 4 تا 20 ولت می باشد.
توجه : در راه اندازی سنسور دما lm35 توسط Zcross از پایه Vu برد zcross جهت تغذیه ی lm35 استفاده می کنیم که دارای سطح ولتاژ 5v می باشد.
نحوه سیم بندی
کتابخانه lm35
کتابخانه ی مذکور را در صفحه ی Github و از طریق لینک ذیل می توانید دانلود کنید.
پس از دانلود کتابخانه، محتوای آن که شامل 2 فایل با پسوند (h.* و cpp.*) می باشد را به پوشه module_libraries انتقال دهید. یک بار نرم افزار EasyMCU را ببندید و مجدد اجرا کنید.
اگر برای ایجاد اولیه پروژه مشکل دارید قسمت شروع کار با Easy MCU را ببینید.
در مراحل ایجاد پروژه از تب libraries کتابخانه ی lm35 را به پروژه اضافه کنید.
متودها
سازنده
در ابتدا نیاز است یک شیء از کلاس lm35 تعریف شود و پایه (کانال) ADC استفاده شده از Zcross در ارتباط با کیپد مشخص شود.
1 2 3 |
LM35 lm35(P5); یا LM35 lm35(CH6); |
خواندن مقدار دما
جهت خواندن دما با واحد سلسیوس و یا فارنهایت به ترتیب از ورودی های CELCIUS و یا FAHRENHEIGHT به عنوان ورودی در متود زیر استفاده می شود.
1 2 3 |
lm35.temp(CELCIUS); یا lm35.temp(FAHRENHEIGHT); |
لطفا هرگونه سوال و … راجع به این مطلب را در انجمن ایزی.ام.سی.یو مطرح نمایید.
نمونه کد
در مثال ذیل، پایه ی خروجی lm35 به P5 بورد zcross متصل شده که کانال 6 (CH6) واحد ADC هست. مقدار دما رو به صورت سلسیوس می خواند و در محیط ترمینال چاپ می کند، دقت کنید که در این مثال از واحد USB CDC استفاده شده و باید توسط نرم افزار EasyMCU فعال شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include "headers.h" int main() { LM35 lm35(P5); while(true) {/* Loop forever */ cdc.print("Temprature is: "); cdc.println(lm35.temp(CELCIUS)); delay.ms(500); } /* while */ } /* main */ |