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

Colonel II



نماد کاربر
پست ها

6615

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » سه شنبه 16 شهریور 1395 07:58

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

آموزش راه اندازی سنسور دما دیجیتال 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



نماد کاربر
پست ها

6615

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » يکشنبه 18 مهر 1395 16:08

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


ارتباط با ایسی DS18B20

ارتباط با ایسی بسیار ساده می باشد! به طور ساده،ما ابتدا یک دستور سرچ به به کمک 1wire می فرستیم! سپس ایسی کد شناسایی خودش را برای ما می فرستد! ما آن کد شناسایی را درون یک متغیر رشته ی ذخیر می کنیم، سپس در برنامه،هر وقت بخواهیم، دما را بخوانیم،کافیست! فقط کدشناسایی ایسی را براش از طریق 1wire بفرستیم، تا ایسی بعد از دریافت کد شناسایی،مقدار دمایی خود را برای ما بفرستد!

حال همین مراحل را در کد نویسی شرح می دهیم !

به غیر از کتابخانه مورد نیز، این کتابخانه انحصاری برای ایسی را فعال می کنیم :
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


سپس وارد حلقه main میشویم،در انجا یک متغیر اعشاری تعریف می کنیم (برای نمایش دما ایسی،با دقت 0.1 )
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


با دستور زیر، 1wire را مقدار دهی اولیه می کنیم (لازم به ذکر است،از طریق تنظیمات project/configure/c compiler/Libraries/1wire کتابخانه wire را فعال سازی کنید و پایه که ایسی به ان اتصال پیدا کرده است را مشخص کنید)
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

کل کدهایی برنامه:
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

2 کاربر از این پست سپاسگزاري کرده اند

New Member



no avatar
پست ها

5

تشکر کرده: 2 مرتبه
تشکر شده: 4 مرتبه
تاريخ عضويت

جمعه 10 دی 1395 23:00

آرشيو سپاس: 0 مرتبه در 0 پست

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

توسط h.kiya » شنبه 11 دی 1395 00:13

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

Colonel II

Colonel II



نماد کاربر
پست ها

6615

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » شنبه 11 دی 1395 09:16

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

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

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

متغیری تعریف میکنیم،که به کمک ان بتوانیم تعداد ایسی های موجود در مدار را بدست بیاوریم.
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


20 آرایه دو بعدی تعریف می کنیم،تا کدهایی شناسایی هر ایسی را در ان قرار دهیم.
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


20 متغیر از نوع اعشاری برای دمایی هر ایسی تعریف می کنیم
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


به کمک دستور مهم زیر،از ایسی های می خواهیم خودشان را معرفی کنند،سپس کدشناسایی هر ایسی را در یکی از ارایه های DS18B20_Rom_Codes قرار میدهیم.
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


در پایان نیز،مقدار دمای هر ایسی برای نمایش فرستاده میشود
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

2 کاربر از این پست سپاسگزاري کرده اند

New Member



no avatar
پست ها

5

تشکر کرده: 2 مرتبه
تشکر شده: 4 مرتبه
تاريخ عضويت

جمعه 10 دی 1395 23:00

آرشيو سپاس: 0 مرتبه در 0 پست

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

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

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

sinaset از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6615

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

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

باسلام

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


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

اما با این وجود کدها خدمت همه کاربران:
(نسخه ساده اولیه)
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

notrica11 از این پست سپاسگزاري کرده است

New Member



no avatar
پست ها

1

تشکر کرده: 3 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

شنبه 4 آذر 1396 17:53

آرشيو سپاس: 0 مرتبه در 0 پست

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

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

سلام مهندس جان. وقتتون بخیر
تشکر بابت مطالب مفیدی که داخل سایت گذاشتید.
ببخشید چندتا سوال داشتم . ممنون میشم اگه منو راهنمایی کنید.
در مورد 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



نماد کاربر
پست ها

6615

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

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

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

2ehsan67 از این پست سپاسگزاري کرده است

New Member



no avatar
پست ها

3

تشکر کرده: 1 مرتبه
تشکر شده: 1 مرتبه
تاريخ عضويت

جمعه 10 فروردین 1397 02:38

آرشيو سپاس: 0 مرتبه در 0 پست

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

توسط sadegh42 » جمعه 10 فروردین 1397 03:22

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

Colonel II

Colonel II



نماد کاربر
پست ها

6615

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » جمعه 10 فروردین 1397 07:59

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

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

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


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

کدها:


کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


دانلود برنامه و شبیه ساز از  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

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

New Member



no avatar
پست ها

3

تشکر کرده: 1 مرتبه
تشکر شده: 1 مرتبه
تاريخ عضويت

جمعه 10 فروردین 1397 02:38

آرشيو سپاس: 0 مرتبه در 0 پست

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

توسط sadegh42 » جمعه 10 فروردین 1397 11:26

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

sinaset از این پست سپاسگزاري کرده است

New Member



no avatar
پست ها

3

تشکر کرده: 1 مرتبه
تشکر شده: 1 مرتبه
تاريخ عضويت

جمعه 10 فروردین 1397 02:38

آرشيو سپاس: 0 مرتبه در 0 پست

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

توسط sadegh42 » جمعه 10 فروردین 1397 22:13

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

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

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

بعدي

 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 1 مهمان