صفحه 1 از 4
آموزش راه اندازی سنسور دما دیجیتال DS18B20(نسخه 3.0)
ارسال شده: سهشنبه ۱۶ شهریور ۱۳۹۵, ۸:۵۸ ق.ظ
توسط 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
ارسال شده: یکشنبه ۱۸ مهر ۱۳۹۵, ۴:۰۸ ب.ظ
توسط 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[External Link Removed for Guests] شبیه ساز و برنامه.
باتشکر.
Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20
ارسال شده: شنبه ۱۱ دی ۱۳۹۵, ۱۲:۱۳ ق.ظ
توسط h.kiya
آقا سینا بی زحمت یه توضیح می دید که چند تا سنسور رو چطور با 1 سیم راه اندازی کنیم
ممنون
Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20
ارسال شده: شنبه ۱۱ دی ۱۳۹۵, ۹:۱۶ ق.ظ
توسط sinaset
بنام خدا
--
سلام بر شما
انشالله در این پست توضیح خواهم داد،تشکر از تذکر شما.
--
استفاده از 20 سنسور DS18b20 در کنار هم.!

این اموزش قصد داریم
20 ایسی دما
ds18b20 را بهم دیگر برای یک میکرو راه اندازی کنیم!
همانجور که در گذشته نیز گفتیم،این ایسی ها دما،هر کدام یک کد شناسایی کارخانه ی نیز دارن،که کار را برای ما نیز اسان می کند، حال کافیست ما ابتدا یک دستور شناسایی برای همه ایسی بفرستیم،تا خودشان را معرفی کنند! سپس در برنامه به کمک کدهایی شناسایی ،هر ایسی که خواستیم را می توانیم صدا بزنیم و دمایی ان را بخوانیم!
در این برنامه بدلیل زیاد بودن تعداد ایسی ها و عدم نمایش صحیح بر روی LCD ،نمایش از طریق رابط uart انجام میشود.(
پس یک مبدل uart به usb تهیه کنید،)
مراحل برنامه نویسی:
به قسمت های مهم می پردازیم..
متغیری تعریف میکنیم،که به کمک ان بتوانیم تعداد ایسی های موجود در مدار را بدست بیاوریم.
Please Login or Register to see this code20 آرایه دو بعدی تعریف می کنیم،تا کدهایی شناسایی هر ایسی را در ان قرار دهیم.
Please Login or Register to see this code20 متغیر از نوع اعشاری برای دمایی هر ایسی تعریف می کنیم
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[External Link Removed for Guests]شبیه ساز و برنامه.
باتشکر.[/I][/I]
Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20
ارسال شده: شنبه ۱۱ دی ۱۳۹۵, ۱۲:۲۷ ب.ظ
توسط h.kiya
ممنون آقا سینا بابت راهنمایی مفیدتون
Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20
ارسال شده: سهشنبه ۱۴ دی ۱۳۹۵, ۲:۴۸ ب.ظ
توسط sinaset
باسلام دماسنج با سون سگمنت.
البته با سون سگمنت چندان جالب نیست! چون ،ایسی نیاز دارد،به مقداری زمان برای پاسخ دادن،که همین عامل باعث میشود صفحه لحظه ریفرش نشود!
اما با این وجود کدها خدمت همه کاربران:
(نسخه ساده اولیه)Please Login or Register to see this code[External Link Removed for Guests]برنامه.
باتشکر.
Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ
ارسال شده: چهارشنبه ۱۵ آذر ۱۳۹۶, ۹:۲۹ ب.ظ
توسط 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سگ
ارسال شده: پنجشنبه ۱۶ آذر ۱۳۹۶, ۱۰:۳۰ ق.ظ
توسط sinaset
سلام بر شما
خواهش میکنم . (البته مهندس نیستم..)
بله کدهای شناسایی در هر ایسی ذخیره شده است،می توانید بعد از ازمایشات و مشخص شدن هر ایسی براساس کدشناسایی دیگر کدشناسایی ارسال نکنید.(ضمن اینکه برای اطمینا بیشتر یکبار این ازمایش را با پرتئوس و همچنین سخت افزاری (بخصوص به صورت عملی! چون پرتئوس انچنان نمی شود به ان اطمینان کرد) ازمایش کنید .
در رابطه با سوال دومتان.چون خیلی وقته ان را ساخته ام،الان بخاطرم نیست علتش چیست! اما به کمک ان کد،ادرس ذخیره سازی متغییر در حافظه رم مشخص میشود(بصورت ثابت)! (اگر نوشته نشود،میکرو خودش براساس بایت های خالی ادرسی را پیدا و در ان اطلاعات را ذخیره سازی می کند) منتها در اینجا بنظرم نیازی برای مشخص کردن ادرس ثابت برای متغیر نیست! فکر میکنم زمانی که داشتم مدار را ازمایش میکردم،می خواستم بدانم،دقیقا چه مقدارهای در متغیر ریخته میشود (برای ازمایش و درک نحویه عملکرد).اگر ان را حذف کنید قاعدتا نباید مشکل باشد..
این سوالتان مثل سوال قبل جواب میدهم(چون درست بخاطرم نیست!) اما فکر میکنم،کدهایی یک ایسی زیاد بود! و با چند عدد از کدهایی ارسالی تفاوت احساس میشد! ضمن اینکه تاپیک جنبه اموزشی دارد،برای همین است،سعی شده بود،کدهایی ایسی به روی LCD نمایش داده شود،تا کاربران بتواند درک بهتره نسبت به ایسی و .. داشته باشند.
باتشکر.
Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ
ارسال شده: جمعه ۱۰ فروردین ۱۳۹۷, ۴:۲۲ ق.ظ
توسط sadegh42
سلام
ممنون از مطالبی که ارایه کردید
میتوانم خواهش کنم مدار را با دورقم(دو سون سگمنت) وعلامت منفی را با یک دیود نورانی هم ارایه کنید
با سپاس فراوان
Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ
ارسال شده: جمعه ۱۰ فروردین ۱۳۹۷, ۸:۵۹ ق.ظ
توسط sinaset
بنام خدا
باسلام
به درخواست کاربر محترم ..
ورژن 2 با 2 سون سگمنت و علامت منفی
در ورژن جدید،کدنویسی بهتره شده،ریفرش سون سگمنت بهتر و دقیق و درست تر انجام می میشود
در ورژن جدید دمایی منفی نیز نمایش داده میشود (با روشن شدن یک LED)
کدها:
Please Login or Register to see this codeدانلود برنامه و شبیه ساز از
[External Link Removed for Guests]باتشکر.
Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ
ارسال شده: جمعه ۱۰ فروردین ۱۳۹۷, ۱۲:۲۶ ب.ظ
توسط sadegh42
سلام
بزرگوار نمیدونم چطوری از شما تشکر کنم
فقط میتونم بگم :
خدا خیرت دهد

Re: آموزش راه اندازی سنسور دما دیجیتال DS18B20(دماسنج با 7سگ
ارسال شده: جمعه ۱۰ فروردین ۱۳۹۷, ۱۱:۱۳ ب.ظ
توسط sadegh42
سلام بزرگوار
سوال داشتم ونیاز به کمک حضرت عالی
1-اگر بخواهم خروجی سون سگمنت رو در پورتc قرار بدم و پین 1و2 سون سگمنت رو بندازم روی پایه 2و3 از ای سی(PD3 & PD2)
ds18b20 رو در پایه 23(PC0مثلا)چه تغیراتی در فایل ایجاد میشه
2- در پورت B سه عدد دگمه بزارم برای ست دما -بالا وپایین کردن نقطه SET POINT
ودر پورت D یک رله تا دما به اون نقطه رسید رله فعال بشه
منتظر راهنمایی جناب عالی هستم
با تشکر واحترام