فهرست مطالب:

مدل کولر گازی آردوینو: 6 مرحله ای
مدل کولر گازی آردوینو: 6 مرحله ای

تصویری: مدل کولر گازی آردوینو: 6 مرحله ای

تصویری: مدل کولر گازی آردوینو: 6 مرحله ای
تصویری: ترکید😱😭 2024, نوامبر
Anonim
مدل کولر گازی آردوینو
مدل کولر گازی آردوینو

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

با استفاده از کیت میکروکنترلر آردوینو و نسخه های MATLAB 2016b و 2017b ، ما توانستیم این نتایج را با موفقیت نسبی نشان دهیم.

مرحله 1: تجهیزات

تجهیزات
تجهیزات

کیت میکروکنترلر با موارد زیر:

-Sparkfun Red Board

-Sparkfun Breadboard

-LCD Board

-پتانسیومتر

-حسگر دما

-سروو

-آداپتور USB/Arduino

سیم های جهنده (حداقل 25 عدد)

لپ تاپ (ویندوز 10) با ورودی USB

چاپ شی سه بعدی (اختیاری)

مرحله 2: راه اندازی میکروکنترلر

راه اندازی میکروکنترلر
راه اندازی میکروکنترلر
راه اندازی میکروکنترلر
راه اندازی میکروکنترلر
راه اندازی میکروکنترلر
راه اندازی میکروکنترلر
راه اندازی میکروکنترلر
راه اندازی میکروکنترلر

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

تصاویر هر مدل جداگانه را می توانید در دفترچه راهنمای ابزار میکروکنترلر یا در وب سایت آن به آدرس https://learn.sparkfun.com/tutorials/tags/arduino؟page=all مشاهده کنید.

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

برای مرجع:

LCD: c1-16

سرو: i1-3 (GND + -)

سنسور دما: i13-15 (- GND +)

پتانسیومتر: g24-26 (- GND +)

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

اتصال پتانسیومتر به LCD: f25 - e3

سیم Servo GND: j1 - ورودی دیجیتال 9

سنسور دما GND: j14 - ورودی آنالوگ 0

ورودی های LCD: e11-e15-ورودی دیجیتال 2-5

e4 - ورودی دیجیتال 7

e6 - ورودی دیجیتال 6

(توجه: در صورت موفقیت آمیز ، هر دو چراغ لبه LCD باید چشمک بزنند و پتانسیومتر می تواند با تنظیم قدرت از آداپتور ، روشنایی آن را تنظیم کند.)

اختیاری: از یک شی چاپ سه بعدی به عنوان بخشی از الزامات استفاده شد. برای جلوگیری از آسیب احتمالی به قطعات شکننده ، یک قاب بزرگ به عنوان یک آستین در اطراف LCD قرار داده شد. اندازه صفحه نمایش LCD تقریباً 2-13/16 "x 1-1/16" x 1/4 "بود و بنابراین فقط ارتفاع به طور قابل توجهی تغییر کرد. اگر چاپگر سه بعدی به راحتی در دسترس است ، افزودن یک شی شخصی را در نظر بگیرید. ، هر چند غیر ضروری. همچنین ، توجه داشته باشید که اندازه گیری ها ممکن است متفاوت باشد.

مرحله 3: راه اندازی MATLAB

راه اندازی متلب
راه اندازی متلب
راه اندازی متلب
راه اندازی متلب

نصب نسخه به روزتری از MATLAB (2016a به بعد) ، که در وب سایت MathWorks موجود است https://www.mathworks.com/products/matlab.html؟s_tid=srchtitle. پس از باز شدن ، به برگه های افزودنی در برگه Home بروید و "بسته پشتیبانی MATLAB برای سخت افزار آردوینو" را بارگیری کنید تا دستورات میکروکنترلر در دسترس باشند.

پس از اتمام ، می توان آزمایشی را برای یافتن اتصال میکروکنترلر به رایانه/لپ تاپ انجام داد. پس از اتصال آنها با آداپتور USB از کیت ابزار ، دستور "fopen (serial ('nada'))" را وارد کنید.

یک پیغام خطا ظاهر می شود که کانکتور را به عنوان "COM#" نشان می دهد ، که برای ایجاد یک شیء آردوینو لازم است مادامی که ورودی یکسان در همه زمانها باشد.

به دلیل عدم اتصال مستقیم LCD به کتابخانه آردوینو ، برای نمایش پیام ها باید کتابخانه جدیدی ایجاد شود. توصیه این است که پس از جستجوی "Arduino LCD" و قرار دادن آن در پوشه +arduinoioaddons ، یک فایل LCDAddon.m از مثال LCD موجود در پنجره راهنمای MATLAB ایجاد کنید ، یا از پوشه فشرده متصل شده استفاده کرده و تمام محتوای آن را در موارد فوق کپی کنید. پوشه

در صورت موفقیت ، کد ایجاد یک شیء Arduino در MATLAB مطابق شکل زیر است.

a = arduino ("com#" ، "uno" ، "Libraries" ، "ExampleLCD/LCDAddon") ؛

مرحله 4: توابع

کارکرد
کارکرد
کارکرد
کارکرد

یک تابع MATLAB ایجاد کنید. برای ورودی ها از متغیرهای "eff" و "T_min" استفاده می کنیم. برای خروجی ها ، هرچند در طراحی کلی غیر ضروری است ، ما از متغیر "B" به عنوان راهی برای نگهداری داده ها از نتایج استفاده کردیم. ورودی "eff" حداکثر سرعت سرو را مدیریت می کند و ورودی "T_min" حداقل دمای مورد نظر را کنترل می کند. بنابراین مقدار "B" باید ماتریسی تولید کند که شامل سه ستون برای زمان ، دما و کارایی فن است. همچنین ، به عنوان یک امتیاز برای جزئیات ، کد ذکر شده در زیر نیز دارای عبارت if است به گونه ای که سرعت فن هنگام نزدیک شدن به حداقل دمای مطلوب ، پنجاه درصد کاهش می یابد.

اگر تمام ورودی ها و سیم های جامپر دقیقاً قرار گرفته باشند و با فرض اینکه پورت اتصال آردوینو COM4 باشد و نام تابع "fanread" باشد ، کد زیر باید کافی باشد:

تابع [B] = fanread (Tmin ، eff)

روشن a؛ lcd clear؛ a = arduino ('com4' ، 'uno' ، 'Libraries' ، 'ExampleLCD/LCDAddon') ؛

t = 0 ؛ t_max = 15 ؛ ٪ زمان در ثانیه

lcd = addon (a، 'ExampleLCD/LCDAddon'، {'D7'، 'D6'، 'D5'، 'D4'، 'D3'، 'D2'})؛

initializeLCD (ال سی دی ، "ردیف" ، 2 ، "ستون" ، 2) ؛

if eff> = 1 || e <0

خطا ('فن فعال نمی شود مگر اینکه eff بین 0 و 1 تنظیم شود')

پایان

برای t = 1: 10٪ تعداد حلقه ها/فواصل

روشن c ؛ ٪ از تکرار خطا جلوگیری می کند

v = readVoltage (a ، 'A0') ؛

TempC = (v-0.5)*100 ؛ درصد تخمین برای محدوده ولتاژ 2.7-5.5 ولت

if TempC> Tmin اگر TempC

c = ['Temp'، num2str (TempC، 3)، 'C On']؛

writePWMDutyCycle (a ، 'D9' ، eff/2) ؛ ٪ سروو را با نصف سرعت روشن کنید

spd = 50 ؛

دیگری

c = ['Temp'، num2str (TempC، 3)، 'C On']؛

writePWMDutyCycle (a، 'D9'، eff)؛ ٪ با سرعت داده شده سروو روشن کنید

spd = 100؛

پایان

دیگری

c = ['Temp'، num2str (TempC، 3)، 'C Off']؛

writePWMDutyCycle (a، 'D9'، 0)؛ ٪ خاموش می شود اگر قبلاً روشن است

spd = 0؛

پایان

printLCD (ال سی دی ، ج) ؛

مکث (3) ؛ ٪ سه ثانیه در هر حلقه سپری می شود

زمان (t) = t.*3؛

tempplot (t) = TempC؛

act (t) = spd ؛

فرع فرعی (2 ، 1 ، 1)

نمودار (زمان ، tempplot ، 'b-o')٪ خط نمودار

محور ([0 33 0 40])

xlabel ('زمان (ثانیه)')

ylabel ('دما (C)')

صبر کن

طرح ([0 33] ، [Tmin Tmin] ، 'r-')

صبر کن

طرح ([0 33] ، [Tmin+2 Tmin+2] ، 'g-')

فرع فرعی (2 ، 1 ، 2)

نوار (زمان ، عمل)٪ نمودار میله

xlabel ('زمان (ثانیه)')

ylabel ("کارایی ())")

پایان

B = انتقال ([زمان ؛ tempplot ؛ عمل]) ؛

پایان

اکنون که عملکرد کامل است ، زمان آزمایش است.

مرحله 5: آزمایش

آزمایش کردن
آزمایش کردن
آزمایش کردن
آزمایش کردن

اکنون عملکرد را در پنجره فرمان با درج "نام_کارکرد (input_value_1 ، input_value_2)" آزمایش کرده و تماشا کنید. مطمئن باشید که هیچ شیء آردوینو در حال حاضر وجود ندارد. اگر چنین است ، از دستور "clear a" برای حذف آن استفاده کنید. در صورت بروز خطا ، بررسی کنید و ببینید آیا اتصالات در محل اشتباه هستند یا از ورودی های دیجیتال یا آنالوگ اشتباه استفاده شده است. انتظار می رود که نتایج متفاوت باشد ، اگرچه این ممکن است به دلیل قرار دادن سیم های جامپر خاص و سنسور دما ایجاد شود.

انتظارات از نتایج باید تغییراتی در عملکرد سروو و داده های روی LCD ایجاد کند. در هر بازه سه ثانیه ای ، یک خط از متن باید دما را برحسب درجه سانتیگراد و اینکه آیا فن فعال است یا خیر در حالی که فن با تمام سرعت ، نیم سرعت یا بدون سرعت کار می کند ، نمایش دهد. به احتمال زیاد داده ها باید یکسان نباشند ، اگرچه نتایج متفاوت تری را بخواهید ، مقدار "Tmin" را نزدیک به دمای متوسط تولید شده توسط مدار قرار دهید.

مرحله 6: نتیجه گیری

نتیجه
نتیجه

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

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

توصیه شده: