AVR, پروژه, پروژه AVR | از مقدماتی تا پیشرفته, توصیه شده, سنسور ها

راه‌اندازی سنسور DS18B20 با AVR

راه‌اندازی سنسور DS18B20 با AVR

در این مطلب، با راه‌اندازی سنسور DS18B20 با avr آشنا می‌شویم. بدین منظور، نحوه راه‌اندازی چند سنسور دمای DS18B20 با کمک یکی از سری میکروکنترلرهای AVR، یعنی میکروکنترلر ATmega328، را بررسی می‌کنیم. شاید در نگاه اول راه‌اندازی چند سنسور کار سختی به نظر برسد، اما همان‌طور که در این مطلب خواهیم دید، به‌سادگی چندین سنسور دمای DS18B20 را به پین ​​میکروکنترلر AVR متصل می‌کنیم و مقادیر دمای همه سنسورها را برحسب درجه سانتیگراد یا فارنهایت نمایش می‌دهیم. برای اتصال چند سنسور دمای DS18B20، فقط یک پین دیجیتال میکروکنترلر ATmega328 لازم است. لازم به ذکر است که می‌توانیم حداکثر ۱۰۲۴ سنسور را با استفاده از پروتکل I2C متصل کنیم. اما در اینجا اتصال و راه‌اندازی ۳ سنسور دمای DS18B20 را با میکروکنترلر ATmega328 بررسی می‌کنیم.

سنسور DS18B20 یک سنسور دمای دیجیتال 1-Wire است. این سنسور امکان اندازه‌گیری دقیق دما را در محیط‌های مرطوب با رابط ساده 1-Wire فراهم و از طریق باس مشترک ارتباط برقرار می‌کند. ارتباط از طریق باس مشترک به این معنی است که می‌تواند چندین دستگاه را به هم متصل کند و مقادیر آن‌ها را فقط با استفاده از یک پین دیجیتال میکروکنترلر بخواند.

شاید برای شما مفید باشد: آموزش AVR از 0 تا 100

سنسور دمای دیجیتال ضد آب DS18B20

این نوع سنسور یک نسخه سیم‌کشی شده و ضد آب از سنسور DS18B20 بوده و برای زمانی که نیاز به اندازه‌گیری چیزی در فاصله دور یا در شرایط مرطوب داریم، گزینه مناسبی است. این نوع سنسور می‌تواند دمای بین ۵۵- تا ۱۲۵ درجه سانتی‌گراد (۶۷- تا ۲۵۷ درجه فارنهایت) را اندازه‌گیری کند. جنس کابل سنسور PVC است.

ازآنجاکه سنسور دیجیتال است، هیچ‌گونه تخریب و افت سیگنال حتی در فواصل طولانی وجود ندارد. این سنسورهای دمای دیجیتال 1-Wire نسبتاً دقیق هستند و خطای آن‌ها در حد ۰٫۵± درجه سانتی‌گراد است. همچنین، سنسور DS18B20 می‌تواند تا ۱۲ بیت دقت را از مبدل دیجیتال به آنالوگ آن‌بورد ارائه دهد. این سنسور با هر میکروکنترلری با استفاده از یک پین دیجیتال عملکرد بسیار خوبی دارد.

تنها نقطه‌ضعف این سنسور استفاده از پروتکل Dallas 1-Wire است که تا حدودی پیچیده است و برای تجزیه‌وتحلیل ارتباطات نیاز به یک سری کد دارد. دقت کنید که در مدار از یک مقاومت ۴٫۷ کیلو اهم استفاده می‌کنیم که هنگام استفاده از سنسور به‌عنوان pull-up از خط DATA به خط VCC موردنیاز است.

در ادامه، تجهیزات و قطعات موردنیاز را برای راه‌اندازی سنسور بیان می‌کنیم.

قطعات موردنیاز برای راه‌اندازی سنسور DS18B20 با avr

قطعات لازم برای مدار راه‌اندازی سنسور DS18B20 با avr عبارت‌اند از:

  • میکروکنترلر ATmega328
  • چند سنسور دمای ضد آب DS18B20
  • نمایشگر LCD سایز ۱۶ در ۲
  • مقاومت‌های ۴٫۷ کیلو اهم، ۱ مگااهم و ۱۰۰ اهم
  • خازن‌های ۲۲ پیکوفاراد، ۱۰ میکروفاراد
  • اسیلاتور کریستالی ۱۶ مگاهرتز
  • منبع تغذیه یا باتری ۵ ولت

مدار اتصال سنسورها و میکروکنترلر

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

سخت‌افزار و طراحی مدار

با اتصال تمام سنسورها به یک پین دیجیتال میکروکنترلر ATmega328، دماسنج دیجیتالی برای اندازه‌گیری دماهای متعدد به‌سادگی طراحی می‌شود. تصویر زیر نشان می‌دهد که چگونه چندین سنسور دمای DS18B20 به میکروکنترلر ATmega328 متصل شده و دما را چگونه نمایش می‌دهند.

کد میکروکنترلر

از آردوینو برای نوشتن کد و آپلود آن در میکروکنترلر استفاده کرده‌ایم. برای آپلود برنامه یا همان پروگرام کردن میکروکنترلر، ATmega328 را در برد Arduino UNO قرار دهید. ابتدا بوت لودر (bootloader) را آپلود کنید. سپس، به‌سادگی کد زیر را کامپایل کرده و در میکروکنترلر آپلود کنید. اکنون می‌توانید میکروکنترلر را خارج کرده و آن را در PCB قرار دهید.

برای اتصال راه‌اندازی سنسور DS18B20 با avr به دو کتابخانه زیر نیاز داریم:

۱. دانلود کتابخانه 1 Wire

۲. دانلود کتابخانه Dallas Temperature

کد میکروکنترلر در ادامه آورده شده است.

 

راه‌اندازی چند سنسور DS18B20 با AVR

سنسور DS18B20 می‌تواند دما را از ۹ تا ۱۲ بیت (قابل‌تنظیم) روی نمایشگر نمایش دهد. همچنین، از طریق یک باس 1-Wire ارتباط برقرار می‌کند که طبق تعریف فقط به یک خط داده (و زمین) برای ارتباط با یک ریزپردازنده مرکزی نیاز دارد. علاوه بر این، می‌تواند مستقیماً از خط داده (“توان پارازیتی”) توان دریافت کند و نیاز به منبع تغذیه خارجی را از بین ببرد.

عملکرد اصلی DS18B20 سنسور دمای مستقیم به دیجیتال بودن آن است. وضوح سنسور دما توسط کاربر قابل‌تنظیم به ۹، ۱۰، ۱۱ یا ۱۲ بیت است که به ترتیب متناظر با افزایش ۰٫۵ درجه سانتی‌گراد، ۰٫۲۵ درجه سانتی‌گراد، ۰٫۱۲۵ درجه سانتی‌گراد و ۰٫۰۶۲۵ درجه سانتی‌گراد به مکان. رزولوشن پیش‌فرض هنگام روشن‌شدن ۱۲ بیت است.

هر سنسور DS18B20 دارای آدرس دستگاه خاصی با فرمت HEX مانند {0x28، 0x1D، 0x39، 0x31، 0x2، 0x0، 0x0، 0xF0} است؛ بنابراین، برنامه بر اساس دمای خواندن از یک آدرس دستگاه خاص طراحی شده است. در نتیجه، ابتدا میکروکنترلر تعداد سنسورها را اسکن می‌کند. فرض کنید ۳ سنسور در اینجا متصل هستند؛ بنابراین، فقط مقادیر ۳ دمای مختلف را نمایش می‌دهد. اگر سنسورهای بیشتری متصل شوند، تعداد قرائت‌ها به مقادیر متعدد تغییر خواهد کرد. مقدار دمای خوانده‌شده توسط هر سنسور پس از فاصله زمانی ۲ ثانیه به‌عنوان دمای سنسور شماره ۱، سنسور شماره ۲ دمای سنسور و بزرگ‌تر از آن برای شماره سنسورهای متصل بیشتر نمایش داده می‌شود.

منبع: How To Electronics

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

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

2 دیدگاه در “راه‌اندازی سنسور DS18B20 با AVR

  1. Avatar for Essi Essi گفت:

    سلام یه برد دما و تایمر دارم که با اتمگا ۸ بوده و ای سی پوکیده برنامشو ندارم میشه راهنمایی کنید پروگرامرش کنم سنسور دماش همین سنسور هستش

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

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

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

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