صفحه 1 از 4

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

ارسال شده: سه شنبه 16 شهریور 1395, 8:58 am
توسط sinaset
بنام خدا
باسلام

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

تصویر

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

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

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

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

باتشکر.
 

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

ارسال شده: یک شنبه 18 مهر 1395, 4:08 pm
توسط sinaset
بنام خدا
باسلام


ارتباط با ایسی 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

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

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

ارسال شده: شنبه 11 دی 1395, 12:13 am
توسط h.kiya
آقا سینا بی زحمت یه توضیح می دید که چند تا سنسور رو چطور با 1 سیم راه اندازی کنیم
ممنون

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

ارسال شده: شنبه 11 دی 1395, 9:16 am
توسط sinaset
بنام خدا
--
سلام بر شما
انشالله در این پست توضیح خواهم داد،تشکر از تذکر شما.
--
استفاده از 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]

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

ارسال شده: شنبه 11 دی 1395, 12:27 pm
توسط h.kiya
ممنون آقا سینا بابت راهنمایی مفیدتون

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

ارسال شده: سه شنبه 14 دی 1395, 2:48 pm
توسط sinaset
باسلام

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

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

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

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

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

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

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

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

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

ارسال شده: جمعه 10 فروردین 1397, 4:22 am
توسط sadegh42
سلام
ممنون از مطالبی که ارایه کردید
میتوانم خواهش کنم مدار را با دورقم(دو سون سگمنت) وعلامت منفی را با یک دیود نورانی هم ارایه کنید
با سپاس فراوان

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

ارسال شده: جمعه 10 فروردین 1397, 8:59 am
توسط sinaset
بنام خدا
باسلام

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

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

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

کدها:


Please Login or Register, to see this code

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

باتشکر.

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

ارسال شده: جمعه 10 فروردین 1397, 12:26 pm
توسط sadegh42
سلام
بزرگوار نمیدونم چطوری از شما تشکر کنم
فقط میتونم بگم :
خدا خیرت دهد :) :)

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

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

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

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