آردوینو arduino, آموزش, پروژه, پروژه آردوینو, توصیه شده, معرفی, مقاله

راه‌اندازی سنسور دما DS18b20 با آردوینو

راه‌اندازی سنسور دما DS18b20 با آردوینو

شاید نیاز باشد در یک مکان، دما را در شرایط مختلف محیطی اندازه‌گیری کنیم و طبق یک زمان بندی خاص اطلاعات را ارسال کنیم، و در نهایت طبق اطلاعات بدست آمده، دستورات موردنظر را اجرا کنیم. فرض کنید که می‌خواهید دمای یک محیط آزمایشگاهی را اندازه گیری و کنترل کنید، به احتمال زیاد در وهله‌ی اول سوالات زیر برایتان به وجود بیاید.

  • از چه سنسوری باید استفاده کنم؟
  • چطور می‌توانم این اندازه‌گیری را انجام بدهم؟
  • از چه سخت افزاری باید استفاده کنم؟

در این مقاله می‌خواهیم به این سوالات پاسخ دهیم و در نهایت این سنسور را توسط برد آردوینو Nano راه‌اندازی کنیم و جواب را در سریال مانیتور نرم‌افزار آردوینو مشاهده کنیم.

خب اولین سوالی که ممکن است به ذهن برسد،این است که برای انجام این پروژه باید از چه سنسوری استفاده کنیم؟ برای پاسخ به این سوال باید یک شناخت کلی از سنسورها به همراه عملکرد آن‌ها داشته باشیم. به طور مثال برای پروژه ای که تعریف کردیم فقط به اندازه گیری دما نیاز داریم. پس سنسورهایی که فقط دما را اندازه‌گیری می‌کنند باید پیدا کنیم که با یک جستجو ساده بدست می‌آید. برای این پروژه از سنسور DS18b20 به دلیل دقت بالای اندازه‌گیری آن استفاده می‌کنیم که اگر کمی هم جستجو کرده باشید از سنسور DS18b20 در پروژه های مختلف استفاده شده است.

حال سوال بعدی که ممکن است به ذهن برسد، این است که چطور این سنسور را باید راه اندازی کنیم؟ در پاسخ به این سوال لازم است که کمی دیتاشیت این سنسور را مورد برسی قرار دهیم. در این قسمت می‌خواهیم به صورت مختصر دیتاشیت سنسور DS18b20 را باهم بررسی کنیم.

ویژگی‌های این سنسور به صورت کلی شامل موارد زیر می‌باشد:

استفاده از پروتکل ONE_WIRE جهت راه اندازی

تغییر رزولوشن از 9 تا 12 بیت

تغذیه بین 3 تا 5.5 ولت

اندازه‌گیری دما از 55- تا 125 درجه سانتی‌گراد (دقت کنید که مقدار دمایی که در پروژه مدنظر شما است در این رنج است یا خیر که در این پروژه این بازه دمایی مدنظر ما می‌باشد.)

پروتکل ONE_WIRE چیست؟ و نحوه عملکرد این پروتکل به چه صورتی است؟

این پروتکل برای انتقال دیتا فقط از یک پین استفاده می‌کند، به همین جهت به آن ONE WIRE می‌گویند. درواقع یکی از پرچالش‌ترین پروتکل‌ها، همین پروتکل است به این دلیل که زمان‌بندی در این پروژه از اهمیت بالایی برخوردار است. همچنین نحوه عملکرد آن هم کاملا بستگی به زمان‌بندی دارد. فرض کنید که برای روشن کردن سنسور DS18b20 باید هر 480 میکرو ثانیه کد “0XA0” را ارسال کنید، در صورتیکه طبق این زمان‌بندی ارسال دستور صورت نگیرد سنسور فعال نخواهد شد و در نهایت عمل نخواهد کرد. از این‌رو زمان‌بندی در این پروتکل، اهمیت بسیار زیادی را دارد.

بلوک دیاگرام سنسور DS18b20 هم به صورت شکل زیر است.

بلوک دیاگرام سنسور DS18b20

برای راه‌اندازی سنسور DS18b20 حتما به یک مقاومت 4.7 کیلو نیاز دارید، که باید به صورت پول‌آپ متصل شود در غیر این‌صورت سنسور عمل نخواهد کرد.

شماتیک سنسور DS18b20

برای اطلاعات بیشتر توصیه می‌کنیم که حتما دیتاشیت این سنسور را مطالعه کنید.

پس از اینکه اطلاعات کافی در مورد سنسور DS18b20 را بدست آوردیم. باید بستر مناسب برای پیاده سازی سنسور DS18b20 را انتخاب کنیم.

انتخاب بستر مناسب برای پروژه، یکی از مشکلات مهندسین الکترونیک است که عدم شناخت به ادوات الکترونیکی باعث بروز این مشکل شده است. انتخاب بستر مناسب برای پروژه به مواردی مثل مدت زمان تعیین شده برای انجام پروژه و سختی پروژه و رابط گرافیکی و … بستگی دارد که باید حتما تک تک این موارد مورد برسی قرار گیرند و در نهایت چیپ موردنظر انتخاب شود.

در این آموزش از بستر آردوینو جهت راه‌اندازی سنسور DS18b20 و یک کتابخانه آماده استفاده شده است.(خوشبختانه تمامی زمان‌بندی‌ها توسط این کتابخانه انجام شده است)

جهت راه‌اندازی این سنسور باید دو مرحله را رعایت کنیم، یکی ترسیم شماتیک برد و دیگری بخش کدنویسی که در نرم‌افزار آردوینو انجام می‌گیرد.

ترسیم شماتیک برد سنسور دما DS18b20

شماتیک سنسور دما DS18b20

 

کدنویسی سنسور DS1820 –DS18b20

ابتدا باید کتابخانه موردنظر را طبق تصاویر زیر نصب کنیم.

کتابخانه سنسور دما DS18b20 آردوینو

کتابخانه سنسور DS18b20 آردوینو

 

سپس کد زیر را در محیط IDE آردوینو می‌نویسیم.

اگر تمامی موارد به درستی انجام گرفته باشد، باید خروجی را به صورت زیر در سریال مانیتور مشاهد کنیم.

خروجی سنسور DS18b20

 

امیدواریم که آموزش برای شما مفید واقع شده باشد.



انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.  همکاری با سیسوگ

 

یک دیدگاه در “4”

  1. Avatar محمد گفت:

    تغییر رزولوشن از 9 تا 12 بیت?

    1. BLO OM BLO OM گفت:

      سلام دوست عزیز
      منظور از 9 تا 12 همان دقت یا اصطلاحا رزولوشن هست که در این دماسنج قابلیت تغییر این دقت رو دارید که معمولا روی 12 تنظیم می‌کنند.
      زمانیکه روی ماکزیمم رزولوشن یعنی 12 بیت تنظیم شود، سرعت تبدیل 750 میلی ثانیه خواهد بود.
      و این تنظیم کاملا به صورت دلخواه کاربر می‌باشد، همانطور که گفتم به صورت پیش‌فرض این مقدار را روی 12 تنظیم می‌کنند
      و این نکته رو هم در نظر داشته باشید هر چه رزولوشن بیشتر، دقت بالاتر و سرعت تبدیل کمتر خواهد بود.
      طبق این نکته در پروژه های متفاوت نحوه تنظیم این رزولوشن ها تغییر خواهد کرد مسلما اگر نیاز به سرعت بیشتر داشته باشید با دقت کمتر
      پیشنهادی که است رزولوشن را پایین تر در نظر بگیرید و اگر عکس این قضیه بود مطمئنا باید رزولوشن را بالاتر در نظر بگیرید.

      امیدوارم که جواب موردنظرتون رو دریافت کرده باشید دوست عزیز.

      موفق باشید.

  2. BLO OM BLO OM گفت:

    سلام دوست عزیز
    این پروتکل همونطوری که در مقاله هم توضیح دادیم به زمان‌بندی بسیار حساس هست و اگر به طور مثال از 3 سنسور با ادرس های مختلف استفاده کنید مقاومت خط تغییر چندانی نخواهد کرد و سنسور ها بدون تداخل جواب خواهند داد حال اگر این تعداد بیشتر شود احتمال جواب نگرفتن بسیار بالاست به دلیل وجود تداخلی که ممکن است در ارسال دیتا صورت بگیرد و این دقیقا همان چیزی است که باعث می‌شود شما به صورت تصادفی از سنسور ها پاسخ بگیرید. راه حل محاسبه مقاومت خط است.
    پیشنهادی که بنده دارم ترجیحا مقاومت 1.9K را جای 4.7K امتحان کنید و عملکرد را دوباره چک کنید.(برای فاصله نزدیک کمتر از 3 متر)
    البته به فاصله سنسور ها هم دقت کنید چون اگر این فاصله زیاد باشد به احتمال زیاد مشکل شما محاسبه امپدانس خط است که توصیه می‌کنم لینکی که در ادامه میزارم رو مطالعه کنید
    https://www.maximintegrated.com/en/app-notes/index.mvp/id/148
    امیدواریم که هر چه زودتر به جواب برسید.
    موفق باشید.

  3. Avatar منصوری گفت:

    سلام. وقتی تعداد سنسورها یک یا دوتا باشه کار می‌کنه
    من از ۱۵ سنسور استفاده کردم. مشکلی که پیش میاد اینه که بصورت تصادفی سنسورها پاسخ نمیدن.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *