Съдържание:

Модел на климатик Arduino: 6 стъпки
Модел на климатик Arduino: 6 стъпки

Видео: Модел на климатик Arduino: 6 стъпки

Видео: Модел на климатик Arduino: 6 стъпки
Видео: Ардуино - първи стъпки в роботиката 2024, Юли
Anonim
Модел на климатик Arduino
Модел на климатик Arduino

Като част от демонстрацията на способността на нашия екип да създаде модел на интелигентно влаково устройство за маркетингови цели, целта беше да се създаде система, в която температурен сензор чете данни от веригата и преобразува информацията в температурна стойност, която е едновременно се показва на осветен екран и се фокусира върху това дали вентилаторът се включва или изключва. Целта е да се подпомогнат условията за пътуване на пътниците с помощта на автоматизирана система, която също така показва температурата в непосредствена близост.

Използвайки комплект за микроконтролер Arduino и версии MATLAB 2016b и 2017b, успяхме да демонстрираме тези резултати с относителен успех.

Стъпка 1: Оборудване

Оборудване
Оборудване

Комплект микроконтролер със следното:

-Sparkfun Red Board

-Sparkfun Breadboard

-LCD табло

-Потенциометър

-Температурен сензор

-Серво

-USB/Arduino адаптер

-Джъмперни проводници (минимум 25)

Лаптоп (Windows 10) с USB вход

3D отпечатан обект (по избор)

Стъпка 2: Настройка на микроконтролера

Настройка на микроконтролер
Настройка на микроконтролер
Настройка на микроконтролер
Настройка на микроконтролер
Настройка на микроконтролер
Настройка на микроконтролер
Настройка на микроконтролер
Настройка на микроконтролер

Помислете за това: цялата система е съставена от единични единици, всяка от които прилага значителен фактор за крайния резултат. Поради тази причина е силно препоръчително да настроите изображение на веригата, преди да прикачите проводници в сложна бъркотия.

Изображенията на всеки отделен модел могат да бъдат намерени в ръководството на комплекта с инструменти за микроконтролер или на уебсайта му на адрес

Започнете с поставянето на температурния сензор, потенциометър, серво конектори и LCD на платката. Препоръчва се поради размера на LCD дисплея и изискването за броя на проводниците за него, той да бъде поставен върху собствената си половина от макетната платка с останалите части на другата половина и потенциометърът да бъде в зона, на която някой да лесно завъртете копчето му.

За справка:

LCD: c1-16

Серво: i1-3 (GND + -)

Сензор за температура: i13-15 (- GND +)

Потенциометър: g24-26 (- GND +)

След това започнете да свързвате джъмперните проводници към всеки щифт на блоковете на микроконтролера; макар и произволен в цялостната схема, дизайнът е създаден с тези важни връзки:

Свързване на потенциометър към LCD: f25 - e3

Серво 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 (2016a и по -нататък), достъпна на уебсайта на MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. След като отворите, отидете на Добавки в раздела Начало и изтеглете „Пакет за поддръжка на MATLAB за хардуер Arduino“, за да бъдат достъпни командите на микроконтролера.

След като приключи, може да се направи тест за установяване на свързаността на микроконтролера към компютъра/лаптопа. След като ги свържете с USB адаптера от комплекта с инструменти, вмъкнете командата "fopen (serial ('nada'))".

Ще се появи съобщение за грешка, което посочва конектора като "COM#", което ще бъде необходимо за създаване на обект arduino, стига да е един и същ вход по всяко време.

Тъй като LCD няма директна връзка с библиотеката Arduino, трябва да се създаде нова библиотека, за да се показват съобщения. Препоръка е да създадете LCDAddon.m файл от LCD примера, който се намира в помощния прозорец на MATLAB, след като потърсите „Arduino LCD“и го поставите в папката +arduinoioaddons, или използвайте компресираната папка и копирайте цялото му съдържание в гореспоменатото папка.

Ако е успешен, кодът за създаване на Arduino обект в MATLAB е както е показано по -долу.

a = arduino ('com#', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

Стъпка 4: Функции

Функции
Функции
Функции
Функции

Създайте функция MATLAB. За входовете използваме променливи "eff" и "T_min"; за изходи, макар и ненужни в цялостния дизайн, използвахме променлива "B" като начин за съдържане на данни от резултатите. Входът "eff" позволява управление на максималната скорост на серво, а входът "T_min" контролира желаната минимална температура. По този начин стойността "B" трябва да създаде матрица, която съдържа три колони за времето, температурата и ефективността на вентилатора. Също така, като бонус към детайлите, кодът, изброен по-долу, също има изявление if, че скоростта на вентилатора ще бъде намалена с петдесет процента, когато се доближи до желаната минимална температура.

Ако всички входове и джъмперните проводници са поставени точно и ако приемем, че портът на arduino връзката е COM4 и името на функцията е "fanread", следният код трябва да е достатъчен:

функция [B] = вентилатор (Tmin, eff)

изчисти а; clear lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

t = 0; t_max = 15; % време в секунди

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

initializeLCD (lcd, 'Rows', 2, 'Columns', 2);

ако eff> = 1 || e <0

грешка („Вентилаторът няма да се активира, освен ако eff е зададен между 0 и 1.“)

край

за t = 1: 10 % брой цикли/интервали

ясно c; % предотвратяване на повтаряща се грешка

v = readVoltage (a, 'A0');

TempC = (v-0.5)*100; % оценка за диапазони на напрежение 2,7-5,5 V

ако 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;

act (t) = spd;

подплот (2, 1, 1)

график (време, график, '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: Тестване

Тестване
Тестване
Тестване
Тестване

Сега тествайте функцията в командния прозорец, като вмъкнете "име на функция (вход_ стойност_1, вход_ стойност_2)" и гледайте. Уверете се, че вече не съществува обект Arduino; ако е така, използвайте командата "clear a", за да я премахнете. Ако възникнат грешки, проверете и вижте дали някои конектори са на грешното място или са използвани грешни цифрови или аналогови входове. Очаква се резултатите да варират, въпреки че това може да бъде причинено от поставянето на определени проводници и температурния сензор.

Очакванията за резултатите трябва да доведат до промени в производителността на сервото и данните на LCD дисплея. С всеки трисекунден интервал ред от текст трябва да показва температурата в Целзий и дали вентилаторът е активен, докато вентилаторът работи с пълна скорост, наполовина или без скорост. Данните най -вероятно не трябва да са последователни, но ако желаете по -различни резултати, поставете стойността "Tmin" близо до средната температура, произведена от веригата.

Стъпка 6: Заключение

Заключение
Заключение

Макар и трудна задача за изпълнение чрез опити и грешки, крайните резултати се оказаха доста интересни и удовлетворяващи. Една система като такава помага да се илюстрира колко сложни машини или дори някои от техните части могат да се разглеждат като съвкупност от независими части, поставени заедно за постигане на определена цел.

Поради доста опростения дизайн на крайния проект, тези, които имат интерес да подобрят неговото представяне, могат да направят ощипвания и промени в крайния продукт, които могат да направят проекта по -добър и по -сложен. Въпреки това, той разкрива слабости във веригата, като например активирането на серво, което води до спорадични колебания в отчитането на напрежението на веригата, което може да накара системата никога да не даде идентични резултати. Също така имаше проблеми с промяната в скоростта на серво, когато "eff" е настроено на 0.4 и по -висока. Ако беше използван сензор за температура и влажност, крайният модел щеше да бъде по -сложен, но с по -постоянни стойности. Независимо от това, това е опит, който показва, че сложната машина може да функционира като комбинация от нейните прости части.

Препоръчано: