Სარჩევი:

არდუინოს კონდიციონერის მოდელი: 6 ნაბიჯი
არდუინოს კონდიციონერის მოდელი: 6 ნაბიჯი

ვიდეო: არდუინოს კონდიციონერის მოდელი: 6 ნაბიჯი

ვიდეო: არდუინოს კონდიციონერის მოდელი: 6 ნაბიჯი
ვიდეო: bikin saklar lampu dengan remot bisa dimatikan jarak jauh 2024, ივლისი
Anonim
არდუინოს კონდიციონერის მოდელი
არდუინოს კონდიციონერის მოდელი

მარკეტინგული მიზნებისათვის ჭკვიანი მატარებლის მოწყობილობის მოდელის შექმნის შესაძლებლობის დემონსტრირების ფარგლებში, მიზანი იყო სისტემის შექმნა, რომლის დროსაც ტემპერატურის სენსორი კითხულობს მონაცემებს წრიდან და ინფორმაციას გარდაქმნის ტემპერატურულ მნიშვნელობად ნაჩვენებია განათებულ ეკრანზე და ორიენტირებულია იმაზე, ჩართავს თუ გამორთავს ვენტილატორი. მიზანია ხელი შეუწყოს მგზავრების საცხენოსნო პირობებს ავტომატური სისტემის გამოყენებით, რომელიც ასევე მოქმედებს ტემპერატურის უშუალო სიახლოვეს გამოსაჩენად.

Arduino მიკროკონტროლერის ნაკრებისა და MATLAB ვერსიების 2016b და 2017b გამოყენებით, ჩვენ შევძელით ამ შედეგების დემონსტრირება შედარებით წარმატებით.

ნაბიჯი 1: აღჭურვილობა

აღჭურვილობა
აღჭურვილობა

მიკროკონტროლერის ნაკრები შემდეგით:

-სპარკფუნის წითელი დაფა

-სპარკფუნის პურის დაფა

-LCD დაფა

-პოტენომეტრი

-Ტემპერატურის სენსორი

-სერვო

-USB/Arduino ადაპტერი

Jumper Wires (25, მინიმალური)

ლეპტოპი (Windows 10) USB შეყვანის საშუალებით

3D დაბეჭდილი ობიექტი (სურვილისამებრ)

ნაბიჯი 2: მიკროკონტროლერის დაყენება

მიკროკონტროლერის დაყენება
მიკროკონტროლერის დაყენება
მიკროკონტროლერის დაყენება
მიკროკონტროლერის დაყენება
მიკროკონტროლერის დაყენება
მიკროკონტროლერის დაყენება
მიკროკონტროლერის დაყენება
მიკროკონტროლერის დაყენება

განიხილეთ ეს: მთელი სისტემა შედგება ერთიანი ერთეულებისგან, რომელთაგან თითოეული იყენებს მნიშვნელოვან ფაქტორს საბოლოო შედეგისკენ. ამ მიზეზით, მკაცრად რეკომენდირებულია სქემის გამოსახულების დაყენება, სანამ მავთულხლართებს არეულ არეულობაში მიამაგრებთ.

თითოეული ინდივიდუალური მოდელის სურათები შეგიძლიათ იხილოთ მიკროკონტროლერის ინსტრუმენტის სახელმძღვანელოში ან მის ვებგვერდზე

დაიწყეთ ტემპერატურის სენსორის, პოტენომეტრის, სერვო კონექტორების და 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 შუქის ორივე შუქი უნდა აანთოს და პოტენომეტრს შეუძლია დაეხმაროს მის სიკაშკაშეს ადაპტერის ენერგიის მინიჭების შემდეგ.)

სურვილისამებრ: 3D ბეჭდვის ობიექტი გამოიყენებოდა მოთხოვნის ნაწილად. უფრო მყიფე ნაწილების პოტენციური დაზიანების თავიდან ასაცილებლად, გაფართოებული ყუთი მოათავსეს ყდის სახით LCD– ის გარშემო. LCD ეკრანის გაზომვები აღმოჩნდა დაახლოებით 2-13/16 "x 1-1/16" x 1/4 "და ამით მხოლოდ სიმაღლე მნიშვნელოვნად შეიცვალა. თუ 3D პრინტერი ხელმისაწვდომია, განიხილეთ პირადი ობიექტის დამატება. ამასთან, იცოდეთ, რომ გაზომვები შეიძლება განსხვავდებოდეს.

ნაბიჯი 3: MATLAB დაყენება

MATLAB დაყენება
MATLAB დაყენება
MATLAB დაყენება
MATLAB დაყენება

დააინსტალირეთ MATLAB- ის უფრო განახლებული ვერსია (2016 ა და შემდგომ), რომელიც ხელმისაწვდომია MathWorks ვებსაიტზე https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. გახსნის შემდეგ, გადადით დამატებებზე მთავარი ჩანართზე და ჩამოტვირთეთ "MATLAB მხარდაჭერის პაკეტი Arduino აპარატურისთვის", რათა მიკროკონტროლის ბრძანებები იყოს ხელმისაწვდომი.

დასრულების შემდეგ, შეიძლება გაკეთდეს ტესტი მიკროკონტროლერის კომპიუტერთან/ლეპტოპთან დაკავშირების დასადგენად. ინსტრუმენტის ნაკრებიდან მათ USB ადაპტერთან დაკავშირების შემდეგ ჩადეთ ბრძანება "გახსენით (სერიული (" ნადა ")).

გამოჩნდება შეცდომის შეტყობინება, რომელშიც მითითებულია კონექტორი როგორც "COM#", რომელიც საჭირო იქნება არდუინოს ობიექტის შესაქმნელად, სანამ ის ყოველთვის ერთნაირია.

იმის გამო, რომ LCD– ს არ აქვს პირდაპირი კავშირი არდუინოს ბიბლიოთეკასთან, ახალი ბიბლიოთეკა უნდა შეიქმნას შეტყობინებების ჩვენების მიზნით. რეკომენდაციაა შექმნათ LCDAddon.m ფაილი LCD მაგალითიდან MATLAB დახმარების ფანჯარაში ნაპოვნი "Arduino LCD" - ის ძებნის და +arduinoioaddons საქაღალდეში მოთავსების შემდეგ, ან მიმაგრებული შეკუმშული საქაღალდის გამოყენება და მისი ყველა შინაარსის კოპირება ზემოხსენებულში. საქაღალდე.

წარმატების შემთხვევაში, MATLAB– ში Arduino ობიექტის შესაქმნელად კოდი მოცემულია ქვემოთ.

a = arduino ("com#", "uno", "ბიბლიოთეკები", "მაგალითი LCD/LCDAddon");

ნაბიჯი 4: ფუნქციები

ფუნქციები
ფუნქციები
ფუნქციები
ფუნქციები

შექმენით MATLAB ფუნქცია. შეყვანისთვის ჩვენ ვიყენებთ ცვლადებს "eff" და "T_min"; შედეგებისათვის, თუმცა არასაჭიროა საერთო დიზაინში, ჩვენ გამოვიყენეთ ცვლადი "B", როგორც საშუალება შედეგების მონაცემების შესანახად. "Eff" შეყვანის საშუალებას გაძლევთ მართოთ სერვოს მაქსიმალური სიჩქარე, ხოლო "T_min" შეაქვს მინიმალური სასურველი ტემპერატურა. მნიშვნელობა "B" უნდა წარმოქმნას მატრიცა, რომელიც შეიცავს სამ სვეტს დროისათვის, ტემპერატურისა და ვენტილატორის ეფექტურობისთვის. ასევე, როგორც ბონუსი დეტალებისთვის, ქვემოთ ჩამოთვლილ კოდს ასევე აქვს if- განაცხადი ისეთი, რომ ვენტილატორის სიჩქარე შემცირდება ორმოცდაათი პროცენტით, როდესაც ის მიაღწევს სასურველ მინიმალურ ტემპერატურას.

თუ ყველა შესასვლელი და მხტუნავი მავთული ზუსტად არის მოთავსებული და ვივარაუდოთ, რომ არდუინოს კავშირის პორტი არის COM4 და ფუნქციის სახელი არის "fanread", შემდეგი კოდი უნდა იყოს საკმარისი:

ფუნქცია [B] = fanread (Tmin, eff)

გარკვევა a; წმინდა lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

t = 0; t_max = 15; % დრო წამებში

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

ინიციალიზაცია LCD (lcd, 'Rows', 2, 'Columns', 2);

თუ eff> = 1 || ე <0

შეცდომა ("გულშემატკივარი არ გააქტიურდება, თუ eff არ არის დაყენებული 0 -დან 1 -მდე")

დასასრული

t = 1: მარყუჟების/ინტერვალების 10 %

ნათელი გ; % თავიდან აიცილოს შეცდომის გამეორება

v = readVoltage (a, 'A0');

TempC = (v-0.5)*100; % შეფასება ძაბვის დიაპაზონისთვის 2.7-5.5 ვ

თუ 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 (lcd, c);

პაუზა (3); სამი წამი გასდის მარყუჟზე

დრო (t) = t.*3;

tempplot (t) = TempC;

აქტი (t) = spd;

ქვეპლოტი (2, 1, 1)

ნაკვეთი (დრო, ტემპლოტი, 'b-o') % ხაზის გრაფიკი

ღერძი ([0 33 0 40])

xlabel ("დრო (წამი)")

ილაბელი ('ტემპერატურა (C)')

შეჩერდი

ნაკვეთი ([0 33], [Tmin Tmin], 'r-')

შეჩერდი

ნაკვეთი ([0 33], [Tmin+2 Tmin+2], 'g-')

ქვეპლოტი (2, 1, 2)

ბარი (დრო, მოქმედება) % ბარი გრაფიკი

xlabel ("დრო (წამი)")

ylabel ("ეფექტურობა (%)")

დასასრული

B = ტრანსპოზიცია ([დრო; ტემპლოტი; მოქმედება]);

დასასრული

ახლა, როდესაც ფუნქცია დასრულებულია, დროა შეამოწმოთ.

ნაბიჯი 5: ტესტირება

ტესტირება
ტესტირება
ტესტირება
ტესტირება

ახლა შეამოწმეთ ფუნქცია ბრძანების ფანჯარაში ჩასვით "function_name (input_value_1, input_value_2)" და უყურეთ. დარწმუნდით, რომ Arduino– ს ობიექტი უკვე არ არსებობს; თუ ასეა, გამოიყენეთ ბრძანება "გარკვევა a" მის მოსაშორებლად. თუ შეცდომები მოხდება, შეამოწმეთ და ნახეთ, არის თუ არა რაიმე კონექტორი არასწორ ადგილას ან გამოიყენება არასწორი ციფრული ან ანალოგური შეყვანა. მოსალოდნელია, რომ შედეგები განსხვავდება, თუმცა ეს შეიძლება გამოწვეული იყოს ზოგიერთი მხტუნავი მავთულის და ტემპერატურის სენსორის განთავსებით.

შედეგების მოლოდინმა უნდა გამოიწვიოს ცვლილებები სერვოს მუშაობაში და LCD ეკრანის მონაცემებში. ყოველი სამი წამის ინტერვალით, ტექსტის სტრიქონი უნდა აჩვენებდეს ტემპერატურას ცელსიუსში და არის თუ არა გულშემატკივარი აქტიური, თუ გულშემატკივარი მუშაობს სრული სიჩქარით, ნახევარი სიჩქარით ან სიჩქარის გარეშე. მონაცემები, სავარაუდოდ, არ უნდა იყოს თანმიმდევრული, თუმცა, თუკი სხვადსხვა შედეგს ითხოვენ, მოათავსეთ "Tmin" მნიშვნელობა მიკროსქემის მიერ წარმოებულ საშუალო ტემპერატურაზე ახლოს.

ნაბიჯი 6: დასკვნა

დასკვნა
დასკვნა

მიუხედავად იმისა, რომ რთული ამოცანა შესასრულებელი იყო ცდათა და შეცდომებით, საბოლოო შედეგები აღმოჩნდა საკმაოდ საინტერესო და დამაკმაყოფილებელი. სისტემა, როგორც ასეთი, გვეხმარება იმის ილუსტრირებაში, თუ რამდენი რთული მანქანა, ან თუნდაც მათი ზოგიერთი ნაწილი, შეიძლება ჩაითვალოს, როგორც დამოუკიდებელი ნაწილების კრებული, რომლებიც გაერთიანებულია კონკრეტული მიზნის მისაღწევად.

საბოლოო პროექტის საკმაოდ გამარტივებული დიზაინის გამო, მათ, ვისაც აინტერესებს მისი მუშაობის გაუმჯობესება, შეუძლიათ შეცვალონ და შეცვალონ საბოლოო პროდუქტი, რამაც შეიძლება პროექტი უკეთესი და დახვეწილი გახადოს. თუმცა, ის გამოავლენს სისუსტეებს წრედში, როგორიცაა სერვოს გააქტიურება, რამაც გამოიწვია წრედის ძაბვის მაჩვენებლის სპორადული რყევები, რამაც შეიძლება გამოიწვიოს სისტემა არასოდეს იდენტური შედეგების მომტანი. ასევე, იყო პრობლემები სერვო სიჩქარის ცვლილების დანახვაზე, როდესაც "eff" არის დაყენებული 0.4 და უფრო მაღალი. ტემპერატურისა და ტენიანობის სენსორი რომ ყოფილიყო გამოყენებული, საბოლოო მოდელი უფრო რთული იქნებოდა, მაგრამ უფრო თანმიმდევრული მნიშვნელობების მქონე. მიუხედავად ამისა, ეს არის გამოცდილება, რომელიც აჩვენებს, რომ რთულ მანქანას შეუძლია იმოქმედოს როგორც მისი მარტივი ნაწილების კომბინაცია.

გირჩევთ: