در این پروژه قصد داریم تا یک دماسنج دیجیتالی بسازیم که علاوه بر نمایش دما بتوانیم دمای محیط را نیز کنترل کنیم. در مدار طراحی شده برای این پروژه، جهت اندازه گیری دما از سنسور دما DS18B20 که یک سنسور دیجیتالی اندازه گیری دما بسیار دقیق می باشد استفاده کردیم. همچنین پس از اندازه گیری دما توسط سنسور دما DS18B20 برای نمایش میزان دمای اندازه گیری شده از ماژول سون سگمنت 4 رقمه TM1637 استفاده شده است.
در طراحی مدار این پروژه یک رله نیز تعبیه شده است که در هنگامیکه دما از مقدار تعیین شده بیشتر شود، رله فعال می شود و تا مادامی که دما از مقدار تعیین شده ما بیشتر باشد رله روشن می ماند.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
سنسور دمای DS18B20 دیجیتال-اورجینال | 1 عدد |
ماژول نمایشگر سون سگمنت 4 رقمی TM1637 | 1 عدد |
ماژول رله 5 ولت مدل 1 کانال | 1 عدد |
مقاومت 4.7 کیلو اهم با توان 0.25 وات و تلرانس 5 درصد | 1 عدد |
تک سوئیچ 2 پایه DIP سایز 6x6x5 میلیمتر | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
آداپتور 12V ولت 2A آمپر مدل بین راهی ساخت ایران | 1 عدد |
مرحله اول : اتصال سنسور دما DS18B20 به برد آردوینو
1- ابتدا سنسور دما DS18B20 را همانند تصویر زیر مقابل خود بگیرید.
2- پایه VDD یا VCC سنسور دمای DS18B20 را به پایه دیجیتال شماره 8 برد آردوینو متصل کنید.
3- پایه DQ سنسور دمای DS18B20 را به پایه دیجیتال شماره 9 برد آردوینو متصل کنید.
4- پایه GND سنسور دمای DS18B20 را به پایه دیجیتال شماره 10 برد آردوینو متصل کنید.
5- یک سر مقاومت 4/7 کیلو اهمی را به پایه دیجیتال شماره 8 برد آردوینو متصل کنید.
6- سر دیگر مقاومت 4/7 کیلو اهمی را به پایه دیجیتال شماره 9 برد آردوینو متصل کنید.
مرحله دوم : اتصال کلید به برد آردوینو
از این کلید برای ورود به منوی تنظیمات و تنظیم مقدار دمای دلخواه جهت کنترل دمای محیط بر حسب آن، استفاده می شود. که می توانید آنرا طبق توضیحات و نقشه شماتیک زیر به برد آردوینو متصل کنید.
1- یکی از پایه های تک سوئیچ را به پایه GND بر روی برد آردوینو متصل کنید.
2- پایه دیگر تک سوئیچ را به پایه دیجیتال شماره 12 بر روی برد آردوینو متصل کنید.
مرحله سوم : اتصال ماژول رله 5 ولت 1 کانال به برد آردوینو
1- پایه GND ماژول رله را به پایه GND بر روی برد آردوینو متصل کنید.
2- پایه +5V یا VCC ماژول رله را به پایه 5V بر روی برد آردوینو متصل کنید.
3- پایه IN ماژول رله را به پایه دیجیتال شماره 5 برد آردوینو متصل کنید.
مرحله چهارم : اتصال ماژول نمایگشر سون سگمنت TM1637
1- پایه GND ماژول سون سگمنت TM1637 را به پایه GND بر روی برد آردوینو متصل کنید.
2- پایه VCC ماژول سون سگمنت TM1637را به پایه 3.3V بر روی برد آردوینو متصل کنید.
3- پایه DIO ماژول سون سگمنت TM1637 را به پایه دیجیتال شماره 3 برد آردوینو متصل کنید.
4- پایه CLK ماژول سون سگمنت TM1637 را به پایه دیجیتال شماره 2 برد آردوینو متصل کنید.
مرحله پنجم : نصب کتابخانه TM1637.h در نرم افزار آردوینو
1- نرم افزار آردوینو را بر روی سیستم خود اجرا کنید، اگر بار اول است که با برد Arduino کار می کنید و این نرم افزار را بر روی سیستم خود ندارید، می توانید نرم افزار آردوینو و نحوه نصب آن را از اینجا دریافت نمائید.
2- کتابخانه TM1637.h را از اینجا دانلود کنید.
3- مسیر زیر را از طریق منوی نوار ابزار در نرم افزار آردوینو طی کنید و سپس در پنجره نهایی فایل کتابخانه Grove_4-Digit_Display را که دانلود کرده اید، جهت افزودن انتخاب کنید.
Sketch > Include Library > Add .ZIP Library…
مرحله ششم : نصب کتابخانه DallasTemperature.h در نرم افزار آردوینو
1- کتابخانه DallasTemperature.h را از اینجا دانلود کنید.
2- مسیر زیر را از طریق منوی نوار ابزار در نرم افزار آردوینو طی کنید و سپس در پنجره نهایی فایل کتابخانه DallasTemperature را که دانلود کرده اید، جهت افزودن انتخاب کنید.
Sketch > Include Library > Add .ZIP Library…
مرحله هفتم : نصب کتابخانه OneWire.h در نرم افزار آردوینو
1- کتابخانه OneWire.h را از اینجا دانلود کنید.
2- مسیر زیر را از طریق منوی نوار ابزار در نرم افزار آردوینو طی کنید و سپس در پنجره نهایی فایل کتابخانه OneWire را که دانلود کرده اید، جهت افزودن انتخاب کنید.
Sketch > Include Library > Add .ZIP Library…
مرحله هشتم : پروگرام کردن برنامه بر روی برد آردوینو
1- برد آردوینو را از طریق کابل USB به کامپیوتر متصل کنید.
2- نرم افزار آردوینو را بر روی سیستم خود اجرا کنید، اگر بار اول است که با برد Arduino کار می کنید و این نرم افزار را بر روی سیستم خود ندارید، می توانید نرم افزار آردوینو و نحوه نصب آن را از اینجا دریافت نمائید.
3- پس از اجرای نرم افزار آردوینو، از طریق منوی File بر روی گزینه New کلیک کنید.
4- تمامی کدهای زیر را کپی کنید و در پنجره جدید باز شده بچسبانید (Paste).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
//********************Temp Control Relay int PinRelay = 5; //********************Display int PinClkLcd = 2; int PinDioLcd = 3; #include <TM1637.h> #define CLK PinClkLcd #define DIO PinDioLcd TM1637 Display1(CLK, DIO); //********************Temp int PinVccTemp = 8; int PinDataTemp = 9; int PinGndTemp = 10; #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS PinDataTemp OneWire oneWire(ONE_WIRE_BUS); DallasTemperature Temp(&oneWire); int8_t Digitos[] = {8, 8, 8, 8}; int Temp_IN; int TempSettings = 33; //********************Switch int PinSW = 12; int TimeSW; int TimeDisplay; boolean Key; void setup() { Temp.begin(); Display1.set(7); Display1.init(); Display1.display(Digitos); Display1.point(POINT_OFF); pinMode(PinSW, INPUT_PULLUP); pinMode(PinRelay, OUTPUT); pinMode(PinVccTemp, OUTPUT); pinMode(PinGndTemp, OUTPUT); digitalWrite(PinRelay, HIGH); digitalWrite(PinVccTemp, HIGH); Temp.requestTemperatures(); delay(1000); } void loop() { Temp.requestTemperatures(); Temp_IN = Temp.getTempCByIndex(0); int8_t Digit2 = Temp_IN % 10 ; int8_t Digit1 = (Temp_IN % 100) / 10 ; Digitos[3] = 12 ; Digitos[2] = Digit2 ; Digitos[1] = Digit1 ; Digitos[0] = 19 ; Display1.display(Digitos); while (digitalRead(PinSW) == 0) { TimeSW++; if (TimeSW >= 3000) Settings(); delay(1); } TimeSW = 0; if (Temp_IN > TempSettings) digitalWrite(PinRelay, LOW); if (Temp_IN < TempSettings) digitalWrite(PinRelay, HIGH); } void Settings() { TimeSW = 0; Key = 1; while (true) { TimeSW++; TimeDisplay++; int8_t Digit2 = TempSettings % 10 ; int8_t Digit1 = (TempSettings % 100) / 10 ; if (TimeDisplay < 100) { Digitos[3] = 12 ; Digitos[2] = Digit2 ; Digitos[1] = Digit1 ; } else { Digitos[3] = 19 ; Digitos[2] = 19 ; Digitos[1] = 19 ; } Digitos[0] = 19 ; if (TimeDisplay > 200) TimeDisplay = 0; Display1.display(Digitos); if (digitalRead(PinSW) == 0 && Key == 0) { Key = 1; TimeSW = 0; TempSettings++; if (TempSettings > 99 ) TempSettings = 0; } if (digitalRead(PinSW) == 1 && Key == 1)Key = 0; if (TimeSW >= 3000) break; delay(1); } TimeSW = 0; } |
5- حال از طریق منوی File گزینه Save را انتخاب کنید و برنامه را در محل دلخواه خود ذخیره کنید.
6- پس از ذخیره برنامه از طریق منوی Tools به زیر منوی Board رفته و از لیست کشویی باز شده آیتم Arduino/Genuino Uno را انتخاب کنید.
7- دوباره از طریق همان منوی Tools به زیر منوی Port رفته و از لیست کشویی باز شده شماره پورت USB که از طریق آن برد آردینو به کامپیوتر متصل شده است را انتخاب کنید.
8- در پایان برای انتقال برنامه به برد آردوینو کافیست تا بر روی آیکون در نرم افزار آردوینو در نرم افزار آردوینو کلیک کنید.
مرحله نهم : راه اندازی پروژه
1- برد آردوینو را به صورت کامل از کامپیوتر جدا کنید.
2- توسط یک آداپتور 12 ولت DC با حداقل جریان 500 میلی آمپر برد آردوینو را راه اندازی کنید.
3- در صورتیکه در هنگام ساخت پروژه، تمامی مراحل قبل را به درستی انجام داده باشید باید دمای محیط را بر روی نمایشگر سون سگمنت مشاهده کنید.
4- در حالت پیش فرض مقدار دمای کنترل محیط بر روی عدد 33 درجه سانتی گراد تنظیم شده است. این به این معنا است که اگر دمای محیط از 33 درجه بیشتر شود رله روشن می شود و اگر دما محیط کمتر از 33 درجه شود رله خاموش می شود.
مرحله دهم : تغییر مقدار دمای کنترل محیط
1- کلید فشاری را به مدت 3 ثانیه نگه دارید، تا زمانیکه عدد دمای کنترل فعلی به صورت چشمک زن بر روی نمایشگر سون سگمنت ظاهر شود.
2- حال می توانید با هر بار فشار کلید، مقدار دمای مورد نظر خود را انتخاب کنید.
3- پس از انتخاب دمای مورد نظر برای ذخیره و اعمال تنظیم، تنها کافی است به مدت حداقل 3 ثانیه به کلید دست نزنید.
سلام دوست عزیز
روزانه ما بیش از 100 کامنت و ایمیل دریافت می کنیم که پاسخگویی به همه آن ها کار بسیار دشوار و زمانبری است. به همین دلیل واقعا زمان کافی برای توسعه و ویرایش پروژه ها نداریم.
پیشنهاد میکنیم برای یادگیری نحوه راه اندازی سنسور LM35 مطالب زیر را مطالعه فرمایید:
اندازه گیری دما منفی و مثبت با سنسور دما LM35 و آردوینو
سلام ببخشید هی مظاهم می شم
من برنامرو کمی تغییر دادم می خواستم ببینم کار می کنه یا نه. بجای اینکه از سون سگمنت استفاده کنم میتونم از lcd 16 2
ممنون می شم جواب بدید
سلام دوست عزیز
همانطور که در پاسخ قبلی ذکر شد ما زمان کافی برای توسعه پروژه ها بنا به نیاز هر کاربر را نداریم و این موضوع کاملا بر عهده خود کاربر است.
همچنین برنامه ای که گذاشته اید ناقص است. پیشنهاد میکنیم قبل از شروع به طراحی پروژه، از قسمت آموزش برنامه نویسی آردوینو در سایت الکترونیک98، نحوه برنامه نویسی برای برد آردوینو را فرا بگیرید و سپس شروع به توسعه و ویرایش پروژه ها نمایید.
سلام
من رله ۵ ولت چهارتا میخوام وصل کنم که چهار تا فن بذارم باید چیکار کنم؟
فن رو که وصل میکنید تو پروژه ی سیم جداگونه براش میاد اون چیه
سلام دوست عزیز
می توانید از یک ماژول رله 4 کانال استفاده کنید. همچنین در این پروژه از آنجا که فن دارای ولتاژ کاری 12 ولت است از یک منبع تغذیه جداگانه برای راه اندازی آن استفاده کرده ایم.
سلام چطوری این کتابخونه ها رو تو آردوینو بیاریم
میشه جواب بدید
سلام دوست عزیز
توضیحات موجود در مرحله پنجم الی مرحله هفتم را که در توضیحات پروژه درج شده را مطالعه فرمایید. و مطابق توضیحات داده شده در نرم افزار آردوینو مسیر زیر را جهت افزودن کتابخانه ها دنبال کنید:
Sketch > Include Library > Add .ZIP Library…
سلام خسته نباشید این پروژه میتونه دمای منفی هم اندازه گیری کنه
سلام من کتابخانه هارا نصب کردم بالای قسمت void setup
اومده 👇
<include <TM1637.h#
درسته؟؟؟؟؟
بعد فایل جدید باز کنم!
واینکه نمیدونم ! قسمت هشت همه کد ها را کپی کنم ؟؟؟
و هم در setup
هم در loop همه کد ها را paste کنم ؟؟؟
لطفا راهنماییم کنید
مخصوصا کد های مرحله هشت که نمیدونم کدوم قسمت و کجا paste کنم
لطفا راهنماییم کنید
سلام دوست عزیز
در نرم افزار آردوینو یک پروژه جدید ایجاد کنید سپس هر آنچه درون پروژه جدید است پاک کنید، حال برنامه ارائه شده در مرحله هشتم را به صورت کامل کپی کنید و در نرم افزار آردوینو بچسبانید.
لینک پروژه که قرار دادید دانلود نمیشه هرچقدر کلیک میکنم مشکل کجاست؟
سلام دوست عزیز
لینک دانلود بررسی شد و مشکلی یافت نشد، در هنگام دانلود اگر از ابزار تغییر آی پی استفاده می کنید حتما آنرا غیرفعال کنید.
همچنین فایل پروژه از طریق ایمیل نیز برای شما ارسال گردید
ببخشید کد ها ی فایل زمان آپلود ارور میده منم دلیلشو نمیفهمم میشه شماره ای برای من بفرستید که در واتساپ یا…
فیلمش را برتون بفرستم چند روزا دارم تلاش میکنم
اما هر دفعه ارور میده
لطفا راهنماییم کنید🌹
خطا نشان میدهد این قسمت از کد را
;Display1.display(Digitos)