آموزش راه اندازی سنسور دما دیجیتال DS18B20(نسخه 3.0)

در اين بخش مي‌توانيد آموزش و مثال‌های مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مدیران انجمن: SAMAN, sinaset, شوراي نظارت

Colonel II
Colonel II
نمایه کاربر
پست: 7442
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9254 بار
سپاس‌های دریافتی: 21664 بار
تماس:

آموزش راه اندازی سنسور دما دیجیتال DS18B20(نسخه 3.0)

پست توسط sinaset » سه شنبه 16 شهریور 1395, 8:58 am

بنام خدا
باسلام

آموزش راه اندازی سنسور دما دیجیتال DS18B20

تصویر

سنسور دما DS18b20 یک سنسور دیجیتال خوب و پیشرفته می باشد! این سنسور توانایی های جالبی از جمله،ارتباط تک سیمه،با میکروکنترولر دارد! علاوه بر نکته ی که گفته شد،این سنسورها هر کدام،داریی یک شماره سریال می باشند،که به کمک همین قابلیت می توان،چنده ده سنسور را فقط با یک سیم به میکروکنترولر ارتباط داد!

مشخصات سنسور:

اندازه گیری دمایی -55 تا 125+
دقت انداگیری 12 بیت ( در 750 میلی ثانیه)
ولتاژ کاری 3.0 تا 5.5 ولت
قابلیت تنظیم آرم داخلی(برای یک دمایی خاص)
و..
درون ایسی ds18b20
همانجور که در تصویر زیر می ببینید،این ایسی دما از قسمت ها مختلفی تشکیل شده.
تصویر
تصویر
پایه های ایسی :
پایه Vdd پایه مثبت ایسی
پایه GND پایه منفی ایسی
پایه DQ پایه ارتباطات ایسی.
---------
تصویر
پایه DQ ایسی باید با یک مقاومت 4.7 تا 10 کیلواهم،به مثبت اتصال پیدا کند (یا پول آپ شود)
 فهرست مطالب تاپیک:
صفحه اول
ارتباط با ایسی DS18B20
استفاده از 20 سنسور DS18b20
دماسنج با سون سگمنت.
2 سون سگمنت و علامت منفی

صفحه دوم
ورژن 3 با سون سگمنت 4 رقمی (نمایش ممیز و علامت منفی)

باتشکر.
 
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 7442
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9254 بار
سپاس‌های دریافتی: 21664 بار
تماس:

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20

پست توسط sinaset » یک شنبه 18 مهر 1395, 4:08 pm

بنام خدا
باسلام


ارتباط با ایسی DS18B20
 تصویر 
ارتباط با ایسی بسیار ساده می باشد! به طور ساده،ما ابتدا یک دستور سرچ به به کمک 1wire می فرستیم! سپس ایسی کد شناسایی خودش را برای ما می فرستد! ما آن کد شناسایی را درون یک متغیر رشته ی ذخیر می کنیم، [HIGHLIGHT=#00b0f0]سپس در برنامه،هر وقت بخواهیم، دما را بخوانیم،کافیست! فقط کدشناسایی ایسی را براش از طریق 1wire بفرستیم ، تا ایسی بعد از دریافت کد شناسایی،مقدار دمایی خود را برای ما بفرستد!

[HIGHLIGHT=#00b050]حال همین مراحل را در کد نویسی شرح می دهیم ! 

به غیر از کتابخانه مورد نیز، این کتابخانه انحصاری برای ایسی را فعال می کنیم :
Please Login or Register, to see this code

سپس یک رشته 9 تایی تعریف می کنیم (برای اینکه کدشناسایی ایسی 64 بیت! می باشد)

Please Login or Register, to see this code

سپس وارد حلقه main میشویم،در انجا یک متغیر اعشاری تعریف می کنیم (برای نمایش دما ایسی،با دقت 0.1 )
Please Login or Register, to see this code

با دستور زیر، 1wire را مقدار دهی اولیه می کنیم (لازم به ذکر است،از طریق تنظیمات project/configure/c compiler/Libraries/1wire کتابخانه wire را فعال سازی کنید و پایه که ایسی به ان اتصال پیدا کرده است را مشخص کنید)
Please Login or Register, to see this code

اما در ادامه،باید یک عملیات سرچ انجام شود،و کدشناسایی ایسی پیدا و برای ما فرستاده شود تا در یک متغیر ان را ذخیر کنیم.
به کمک تابع w1_search و کد f0 (که ایسی ds18b20 به دیدن ان کدشناسایش را می فرستد) از ایسی درخواست کدشناسایی می کنیم

Please Login or Register, to see this code

همانجور که در بالا می ببیند،کدشناسایی در همان رشته 9 تایی که در گذشته تعریف کرده ایم، ریخته میشود(DS18B20_Rom_Codes)

حال به درون حلقه while می رویم، در انجا کافیست،به کمک تابع زیر،مقدار دما را فرابخوانیم و سپس در متغیر اعشاری دما بریزیم

Please Login or Register, to see this code

حال دیگر همه چیز تمام است و می توان دما را بر روی LCD نمایش داد

کل کدهایی برنامه:
Please Login or Register, to see this code

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] شبیه ساز و برنامه.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

New Member
پست: 5
تاریخ عضویت: جمعه 10 دی 1395, 11:00 pm
سپاس‌های ارسالی: 2 بار
سپاس‌های دریافتی: 5 بار

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20

پست توسط h.kiya » شنبه 11 دی 1395, 12:13 am

آقا سینا بی زحمت یه توضیح می دید که چند تا سنسور رو چطور با 1 سیم راه اندازی کنیم
ممنون

Colonel II
Colonel II
نمایه کاربر
پست: 7442
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9254 بار
سپاس‌های دریافتی: 21664 بار
تماس:

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20

پست توسط sinaset » شنبه 11 دی 1395, 9:16 am

بنام خدا
--
سلام بر شما
انشالله در این پست توضیح خواهم داد،تشکر از تذکر شما.
--
استفاده از 20 سنسور DS18b20 در کنار هم.!
 تصویر  تصویر  این اموزش قصد داریم 20 ایسی دما ds18b20 را بهم دیگر برای یک میکرو راه اندازی کنیم!
همانجور که در گذشته نیز گفتیم،این ایسی ها دما،هر کدام یک کد شناسایی کارخانه ی نیز دارن،که کار را برای ما نیز اسان می کند، حال کافیست ما ابتدا یک دستور شناسایی برای همه ایسی بفرستیم،تا خودشان را معرفی کنند! سپس در برنامه به کمک کدهایی شناسایی ،هر ایسی که خواستیم را می توانیم صدا بزنیم و دمایی ان را بخوانیم!

در این برنامه بدلیل زیاد بودن تعداد ایسی ها و عدم نمایش صحیح بر روی LCD ،نمایش از طریق رابط uart انجام میشود.(پس یک مبدل uart به usb تهیه کنید،)
مراحل برنامه نویسی:

به قسمت های مهم می پردازیم..

متغیری تعریف میکنیم،که به کمک ان بتوانیم تعداد ایسی های موجود در مدار را بدست بیاوریم.
Please Login or Register, to see this code

20 آرایه دو بعدی تعریف می کنیم،تا کدهایی شناسایی هر ایسی را در ان قرار دهیم.
Please Login or Register, to see this code

20 متغیر از نوع اعشاری برای دمایی هر ایسی تعریف می کنیم
Please Login or Register, to see this code

به کمک دستور مهم زیر،از ایسی های می خواهیم خودشان را معرفی کنند،سپس کدشناسایی هر ایسی را در یکی از ارایه های DS18B20_Rom_Codes قرار میدهیم.
Please Login or Register, to see this code

به کمک دستور ها زیر، کدشناسایی 20 ایسی نمایش داده میشود،(به کمک شماره کدشناسایی هر ایسی،می توانید هر ایسی را جداگانه پیدا کنید! یا مکان دقیق ایسی را در مدار بدانید و ..)

Please Login or Register, to see this code

به کمک دستور زیر،دمایی هر ایسی خوانده میشود و سپس هر کدام در متغیر رشته ی Thermometer ذخیره میشود..

Please Login or Register, to see this code

در پایان نیز،مقدار دمای هر ایسی برای نمایش فرستاده میشود
Please Login or Register, to see this code

کل کدهایی برنامه:

Please Login or Register, to see this code

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]شبیه ساز و برنامه.
باتشکر.[/I][/I]
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

New Member
پست: 5
تاریخ عضویت: جمعه 10 دی 1395, 11:00 pm
سپاس‌های ارسالی: 2 بار
سپاس‌های دریافتی: 5 بار

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20

پست توسط h.kiya » شنبه 11 دی 1395, 12:27 pm

ممنون آقا سینا بابت راهنمایی مفیدتون

Colonel II
Colonel II
نمایه کاربر
پست: 7442
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9254 بار
سپاس‌های دریافتی: 21664 بار
تماس:

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20

پست توسط sinaset » سه شنبه 14 دی 1395, 2:48 pm

باسلام

دماسنج با سون سگمنت.

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

اما با این وجود کدها خدمت همه کاربران:
(نسخه ساده اولیه)
Please Login or Register, to see this code

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]برنامه.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

New Member
پست: 1
تاریخ عضویت: شنبه 4 آذر 1396, 5:53 pm
سپاس‌های ارسالی: 3 بار

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ

پست توسط 2ehsan67 » چهار شنبه 15 آذر 1396, 9:29 pm

سلام مهندس جان. وقتتون بخیر
تشکر بابت مطالب مفیدی که داخل سایت گذاشتید.
ببخشید چندتا سوال داشتم . ممنون میشم اگه منو راهنمایی کنید.
در مورد ds18b20 بود که تو سایت 20 سنسور را به میکرو متصل کردین
اول اینکه این کدهای شناسایی ثابت و مختص هر آی سی هستن؟ یعنی میخام یک بار برای همیشه اینها را سرچ کنم و سپس داخل eeprom ذخیره کنم و دیگه سرچ نکنم و به همون ترتیب از eeprom فرا بخونم.
دوم اینکه unsigned char DS18B20_Rom_Codes[20][9]@0x200 در این عبارت چرا بعد از ماتریس دو بعدی عبارت @0x200 را نوشتید؟ علت خاصی داره؟
سوم اینکه چرا در نمایش کد CODE_IC1:%x%x%x که باید 3 عدد در مبنای 16 را نشون بده 6 عدد را برای ما بر میگردونه؟ مثل fdfc47

Colonel II
Colonel II
نمایه کاربر
پست: 7442
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9254 بار
سپاس‌های دریافتی: 21664 بار
تماس:

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ

پست توسط sinaset » پنج شنبه 16 آذر 1396, 10:30 am

سلام بر شما
خواهش میکنم . (البته مهندس نیستم..)
بله کدهای شناسایی در هر ایسی ذخیره شده است،می توانید بعد از ازمایشات و مشخص شدن هر ایسی براساس کدشناسایی دیگر کدشناسایی ارسال نکنید.(ضمن اینکه برای اطمینا بیشتر یکبار این ازمایش را با پرتئوس و همچنین سخت افزاری (بخصوص به صورت عملی! چون پرتئوس انچنان نمی شود به ان اطمینان کرد) ازمایش کنید .
در رابطه با سوال دومتان.چون خیلی وقته ان را ساخته ام،الان بخاطرم نیست علتش چیست! اما به کمک ان کد،ادرس ذخیره سازی متغییر در حافظه رم مشخص میشود(بصورت ثابت)! (اگر نوشته نشود،میکرو خودش براساس بایت های خالی ادرسی را پیدا و در ان اطلاعات را ذخیره سازی می کند) منتها در اینجا بنظرم نیازی برای مشخص کردن ادرس ثابت برای متغیر نیست! فکر میکنم زمانی که داشتم مدار را ازمایش میکردم،می خواستم بدانم،دقیقا چه مقدارهای در متغیر ریخته میشود (برای ازمایش و درک نحویه عملکرد).اگر ان را حذف کنید قاعدتا نباید مشکل باشد..
این سوالتان مثل سوال قبل جواب میدهم(چون درست بخاطرم نیست!) اما فکر میکنم،کدهایی یک ایسی زیاد بود! و با چند عدد از کدهایی ارسالی تفاوت احساس میشد! ضمن اینکه تاپیک جنبه اموزشی دارد،برای همین است،سعی شده بود،کدهایی ایسی به روی LCD نمایش داده شود،تا کاربران بتواند درک بهتره نسبت به ایسی و .. داشته باشند.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

New Member
پست: 3
تاریخ عضویت: جمعه 10 فروردین 1397, 3:38 am
سپاس‌های ارسالی: 1 بار
سپاس‌های دریافتی: 1 بار

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ

پست توسط sadegh42 » جمعه 10 فروردین 1397, 4:22 am

سلام
ممنون از مطالبی که ارایه کردید
میتوانم خواهش کنم مدار را با دورقم(دو سون سگمنت) وعلامت منفی را با یک دیود نورانی هم ارایه کنید
با سپاس فراوان

Colonel II
Colonel II
نمایه کاربر
پست: 7442
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9254 بار
سپاس‌های دریافتی: 21664 بار
تماس:

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ

پست توسط sinaset » جمعه 10 فروردین 1397, 8:59 am

بنام خدا
باسلام

به درخواست کاربر محترم ..

ورژن 2 با 2 سون سگمنت و علامت منفی

 تصویر 
در ورژن جدید،کدنویسی بهتره شده،ریفرش سون سگمنت بهتر و دقیق و درست تر انجام می میشود
در ورژن جدید دمایی منفی نیز نمایش داده میشود (با روشن شدن یک LED)

کدها:


Please Login or Register, to see this code

دانلود برنامه و شبیه ساز از [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

New Member
پست: 3
تاریخ عضویت: جمعه 10 فروردین 1397, 3:38 am
سپاس‌های ارسالی: 1 بار
سپاس‌های دریافتی: 1 بار

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ

پست توسط sadegh42 » جمعه 10 فروردین 1397, 12:26 pm

سلام
بزرگوار نمیدونم چطوری از شما تشکر کنم
فقط میتونم بگم :
خدا خیرت دهد :) :)

New Member
پست: 3
تاریخ عضویت: جمعه 10 فروردین 1397, 3:38 am
سپاس‌های ارسالی: 1 بار
سپاس‌های دریافتی: 1 بار

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ

پست توسط sadegh42 » جمعه 10 فروردین 1397, 11:13 pm

سلام بزرگوار
سوال داشتم ونیاز به کمک حضرت عالی
1-اگر بخواهم خروجی سون سگمنت رو در پورتc قرار بدم و پین 1و2 سون سگمنت رو بندازم روی پایه 2و3 از ای سی(PD3 & PD2)
ds18b20 رو در پایه 23(PC0مثلا)چه تغیراتی در فایل ایجاد میشه

2- در پورت B سه عدد دگمه بزارم برای ست دما -بالا وپایین کردن نقطه SET POINT
ودر پورت D یک رله تا دما به اون نقطه رسید رله فعال بشه

منتظر راهنمایی جناب عالی هستم
با تشکر واحترام

ارسال پست

بازگشت به “آموزش و مثال‌ها AVR”