تا کنون سنسورهای دمای متفاوتی ساخته شده اند که با یکدیگر تفاوت دارند و هر کدام در حوزه خاص مورد استفاده قرار میگیرد اما هر سنسوری جدیدی که ساخته می شود دارای مزیت های بیشتری نسبت به نمونه های قبلی ان دارد.
در این پست قرار هست در مورد سنسور دمای DS18B20 صحبت کنیم و اطلاعات دقیق تری ازن را در اختیار شمار قرار بدهیم. (جهت خرید از فروشگاه آترین می توانید اینجا کلیک نمایید.)
همانطور که در عکس بالا مشاهده میکنید ظرهر این سنسور مانند یک ترانزیستور است که در ادامه برخی پارامتر های ان لیست شده است.
پارامتر ها:
1: ارتباط 1WIRE
2:ولتاژ کاری 3 تا 5.5 ولت
3:تنظیم دقت اندازه گیری 9-10-11و 12 بیت
4:قابلیت اندازه گیری دمای 55- تا 125+ سانتی گراد(67- تا 257+ فارنهایت)
5:اندازه گیری دما با دقت 12 بیت در طول 750 میلی ثانیه
6:دارای آدرس مخصوص برای هر سنسور در قالب 64 بیت
7: قابلیت قرار دادن تعداد زیاد سنسور بر روی یک خط باس
8:ساخته شده در دو پکیج TO-92 و 8PIN SOIC
9:خطای اندازه گیری 5± درجه سانتی گراد در بازه 10-تا85+ درجه سانتی گراد
توضیحات بخش های مختلف سنسور:
پایه های سنسور:
در پکیج TO-92 ای سی دارای 3 پایه هست که یکی به تغذیه مثبت -دیگری به زمین و سومی پایه اندیتا هست که ارسال و دریافت از این پایه صورت میگیرد.
پروتکل ارتباطی این ای سی 1WIRE می باشد که باید توسط مقاومت 4.7 کیلو به ولتاژ مثبت VDD متصل گردد.
میکرو کنترلر های AVR و ARM از این پروتکل پشتیبانی میکنند و به راحتی میتوانید با اتصال یک پایه از میکرو دیتا را ارسال و دریافت کنید.
این سنسور دما می تواند به طور مستقیم تغذیه خود را از خط داده استخراج کند.در این صورت به هیچ منبع خارجی نیاز نخواهدداشت.در ادامه جدولی اوورده شده است که شرح حال گفته شده را نشان داده است.
دقت اندازه گیری :
تعداد بیت های دمایی خوانده شده توسط این سنسور از 9 تا 12 بیت قابل تنظیم می باشد که هر چه تعداد بیت بیشتر باشد مدت زمان بیشتر برای تبدیل و اندازه گیری دما نیاز هست . در حالت پیش فرض تعداد بیت خروجی 12 عدد هست که میتوان ان را تغییر داد.
نسبت به تعداد بیت های خروجی به ترتیب دقت اندازه گیری ها تغییر میکند و هرچه تعداد بیت بیشتر باشد دقت دمای اندازه گیری شده نیز افزایش خواهد یافت که این دقت برای 9 بیت 0.5 درجه-10 بیت 0.25 درجه-11 بیت 0.125 درجه-12 بیت 0.0625 درجه سانتی گراد خواهد بود.
نحوه خواندن دما از سنسور:
برای این که سنسور عملیات خواندن دما را انجام دهد با از طریق پروتکل تک سیمه عدد هگز 44 را به سنسور ارسال کرد و بعد از ان دما به صورت دو بایت که 16 بیت می شود در سنسور ذخیره میگردد و سپس باید هگز BE ارسال شود که در جواب ان مقدار دما از سنسور به میکرو کنترلر ارسال میگردد.
نکته مهم این است که در ارسال داده ها ابتدا LSB (بیت کم ارزش دیتا ) ارسال میگردد.
شکل دیتا های خروجی برای دمای منفی و مثبت در جدول زیر اورده شده است.
شماره سریال مخصوص هر سنسور:
هر سنسور دارای یک شماره سریال مخصوص به خود هست که با سنسور دیگری متفاوت بوده و اگر بر روی یک باس دیتا چندین سنسور قرار بگیرد به راحتی میتوان ان ها را با شماره سریال از هم تفکیک نمود که طول ان 64 بیت هست.
این 64 بیت به بخش های مختلف تقسیم میگردد که در ادامه شرح داده میشود.
8 بیت ابتدایی عدد هگز 28 است که برای این سنسور دما ثابت است
48 بیت بعدی شماره سریال مخصوص( unique serial number )هست که برای هر سنسور یک شماره ایجاد شده است
8 بیت انتهایی کد CRC است که برای چک کردن درستی اطلاعات از ان میتوان استفاده نمود.
در جدول زیر این فرمت نشان داده شده است.
مدت زمان نمونه گیری دما:
برای اندازه گیری دما نسبت به تعداد بیت دقت ان زمان متفاوتی نیاز هست و با بالا رفتن دقت زمان بیشتری نیاز است که در ادامه جدول ان اورده شده است.
که طبق ان برای حداقل 9 بیت حدود 100 میلی ثانیه و برای دقت 12 بیت حدود 750 میلی ثانیه زمان نیاز است و این نکته مهمی است که برخی در برنامه نویسی به ان توجه نمیکنند و مدام هر چند میلی ثانیه از سنسور دما را می خوان دریافت کنند که دیتا درست نمیتوننند دریافت کنند.
کد های ارتباطی:
برای ارتباط با ROM و مموری کد ها مخصوصی در دیتا شیت اورده شده است که برخی از ان در ادامه اورده شده است.(نکته : کد ها به صورت هگز است)
این اطلاعات همگی از دیتا شیت این ای سی برگرفته شده است که برای کسب اطلاعات بیشتر می توانید دیتا شیت ان را دانلود و مطالعه نمایید.
دریافت دیتا شیت