پروژه راه اندازی سنسور دما LM35 با استفاده از مجموعه آموزشی AVR WIZARD به زبان C
ارسال توسط
30
آذر
فهرست مطالب
راهنمای راهاندازی سنسور دما LM35 با استفاده از مجموعه آموزشی AVR WIZARD به زبان C.
هدف از این آموزش راهاندازی واحد ADC میکروکنترلر AVR به زبان C توسط مجموعه آموزشی AVR WIZARD میباشد. ( شما میتوانید سنسورهای آنالوگ مشابه را به این روش راهاندازی نمایید. )
ولتاژ خروجی سنسور LM35 متناسب با درجه سانتیگراد است. وضوح LM35 10 میلیولت است.بدین معنی که 10 میلیولت نشاندهنده یک درجه سانتیگراد است. بنابراین اگر خروجی LM35 صدمیلیولت شود ، دمای معادل آن در سانتیگراد، 100/10 = 10 درجه سانتیگراد خواهد بود. LM35 می تواند از 50- تا 150 درجه سانتیگراد اندازهگیری کند.
تصویر زیر بلوک عملکردی یک سنسور LM35 معمولی است که میتوانید در برگه اطلاعات آن پیدا کنید:
آنچه این بلوک دیاگرام نمایش میدهد این است:
1) یک ولتاژ وابسته به دما را در ترمینال N دیود با استفاده از تقویتکننده A2 ایجاد میکند تا خروجی را به پین Vout دهد.
2) از این دو ترانزیستور برای ایجاد یک مرجع ولتاژ پهنایباند یعنی یک مرجع ولتاژ ثابت، صرف نظر از تغییرات دما و منبع تغذیه استفاده میشود.
3) و به همین دلیل است که میتوانید LM35 را با استفاده از هر ولتاژ بین 4 تا 20 ولت تغذیه کنید.
مدار سنسور LM35
از آنجا که خروجی این سنسور آنالوگ بوده، با هریک از کانالهای ADC میکرو میتوان آن را خواند.
محل قرارگیری سنسور LM35 در برد SENSOR SHIELD مجموعه آموزشی AVR
در بردشیلد سنسور موسوم به SENSOR SHIELD مدار راهانداز این سنسور طراحی شدهاست و کاربر به راحتی شروع به کدنویسی میکند.
نحوه برنامهنویسی و خواندن مقادیر سنسور LM35
فرض کنید از پین Vout مقدار دیجیتال 65 را از ADC میکرو بدست میآوریم. میدانیم که 1023 مطابق 5v است. بنابراین 350 با (5/1023) * 65 مطابقت دارد که ولتاژ خروجی را به ما میدهد.
برای تبدیل این ولتاژ به دما در درجه سانتیگراد ، میخواهیم از ضریب مقیاس افزایش 0.01 ولت در درجه سانتیگراد استفادهکنیم . هریک ولت صد درجه سلسیوس را به ما میدهد بنابراین ولتاژ محاسبه شده: ولتاژ ضرب شده در 100 را محاسبه میکند که دمای اطراف به درجه سانتیگراد است.
کد C برنامه
#include
#include
// Alphanumeric LCD functions
#include
#include
#include
#include
// Declare your global variables here
//unsigned char temp[30];
char i = 0;
char lm35[10];
float lm35_value = 0.00;
float lm35_av = 0;
// Voltage Reference: AVCC pin
#define ADC_VREF_TYPE ((0<