بازدیدها: 431
با سلام. امروز می خواهیم در مورد سنسور دیجیتال اندازه گیری دما DS18B20 صحبت کنیم و از خصوصیات و ویژگی ها و راه اندازی آن در CodeVisionAVR V2.05.0 بپردازیم.
از ویژگی های این سنسور این است که کاملا دیجیتال و به شکل یک ترانزیستور 3 پایه می باشد که پایه 1 آن به زمین و پایه 3 آن هم به VCC وصل می شود و از پایه 2 آن که با یک مقاومت pullup به اندازه 4.7 کیلو به VCC وصل می شود.
این سنسور از طریق همین یک پایه با استفاده از پروتکل 1wire عمل ارسال و دریافت دیتا را انجام می دهد. محدوده اندازه گیری دمای آن بین منفی -55 تا مثبت +125 درجه سانتیگراد می باشد و از دقت بسیار بالایی در حدود 0.0625 درجه را دارد که نسبت به کوچکترین تغییرات دمای واکنش سریع نشان خواهد داد. در ادامه به نحوی برنامه نویسی آن به زبان سی خواهیم پرداخت …
همانطور که گفتیم این سنسور با پروتکل 1wire کار می کند بنابراین در خطوط 4و5 کتابخانه های مورد نیاز را فراخوانی می کنم. و سایر کتابخانه های مربوط lcdو توایع استاندارد مورد نیاز را نیز فراخوانی کردیم. در خطوط 8 تا 10 به زبان اسمبلی پین مربوط به سنسور را تعریف کردیم. و بعد هم پورت مربوط به lcd و متغییر buffer
وارد حلقه اصلی می شویم یک متغیر محلی devices تعریف می کنیم، همانطور که می دانیم می توانیم بر روی این پین میکرو 8 تا دستگاه که با پروتکل 1wire کار می کنند را به صورت موازی وصل کنیم به همین خاطر از متغیر devices برای تعیین تعداد دستگاه ها روی خط استفاده می کنیم
با استفاده از دستور نوشته شده در خط 20 دستگاه ها شناسی شده و بعد با استفاده از یک حلقه بی نهایت شرطی مبنی بر وجود یک دستگاه، وارد این حلقه می شویم در خط 22 با استفاده از تابع مربوطه دما از سنسور به صورت دیجیتال دریافت می شود و بعد در متغیر temp قرار می گیرد. در خط 23 دما همراه با علایم و نوشته برای ارسال به LCD آماده می شود و بعد توسط خط 25 ارسال می شود و این فرایند هر 300 میلی ثانیه اجرا می شود.