به نام خدا
اندازه گیری دمای اتاق با رزبری پای و LM35
در این جلسه می خواهیم توسط سنسور LM35 و برد رزبری پای دمای را اندازه بگیریم . برای خواندن داده های سنسور LM35 نیاز به مبدل ADC داریم .
مبدل ADC0804 :
میکروکنترلر های معمولی خودشان دارای واحد مبدل آنالوگ به دیجیتال ( ADC ) هستند و نیازی به آی سی ADC خارجی ندارند ولی برد های رزبری پای این قابلیت را ندارند . بنابراین برد های رزبری پای برای خواندن ولتاژ های متغیر نیاز به یک آی سی ADC دارند . آی سی ADC0804 یک آی سی مبدل آنالوگ به دیجیتال ۸ بیتی می باشد یعنی داده آنالوگ دریافتی را به یک عدد بین ۰ تا ۲۵۵ تبدیل می کند . هر ۱۹٫۵ میلی ولت یک واحد به خروجی اضاف می شود . شکل زیر ، پایه های آی سی ADC0804 را مشخص کرده است .
یک نکته که باید به آن توجه کنیم این است که ۸ پین خروجی آی سی ADC0804 که باید به رزبری پای وصل شود ولتاژ ۰ یا یک منطقی می دهند که یک منطقی آن معادل ۵ ولت است اما رزبری پای ۳٫۳ ولت را برای یک منطقی نیاز دارد . اگر پایه های این آی سی ADC را مسقیما به رزبری پای وصل کنیم امکان دارد رزبری پای آسیب ببیند .
برای حل این مشکل از تقسیم مقاومتی استفاده می کنیم . توسط تقسیم مقاومتی ، ولتاژ ۵ ولت را پایین می آوریم . توسط تقسیم مقاومتی ، ولتاژ ۵ ولت را به ۲٫۵ ولت تبدیل می کنیم و به رزبری پای می دهیم .
سنسور دمای LM35 :
سنسور دمای LM35 دارای سه پایه است ؛ زمین ، مثبت و سیگنال خروجی .
سیگنال خروجی سنسور LM35 به صورت یک ولتاژ آنالوگ است که تغییرات این ولتاژ با تغییرات دما نسبت مستقیم دارد و تقریبا به صورت خطی نسبت به دما تغییر می کند . به ازای هر یک درجه سانتی گراد ۱۰ میلی ولت به ولتاژ خروجی سنسور اضافه می شود . در دمای ۰ درجه سانتی گراد خروجی سنسور ۰ ولت است . در نتیجه برای مثلا دمای ۱۰ درجه سانتی گراد خروجی ۱۰۰ میلی ولت و برای ۲۵ درجه سانتی گراد خروجی ۲۵۰ میلی ولت خواهد داشت .
قطعات مورد نیاز :
– تعدادی سیم
– مقاومت یک کیلو اهم ۱۷ عدد
– پتانسیومتر ۱۰ کیلو اهم
– خازن ۰٫۱ میکروفاراد
– خازن ۱۰۰ میکروفاراد
– خازن ۱۰۰۰ میکروفاراد
– آی سی ADC0804
– سنسور دمای LM35
– بردبورد
شماتیک مدار :
سنسور دمای LM35 در خروجی خود کمی نوسان دارد برای جلوگیری از این نوسانات از یک خازن ۱۰۰ میکروفاراد استفاده می کنیم .
آی سی مقداری نویز دارد برای از کاهش این نویز ها و فیلتر کردن آن ها از یک خازن ۰٫۱ میکروفارادی استفاده کرده ایم .
این آی سی با یک کلاک اسیلاتور کار می کند ، این اسیلاتور توسط خازن C2 و مقاومت R20 درست می شود . قابل توجه است که خازن C2 را می توانید با یک خازن کوچکتر تعویض کنید تا سرعت بالاتری برای آی سی ADC ایجاد شود . اما گفتنی است که با افزایش سرعت ، دقت ما پایین می آید . بنابراین برای کاربرد هایی که نیاز به دقت بالا دارد از خازن های بزرگتر استفاده کنید و برای کاربرد هایی که نیاز به سرعت بالا دارند از خازن های کوچکتر استفاده کنید .
سنسور LM35 حداکثر می تواند دمای ۱۵۰ درجه سانتی گراد را اندازه گیری کند این به این معنی است که حداکثر ولتاژ خروجی سنسور ۱۵۰۰ میلی ولت معادل ۱٫۵ ولت خواهد بود . ولتاژ مرجع ما ۵ ولت است در نتیجه ما در واقع داریم از ۳۴% ( ۱٫۵/۵ ) این بازه استفاده می کنیم . اگر بتوانیم ولتاژ مرجع خود را پایین بیاوریم می توانیم به دقت بالاتری برسیم که خوشبختانه این قابلیت در آی سی ADC0804 وجود دارد . پین ۹ این آی سی برای تعیین ولتاژ مرجع است . ما باید ولتاژ مرجع را روی ۲ ولت تنظیم کنیم . برای تنظیم ولتاژ مرجع ۲ ولت باید ولتاژ یک ولت ( VREF/2 ) را روی پایه ۹ تنظیم کنیم که این کار را با استفاده از یک مولتی متر انجام خواهیم داد .
حال که ولتاژ مرجع را افزایش داده ایم برای هر ۱٫۲۷۵ ( ۲۵۵/۲۰۰ ) میلی ولت یک درجه سانتی گراد تغییر دما داریم
توضیحات برنامه :
حال می توانید برد خود را روشن کنید و برنامه پایتون را بنویسید .
در خطوط زیر ۸ پین را به عنوان ورودی تعریف کردده ایم . خروجی های آی سی ADC را توسط این ۸ پین دریافت می کنیم .
IO.setup(4,IO.IN) IO.setup(17,IO.IN) IO.setup(27,IO.IN) IO.setup(22,IO.IN) IO.setup(5,IO.IN) IO.setup(6,IO.IN) IO.setup(13,IO.IN) IO.setup(19,IO.IN)
خط زیر به این صورت است که اگر پین شماره ۱۹ رزبری پای ۱ شود دستور داخل حلقه یک بار اجرا می شود .
if(IO.input(19) == True):
اگر در فهم کد های برنامه مشکل دارید به آموزش رزبری پای همین سایت مراجعه کنید .
دمای اندازه گیری شده بر روی نمایشگر نشان داده خواهد شد .
کد های پروژه را از لینک زیر دانلود کنید .
دانلود فایل
دیدگاهها (0)