اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20

اندازه گیری همزمان دمای چهار نقطه

در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای کاربردی و حرفه ای با عنوان, اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. گاهی مواقع لازم است تا توسط یک دستگاه دمای چندین نقطه را اندازه گیری کنید و مقادیر به دست آمده را به صورت جدا از طریق LCD کاراکتری تعبیه شده در مدار به کاربران نمایش دهید،

همانطور که می دانید اگر بخواهیم برای عملی کردن این پروژه از سنسورهای معمول همانند سنسور دما LM35 یا دیگر سنسورهای مشابه استفاده کنیم باید برای هر سنسور دما از یک پایه مستقل در میکروکنترلر AVR استفاده کنیم. به همین دلیل در برخی پروژه ها به دلیل میزان گستردگی پروژه بیشتر پایه های میکروکنترلر AVR مورد استفاده قرار می گیرند و ما با محدودیت پایه های میکروکنترلر روبه رو می شویم.

بعد قبل
اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20
اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20

اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20
اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20
بعد قبل


نقشه شماتیک پروژه

نقشه شماتیک پروژه اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20

لیست قطعات مورد نیاز

مقاومت 1 کیلو اهم با توان 0.25 وات و تلرانس 5 درصد4 عدد
مقاومت 10 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد4 عدد
مقاومت 4.7 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد1 عدد
پتانسیومتر خوابیده 10K کیلو اهم تک‌دور مدل DIP1 عدد
دیود 1N40076 عدد
خازن الکترولیتی 470uf میکروفاراد 16 ولت1 عدد
خازن عدسی 100nF نانوفاراد2 عدد
رگولاتور ولتاژ 5 ولت L78051 عدد
سنسور دمای DS18B20 دیجیتال-اورجینال4 عدد
آی سی ULN2804A مدل DIP اورجینال1 عدد
میکروکنترلر ATMEGA8A-PU مدل DIP تایوانی با 28 پایه1 عدد
سوکت آی سی 28 پایه باریک مدل معمولی1 عدد
سوکت آی سی 18 پایه مدل معمولی1 عدد
ترمینال پیچی 2 پین مدل KF300 رنگ آبی1 عدد
ترمینال پیچی 3 پین مدل KF300 رنگ آبی4 عدد
لامپ LED قرمز سایز 3mm میلی متر مدل مات4 عدد
LCD کاراکتری مدل 16×2 با Backlighting آبی1 عدد
پین هدر نری صاف 1x40 با ارتفاع 11 میلیمتر - مشکی1 عدد
پین هدر مادگی صاف 1x40 با فاصله پایه 2.54 میلیمتر - مشکی1 عدد
تک سوئیچ 4 پایه DIP سایز 6x6x5 میلیمتر4 عدد
رله 12V ولت معمولی تک کنتاکت با جریان 10 آمپر4 عدد
آداپتور 12V ولت 2A آمپر مدل بین راهی ساخت ایران1 عدد

ساخت دماسنج با سنسور DS18B20

در این پروژه دمای چهار محیط مختلف را با استفاده از 4 سنسور دمای DS18B20 مجزا اندازه گیری می کنیم و سپس با استفاده از مقادیر به دست آمده میزان دما محیط را کنترل می کنیم و همچنین توسط میکروکنترلر ATmega8 از خانواده میکروکنترلرهای AVR, مقدار دمای اندازه گیری شده را بر روی صفحه نمایش ال سی دی کاراکتری 2*16 نمایش می دهیم. برای راه اندازی سنسور دمای DS18B20 با میکروکنترلر AVR باید از پروتکل ارتباط 1-WIRE استفاده نمود. به همین دلیل شما می توانید هر تعداد سنسور دمای DS18B20 را فقط توسط یک پایه از میکروکنترلر AVR به صورت همزمان راه اندازی کنید و دمای اندازه گیری شده توسط هر سنسور را به صورت کاملا مجزا توسط میکروکنترلر AVR فراخوانی کنید.

پروتکل ارتباطی WIRE-1 یکی از جدید ترین پروتکل های استفاده شده در میکروکنترلرهای AVR, که توسط شرکت Dallas طراحی شده است. برعکس بقیه پروتکل ها, محدودیت کابل استفاده شده آن تا 30 متر است. این پروتکل شبیه به پروتکل های شبکه طراحی شده است و قابلیت شناسایی سیستم های متصل به میکرو را دارد. سرعت شناسایی 50 سیستم در ثانیه است. سیستم هایی که به این روش مجهز هستند دارای یک ID به طول 8 بایت بوده که شناسه سیستم مورد نظر است و همین ID توسط میکرو باید در اول برنامه, برای پیدا کردن سیستم مورد نظر, جستجو شود. لازم به ذکر است در این پروژه برنامه میکروکنترلر AVR در محیط نرم افزار BASCOM-AVR و به زبان بیسیک BASIC نوشته شده است.


نقشه جاگذاری قطعات بر روی برد PCB

نقشه جاگذاری قطعات بر روی PCB پروژه اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20

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

هویه1 عدد
سیم لحیم1 عدد
کف چین1 عدد
قلع کش1 عدد

نحوه کنترل دما محیط

یکی از ویژگی های برجسته این پروژه کنترل دما محیط می باشد. این قسمت از پروژه به این صورت عمل می کند که کاربر می تواند یک بازه دما برای هر سنسور به صورت جداگانه تعیین کند، تا در صورتیکه دمای اندازه گیری شده از بازه تعیین شده بیشتر یا کمتر شد رله مربوط به آن سنسور فعال گردد. به این ترتیب کاربر می تواند با اتصال وسیله گرمایشی یا سرمایشی به خروجی رله ها اقدام به کنترل اتوماتیک دما آن محیط نماید.


ویدیو ضبط شده از نحوه راه اندازی و عملکرد پروژه

در زیر یک ویدئو از نحوه عملکرد پروژه ساخته شده اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20 ضبط شده است, که می توانید برای درک بیشتر از نحوه عملکرد پروژه به صورت آنلاین مشاهده و یا از انتهای همین پست دانلود نمائید.

 


دانلود مستندات پروژه

توجه: به دلیل توقف فعالیت سایت امکان دریافت پروژه وجود ندارد.

 اطلاعات پروژه

 رمز فایل : www.electronics98.com (این مطلب فاقد فایل جهت دانلود است)

 محیط برنامه نویسی : Bascom-AVR

 برنامه نویسی شده به زبان : Basic

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 17 ژانویه 2018

40 دیدگاه

  1. سلام من این پروژه رو خریداری کردم و راه اندازه کردم تموم شده فقط با توجه به کاری که میخام انجام بدم میخام مثلا در پایین بازه دما که انتخاب کردیم کار روشن بشه و بالای بازه روشن نشه ، الان سیستم فقط در بین بازه خاموشه و بالای بازه و پایین بازه روشنه میخام مثلا فقط در پایین بازه روشن بشه ، ممنون میشم راهنمایی کنید مرسی

  2. سلام دوست عزیز
    من دقیقا متوجه سوال شما نشدم، عملکرد این پروژه به این صورت است که اگر دما از میزان دما پائین که تعریف شده کمتر باشد رله دمای پایین وصل می گردد به عنوان مثال اگر شما حد دمای پایین را بر روی عدد 5 درجه قرار دهید و دمای محیط 4 درجه شود رله مربوط به دمای پایین فعال می شود. همچنین برای دمای بالا نیز به همین صورت است، اگر دمای محیط از دمای تنظیم شده برای حد بالا بیشتر شود، رله دمای بالا فعال می شود.

  3. الان من حد بالا و حد پایین تعریف کردم برای یک رله و وقتی دما پایین حد هستش و بالای حد هستش رله مربوط به سنسور فعال میشه و در هر دو حالت که فعال میشه از یه خروجی جریان برقرار میشه دیگه اینجا رله دمای پایین و رله دمای بالا نداره چون خروجی جریان در هر دو حالت حد پایین و حد بالا یکی است ، یعنی در هر دو حالت خروجی جریان شبیه هم هستن ، و هر دو جریان از خروجی کام و خروجی nc است، من هم میخام مثلا در بالای حد دمای انتخاب شده دیگه رله فعال نشه ، و الان من بازه رو گذاشتم بین ۶۰ تا ۷۰ درجه و مشکل دیگه که دارم اینه که مثلا وصل کردم به مشعل و همین که دما رو میرسونه به ۶۰ درجه مشعل رو خاموش میکنه و همین که میره رو ۵۹ دوباره روشن میکنه میخاستم ببینم راهی هست که حداقل یه ۵ درجه بین استارت و استپ رله تاخیر بندازیم تا همش خاموش روشن نکنه ،مرسی

  4. سلام دوست عزیز
    تنها راه اینکه پروژه به شکل دلخواه شما عمل بکنه این است که، برنامه پروژه را بسته به نیاز خود ویرایش و یا توسعه دهید. برای این منظور در برنامه باید در قسمت زیر برنامه Chek_temp شرط های بررسی وضعیت دما را تغییر دهید.

  5. سلام مجدد من قسمت chek_temp را تغییر دادم و مشکل فعال شدن رله را در بالای بازه و یا پایین بازه را حل کردم و الان یه موضوع دیگه دارم که اگه اینم راهنمایی کنید از کجا میشه حل کرد ممنون میشم . میخام حالتی باشه که مثلا وقتی دما رسید به بازه مینیمم رله فعال بشه و وقتی رسید به ماکزیمم بازه رله خاموش بشه . یعنی رله در پایین بازه وقتی فعال میشه ،فعال باقی بمونه تا دما برسه به بالای بازه بعد خاموش بشه .منظورم اینه وقتی روشن شد در خود بازه هم روشن بمونه و رسید به بالای بازه خاموش بشه . ممنون میشم اینم بگید چطوری حل کنم مرسی

  6. اگر در قسمت chek_temp این عبارت را بزارم درست میشه ؟ یعنی فعال شدن رله قبل از مینیمم بازه و فعال شدن رله تا ماکزیمم بازه ؟ اگر درسته که بفرمایید اعمال کنیم مرسی
    Ss > Str(var_temp3_min) And Ss = Str(var_temp3_max)

  7. سلام دوست عزیز
    برای روشن شدن رله در مینیمم دما، و خاموش شدن آن در ماکزیمم دما دستور شرطی به صورت زیر می شود:

  8. مهندس سلام من این دستور شرطی رو انجام دادم و بود و نبود خط 4 تاثیری نداشت تو اجرا – الان تو این دستور در زیر بازه رله فعال است و در بازه هم رله فعال است و وقتی میرسد به ماکزیمم بازه رله خاموش میشود و همین که دما میاد پایین و همین که نقطه ماکزیمم را رد میکند مجدد روشن میشود . و من میخام وقتی در پایین بازه و خود بازه روشن هست برای استارت مجدد رله از ماکزیمم استارت نخورد و از مینیمم استارت بخورد -یعنی میخام در زیر بازه روشن و خود بازه روشن بعد اینکه خاموش شد دوباره از زیر بازه و یادر مینیمم روشن بشود – ممنون میشم کمکم کنید – الان 3-4 روزه درگیرم

  9. سلام دوست عزیز
    دستور را به شکل زیر وارد نمائید:

  10. مهندس سلام خسته نباشید ، واقعا ممنونم بابت تمام زحماتی که میکشید و راهنمایی های که صبورانه انجام میدید ، میتونم بگم یکی از بهترین سایت ها هستید که هم به روز هست و خدمات و پشتیبانی عالی داره ، انشاالله موفق و پیروز باشید ، من چنتا پروژه دیگه میخام از سایتتون تهیه کنم ولی گفتم اول یکم در مورد برنامه نویسی یاد بگیرم بعد ، به همین دلیل شما آموزش یا کتابی چیزی دارید یا توصیه میکنید که دستور ها و پارامترها و برنامه نویسی های این میکرو ها رو آموزش بده تا تهیه کنم یکم هم برنامه نویسی و با دستورات آشنا بشم ، ممنون

  11. سلام دوست عزیز
    بسیار خوشحالیم که توانسته ایم رضایت شما دوست و کاربر عزیز سایت را بدست آوریم. همچنین بازخوردها و نظرات دلگرم کننده شما دوستان مهربان باعث می شود تا با امید بیشتری در این راه گام برداریم و بابت این موضوع از شما سپاسگذاریم.
    برای یادگیری برنامه نویسی میکروکنترلرها و سایر بردهای توسعه دهنده می توانید از مطالب آموزشی موجود در سایت استفاده کنید، به عنوان مثال برای یادگیری زبان برنامه نویسی بیسیک می توانید لینک زیر را دنبال نمائید:

    آموزش برنامه نویسی بیسیک

    و برای یادگیری برنامه نویسی و کار با برد آردوینو لینک زیر را دنبال کنید:

    آموزش پروژه محور آردوینو

  12. ببخشید میشه لیست وسایلشو بگین؟؟

  13. فرهاد اکبری

    سلام دوست عزیز
    لیست قطعات درون فایل پروژه، در قالب فایل PDF با نام Part_List.pdf موجود است.

  14. سلام و خسته نباشید
    من پروژه را خریداری کردم
    بعد از پیاده سازی الان منو ها میاد و تنظیمات هم می توان انجام داد ولی سنسورم که از نوع سیمی (ضدآب) هست را بهش وصل می کنم نمیشناسه و همش اعدادش خود به خود تغییر میکنه اگر هم سنسور بهش وصل نباشه باز هم اعداد همینطوری الکی میاد و میره
    یه دونه سنسور هم وصل می کنم باز هم همینطوری هست.
    بعد از ده دقیقه که وصل هست همه سنسورها میشه صفر و همینطوری صفر میمونه.
    قطعات مدار رو چندین بار تست کردم اداپتور سویچینگ 12 ولت 10 آمپر استفاده کردم
    هیچ دستکاری توی برنامه نکردم و فیوز بیت ها رو هم با پروگرمر tnm2000+ به صورت زیر روی ic اتمگا atmega8a-pu زدم که هر باری که سنسورها رو وصل می کنم به همین شکل هست الان سه روزه دارم روش کار میکنم ولی درست نشده، سنسور ها رو هم نو خریدم و همگی سالم هستند، چیپشون اورجینال هست
    تروخدا بگید چکار کنم چرا اینطوریه
    لطفاً فیلم رو ببنید و همچنین فیوزبیت ها رو هم عکس گذاشتم ببنید

    اندازه گیری همزمان دمای چهار نقطه با سنسور DS18B20
  15. سلام دوست عزیز
    تصویر مربوط به تنظیم فیوزبیت ها نشان می دهد که فیوزبیت های میکروکنترلر به درستی تنظیم شده اند. آیا شما در مدار مقاومت R5 که مقدار آن 4.7 کیلو اهم است را نصب کرده اید؟ چراکه این مقاومت در ویدیو قابل مشاهده نبود، اگر این مقاومت در مدار نصب نشده باشد عملیات اندازه گیری دما به درستی انجام نخواهد شد.
    همچنین پیشنهاد می کنیم یکبار مدار را با یک سنسور DS18B20 معمولی (همانند سنسورهای موجود در تصاویر پروژه) آزمایش کنید و عملکرد مدار را بررسی کنید و همچنین مدار را هر بار با یکی از سنسورهای ضد آب تست کنید، شاید یکی از سنسورها معیوب باشد و در عملکرد مدار تاثیر بگذارد.
    نکته بعدی که در ویدیو ارسالی شما جای تعجب دارد این موضوع است که چرا در مدارتان حتی بعد از کشیدن سنسورها هنوز اعداد تغییر می کنند!!! چراکه در صورت قطع سنسورها باید عدد 127 بر روی نمایشگر نشان داده شود! این موضوع شاید به این علت باشد که پایه PortB.6 میکروکنترلر شما که مربوط به اتصال پایه داده سنسورها می باشد آسیب دیده است، برای فهمیدن این موضوع لطفا میکروکنترلر خود را تعویض کنید.

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

 از ارسال لینک‌های سایت‌های دیگر و ارایه‌ی اطلاعات شخصی خودتان مثل شماره تماس، ایمیل و آی‌دی شبکه‌های اجتماعی پرهیز کنید.