Мазмұны:

Arduino кондиционері моделі: 6 қадам
Arduino кондиционері моделі: 6 қадам

Бейне: Arduino кондиционері моделі: 6 қадам

Бейне: Arduino кондиционері моделі: 6 қадам
Бейне: Модульный пульт 13S 2024, Қараша
Anonim
Arduino кондиционері моделі
Arduino кондиционері моделі

Біздің команданың маркетингтік мақсаттағы ақылды пойыз құрылғысының моделін құруға қабілеттілігін көрсету шеңберінде температура сенсоры тізбектегі деректерді оқитын және ақпаратты температура мәніне түрлендіретін жүйені құру болды. жарықтандырылған экранда көрсетіледі және желдеткіштің қосылатынына немесе өшірілетініне назар аударылады. Мақсаты - жақын маңдағы температураны көрсететін автоматтандырылған жүйені қолдана отырып, жолаушылардың жүру жағдайын реттеуге көмектесу.

Arduino микроконтроллер жинағын және MATLAB 2016b және 2017b нұсқаларын қолдана отырып, біз бұл нәтижелерді салыстырмалы түрде сәтті көрсете алдық.

1 -қадам: Жабдық

Жабдық
Жабдық

Микроконтроллер жиынтығы келесідей:

-Sparkfun Қызыл тақта

-Sparkfun нан тақтасы

-LCD тақтасы

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

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

-Серво

-USB/Arduino адаптері

-Жампер сымдар (25, минимум)

USB кірісі бар ноутбук (Windows 10)

3D басып шығарылған нысан (міндетті емес)

2 -қадам: микроконтроллерді орнату

Микроконтроллерді орнату
Микроконтроллерді орнату
Микроконтроллерді орнату
Микроконтроллерді орнату
Микроконтроллерді орнату
Микроконтроллерді орнату
Микроконтроллерді орнату
Микроконтроллерді орнату

Мұны қарастырыңыз: бүкіл жүйе біртұтас бірліктерден тұрады, олардың әрқайсысы түпкілікті нәтижеге маңызды факторды қолданады. Осы себепті, сымдарды шиеленіскен беспорядокқа қоспас бұрын, схеманың бейнесін орнату ұсынылады.

Әрбір жеке модельдің суреттерін Микроконтроллер құралдар жиынтығының нұсқаулығынан немесе оның веб -сайтынан табуға болады

Тақтаға температура сенсоры, потенциометр, серво қосқыштары мен СКД орнатудан бастаңыз. СКД өлшемі мен сымдардың санына қойылатын талапқа байланысты оны басқа бөліктермен бірге нан тақтасының жартысына орналастыру ұсынылады, ал потенциометр біреуге арналған аймақта болуы керек. оның тұтқасын оңай айналдырыңыз.

Анықтама үшін:

СКД: c1-16

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

Температура сенсоры: i13-15 (- GND +)

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

Әрі қарай, микроконтроллер қондырғыларының әрбір түйреуішіне қосқыш сымдарды қосуды бастаңыз; жалпы схемада ерікті болса да, дизайн келесі маңызды байланыстармен құрылды:

Потенциометрді СКД -ге қосу: f25 - e3

Servo GND сымы: j1 - сандық кіріс 9

Температура сенсоры GND: j14 - Аналогтық кіріс 0

СКД кірістері: e11-e15-Сандық кіріс 2-5

e4 - сандық кіріс 7

e6 - Сандық кіріс 6

(Ескерту: Егер сәтті болса, СКД жиегіндегі екі шам да жанып тұруы керек және потенциометр адаптерден қуат алғаннан кейін оның жарықтығын реттеуге көмектеседі.)

Қосымша: 3D баспа объектісі талаптың бөлігі ретінде пайдаланылды. Нәзік бөлшектердің ықтимал зақымдалуын болдырмау үшін СКД айналасында жең ретінде кеңейтілген корпус қойылды. СКД экранының өлшемдері шамамен 2-13/16 «x 1-1/16» x 1/4 «болып шықты, сондықтан биіктігі ғана айтарлықтай өзгерді. Егер 3D принтері қол жетімді болса, жеке объектіні қосуды қарастырыңыз. Сонымен қатар, өлшемдер әр түрлі болуы мүмкін екенін ескеріңіз.

3 -қадам: MATLAB орнату

MATLAB орнату
MATLAB орнату
MATLAB орнату
MATLAB орнату

MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle веб -сайтында қол жетімді MATLAB (2016а және одан әрі) жаңартылған нұсқасын орнатыңыз. Ашылғаннан кейін, үй қойындысындағы қондырмаларға өтіңіз және қол жетімді болу үшін микроконтроллер командалары үшін «Arduino жабдықтарына арналған MATLAB қолдау пакетін» жүктеңіз.

Аяқтағаннан кейін микроконтроллердің компьютерге/ноутбукке қосылуын анықтау үшін тест жүргізуге болады. Оларды құралдар жиынтығынан USB адаптерімен қосқаннан кейін «fopen (serial ('nada'))» пәрменін енгізіңіз.

Қате туралы хабар қалқымалы терезеде қосқышты «COM#» деп көрсетеді, ол arduino объектісін жасау үшін қажет, егер ол әрқашан бірдей кіріс болса.

СКД Arduino кітапханасына тікелей қосылмағандықтан, хабарларды көрсету үшін жаңа кітапхана құру керек. «Arduino LCD» іздеп, оны +arduinoioaddons қалтасына орналастырғаннан кейін MATLAB анықтамалық терезесінен табылған СКД мысалынан LCDAddon.m файлын жасау немесе ұсынылған қысылған қалтаны пайдаланып оның мазмұнын жоғарыда көрсетілгенге көшіру ұсынылады. қалта

Егер сәтті болса, MATLAB -та Arduino объектісін құру коды төменде көрсетілгендей болады.

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

4 -қадам: Функциялар

Функциялар
Функциялар
Функциялар
Функциялар

MATLAB функциясын жасаңыз. Кірістер үшін біз «eff» және «T_min» айнымалыларын қолданамыз; шығыстар үшін, жалпы конструкцияда қажет болмаса да, біз нәтижелерден деректерді сақтау әдісі ретінде «В» айнымалысын қолдандық. «Эфф» кірісі серво максималды жылдамдығын басқаруға мүмкіндік береді, ал «T_min» кірісі қалаған минималды температураны басқарады. Осылайша «В» мәні уақыт, температура және желдеткіштің тиімділігі үшін үш бағаннан тұратын матрицаны шығаруы керек. Сондай-ақ, егжей-тегжейге бонус ретінде, төменде келтірілген кодта if-операторы бар, ол желдеткіш жылдамдығы қажетті минималды температураға жақындағанда елу пайызға төмендейді.

Егер барлық кірістер мен өтпелі сымдар дәл орналастырылған болса және arduino қосылымының порты COM4 болса және функцияның аты «fanread» болса, келесі код жеткілікті болуы керек:

функция [B] = желдеткіш оқу (Tmin, eff)

анық а; таза lcd; a = arduino ('com4', 'uno', 'Кітапханалар', 'ExampleLCD/LCDAddon');

t = 0; t_max = 15; % уақыт секундпен

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

initializeLCD (lcd, 'Жолдар', 2, 'Бағандар', 2);

егер эфф> = 1 || e <0

қате ('эффект 0 мен 1 арасында орнатылмаса, желдеткіш қосылмайды «)

Соңы

t = 1 үшін: циклдар/интервалдардың 10 % саны

анық c; % қатені қайталауға жол бермейді

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 ('Уақыт (секунд)')

ylabel ('Температура (C)')

күте тұр

сюжет ([0 33], [Tmin Tmin], 'r-')

күте тұр

сюжет ([0 33], [Tmin+2 Tmin+2], 'g-')

қосалқы жоспар (2, 1, 2)

бар (уақыт, әрекет) % жолақ графигі

xlabel ('Уақыт (секунд)')

этикетка ('Тиімділік (%)')

Соңы

B = транспозиция ([уақыт; уақытша жоспар; әрекет]);

Соңы

Енді функция аяқталғаннан кейін тестілеудің уақыты келді.

5 -қадам: тестілеу

Сынақ
Сынақ
Сынақ
Сынақ

Енді функцияны командалар терезесінде «function_name (input_value_1, input_value_2)» енгізу арқылы тексеріңіз және қараңыз. Arduino объектісі жоқ екеніне көз жеткізіңіз; олай болса, оны жою үшін «clear a» пәрменін қолданыңыз. Егер қателер орын алса, кез келген қосқыштардың дұрыс емес екенін немесе қате цифрлық немесе аналогтық кірістердің қолданылғанын тексеріңіз. Нәтижелер әр түрлі болады деп күтілуде, бірақ бұл кейбір секіргіш сымдар мен температура сенсорының орналасуына байланысты болуы мүмкін.

Нәтижелерді күту серво өнімділігінде және СКД деректерінде өзгерістерге әкелуі керек. Әр үш секундтық интервалда мәтін жолында Цельсий бойынша температура көрсетілуі керек және желдеткіш толық жылдамдықта, жарты жылдамдықта немесе жоқ жылдамдықта жұмыс істеп тұрған кезде желдеткіштің жұмыс істеп тұрған -қосылмағанын көрсетуі керек. Деректер сәйкес келмеуі керек, бірақ егер әр түрлі нәтиже қажет болса, «Tmin» мәні тізбек шығаратын орташа температураға жақын орналасады.

6 -қадам: Қорытынды

Қорытынды
Қорытынды

Сынақ пен қателік арқылы орындалуы қиын міндет болса да, соңғы нәтижелер өте қызықты және қанағаттанарлық болып шықты. Бұл жүйе қанша күрделі машинаны, тіпті олардың кейбір бөлшектерін белгілі бір мақсатқа жету үшін бір -біріне тәуелсіз бөлшектердің жиынтығы ретінде қарауға болатынын көрсетуге көмектеседі.

Қорытынды жобаның қарапайым дизайнының арқасында оның өнімділігін жақсартуға мүдделі адамдар жобаны жақсартуға және жетілдіруге мүмкіндік беретін түпкілікті өнімге түзетулер мен өзгертулер енгізе алады. Алайда, бұл тізбектегі осал тұстарды көрсетеді, мысалы, серво активтенуі, бұл тізбектің кернеу көрсеткішінің біртіндеп ауытқуына әкеледі, бұл жүйенің ешқашан бірдей нәтиже бермеуіне әкелуі мүмкін. Сондай -ақ, «эфф» 0,4 және одан жоғары орнатылған кезде серво жылдамдығының өзгеруін көруге қатысты мәселелер туындады. Егер температура мен ылғалдылық сенсоры қолданылса, соңғы модель күрделірек болар еді, бірақ сәйкес келетін мәндерді береді. Дегенмен, бұл күрделі машинаның қарапайым бөлшектердің тіркесімі ретінде жұмыс істей алатынын көрсететін тәжірибе.

Ұсынылған: