Obsah:

Model klimatizácie Arduino: 6 krokov
Model klimatizácie Arduino: 6 krokov

Video: Model klimatizácie Arduino: 6 krokov

Video: Model klimatizácie Arduino: 6 krokov
Video: Уроки Arduino #8 - управление реле 2024, November
Anonim
Model klimatizácie Arduino
Model klimatizácie Arduino

V rámci ukážky schopnosti nášho tímu vytvoriť model zariadenia inteligentného vlaku na marketingové účely bolo cieľom vytvoriť systém, v ktorom snímač teploty číta údaje z okruhu a prevádza informácie na hodnotu teploty, ktorá je zobrazené na osvetlenej obrazovke a zamerané na to, či sa ventilátor zapne alebo vypne. Účelom je pomôcť prispôsobiť sa jazdným podmienkam cestujúcich pomocou automatizovaného systému, ktorý slúži aj na zobrazenie teploty v bezprostrednom okolí.

Použitím súpravy mikrokontroléra Arduino a verzií MATLAB 2016b a 2017b sme dokázali tieto výsledky relatívne úspešne predviesť.

Krok 1: Zariadenie

Zariadenie
Zariadenie

Mikrokontrolérová súprava s nasledujúcimi funkciami:

-Červená tabuľa Sparkfun

-Sparkfun Breadboard

-doska LCD

-potenciometer

-Teplotný senzor

-Servo

-USB/Arduino adaptér

-prepojovacie vodiče (minimálne 25)

Notebook (Windows 10) so vstupom USB

Objekt s 3D tlačou (voliteľné)

Krok 2: Nastavenie mikrokontroléra

Nastavenie mikrokontroléra
Nastavenie mikrokontroléra
Nastavenie mikrokontroléra
Nastavenie mikrokontroléra
Nastavenie mikrokontroléra
Nastavenie mikrokontroléra
Nastavenie mikrokontroléra
Nastavenie mikrokontroléra

Zvážte to: celý systém sa skladá z jednotlivých jednotiek, z ktorých každá uplatňuje významný faktor na konečný výsledok. Z tohto dôvodu sa dôrazne odporúča nastaviť obraz obvodu pred pripojením vodičov v spletitom neporiadku.

Obrázky každého jednotlivého modelu nájdete v príručke k súprave nástrojov pre mikrokontrolér alebo na jeho webovej stránke

Začnite pripevnením snímača teploty, potenciometra, konektorov serva a LCD na dosku. Odporúča sa, aby bol vzhľadom na veľkosť LCD a požiadavku na počet vodičov položený na vlastnú polovicu dosky, ostatné kusy na druhú polovicu, a aby bol potenciometer v oblasti, do ktorej môže niekto ľahko otočte jeho gombíkom.

Pre referenciu:

LCD: c1-16

Servo: i1-3 (GND + -)

Snímač teploty: i13-15 (- GND +)

Potenciometer: g24-26 (- GND +)

Ďalej začnite spájať prepojovacie vodiče s každým kolíkom jednotiek mikrokontroléra; aj keď bol v celkovej veľkej schéme ľubovoľný, dizajn bol vytvorený s týmito dôležitými spojeniami:

Pripojenie potenciometra k LCD: f25 - e3

Servo GND vodič: j1 - digitálny vstup 9

Snímač teploty GND: j14 - analógový vstup 0

Vstupy LCD: e11-e15-digitálny vstup 2-5

e4 - digitálny vstup 7

e6 - digitálny vstup 6

(Poznámka: Ak je úspešný, obidve svetlá na okraji LCD by mali blikať a potenciometer môže pomôcť upraviť jeho jas po napájaní z adaptéra.)

Voliteľné: 3D tlačený objekt bol použitý ako súčasť požiadavky. Aby sa predišlo potenciálnemu poškodeniu krehkejších častí, bolo okolo LCD displeja ako puzdro umiestnené predĺžené puzdro. Merania obrazovky LCD sa ukázali byť približne 2-13/16 "x 1-1/16" x 1/4 ", a preto sa výrazne zmenila iba výška. Ak je 3D tlačiareň ľahko dostupná, zvážte pridanie osobného predmetu, aj keď zbytočné. Uvedomte si tiež, že merania sa môžu líšiť.

Krok 3: Nastavenie MATLAB

Nastavenie MATLABu
Nastavenie MATLABu
Nastavenie MATLABu
Nastavenie MATLABu

Nainštalujte si aktualizovanejšiu verziu MATLAB (2016a a novšiu), ktorá je k dispozícii na webovej stránke MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Po otvorení prejdite na Doplnky na karte Domov a stiahnite si „Balík podpory MATLAB pre hardvér Arduino“, aby boli príkazy mikrokontroléra prístupné.

Po dokončení je možné vykonať test na nájdenie pripojenia mikrokontroléra k počítaču/prenosnému počítaču. Po ich pripojení k adaptéru USB zo sady nástrojov zadajte príkaz „fopen (serial ('nada'))."

Zobrazí sa chybové hlásenie s uvedením konektora ako „COM#“, ktorý bude potrebný na vytvorenie objektu arduino, pokiaľ je vždy rovnakým vstupom.

Pretože LCD displej nemá priame spojenie s knižnicou Arduino, na zobrazenie správ je potrebné vytvoriť novú knižnicu. Odporúča sa vytvoriť súbor LCDAddon.m z príkladu LCD, ktorý sa nachádza v okne pomoci programu MATLAB, po vyhľadaní výrazu „Arduino LCD“a umiestnení do priečinka +arduinoioaddons, alebo použite priložený komprimovaný priečinok a skopírujte všetok jeho obsah do vyššie uvedeného priečinok.

Ak je to úspešné, potom kód na vytvorenie objektu Arduino v MATLABe je uvedený nižšie.

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

Krok 4: Funkcie

Funkcie
Funkcie
Funkcie
Funkcie

Vytvorte funkciu MATLAB. Pre vstupy používame premenné „eff“a „T_min“; pre výstupy, aj keď v celkovom návrhu nepotrebné, sme použili premennú „B“ako spôsob, ako obsahovať údaje z výsledkov. Vstup "eff" umožňuje riadenie maximálnych otáčok serva a vstup "T_min" ovláda požadovanú minimálnu teplotu. Hodnota „B“by teda mala vytvoriť maticu, ktorá obsahuje tri stĺpce pre čas, teplotu a účinnosť ventilátora. Ako bonus k detailom má kód uvedený nižšie tiež vyhlásenie if, že rýchlosť ventilátora sa zníži o päťdesiat percent, keď sa priblíži k požadovanej minimálnej teplote.

Ak sú všetky vstupy a prepojovacie vodiče umiestnené presne a za predpokladu, že port pripojenia arduino je COM4 a názov funkcie je „fanread“, mal by stačiť nasledujúci kód:

funkcia [B] = počet prečítaných fanúšikov (Tmin, eff)

jasné a; čistý lcd; a = arduino ('com4', 'uno', 'Knižnice', 'ExampleLCD/LCDAddon');

t = 0; t_max = 15; % času v sekundách

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

initializeLCD (lcd, 'Riadky', 2, 'Stĺpce', 2);

ak eff> = 1 || e <0

chyba („Ventilátor sa neaktivuje, pokiaľ nie je efekt nastavený medzi 0 a 1.“)

koniec

pre t = 1: 10 % počet slučiek/intervalov

číry c; % zabrániť chybe opakovania

v = readVoltage (a, 'A0');

TempC = (v-0,5)*100; % odhad pre rozsahy napätia 2,7-5,5 V

ak TempC> Tmin, ak TempC

c = ['Teplota', num2str (TempC, 3), 'Zap.'];

writePWMDutyCycle (a, 'D9', eff/2); % zapnite servo na polovičnú rýchlosť

spd = 50;

inak

c = ['Teplota', num2str (TempC, 3), 'Zap.'];

writePWMDutyCycle (a, 'D9', eff); % zapnite servo pri danej rýchlosti

spd = 100;

koniec

inak

c = ['Teplota', num2str (TempC, 3), 'C vypnuté'];

writePWMDutyCycle (a, 'D9', 0); % vypnite, ak je už zapnuté

spd = 0;

koniec

printLCD (lcd, c);

pauza (3); Na jednu slučku uplynú % tri sekundy

čas (t) = t.*3;

tempplot (t) = TempC;

akt (t) = spd;

podkres (2, 1, 1)

plot (čas, tempplot, 'b-o') % čiarový graf

os ([0 33 0 40])

xlabel ('Čas (sekundy)')

ylabel („Teplota (C)“)

Počkaj

sprisahanie ([0 33], [Tmin Tmin], 'r-')

Počkaj

graf ([0 33], [Tmin+2 Tmin+2], 'g-')

podkres (2, 1, 2)

stĺpcový (čas, akt) % stĺpcový graf

xlabel ('Čas (sekundy)')

ylabel („Účinnosť (%)“)

koniec

B = transpozícia ([čas; tempplot; akt]);

koniec

Teraz, keď je funkcia kompletná, je čas na testovanie.

Krok 5: Testovanie

Testovanie
Testovanie
Testovanie
Testovanie

Teraz vyskúšajte funkciu v príkazovom okne vložením „názov_funkcie (vstupná_hodnota_1, vstupná_hodnota_2)“a sledujte. Uistite sa, že už neexistuje žiadny objekt Arduino; ak áno, odstráňte ho príkazom „clear a“. Ak sa vyskytnú chyby, skontrolujte, či nie sú konektory na zlom mieste alebo či sú použité nesprávne digitálne alebo analógové vstupy. Očakáva sa, že výsledky sa budú líšiť, aj keď to môže byť spôsobené umiestnením určitých prepojovacích káblov a snímača teploty.

Očakávania výsledkov by mali spôsobiť zmeny vo výkone serva a v údajoch na LCD. S každým trojsekundovým intervalom by mal riadok textu zobrazovať teplotu v stupňoch Celzia a to, či je ventilátor aktívny, keď beží na plné otáčky, na polovičné otáčky alebo na žiadne. Údaje by pravdepodobne nemali byť konzistentné, ale ak požadujete viac rôznych výsledkov, umiestnite hodnotu „Tmin“blízko priemernej teploty produkovanej obvodom.

Krok 6: Záver

Záver
Záver

Napriek tomu, že konečné riešenie bolo náročné pokusom a omylom, ukázalo sa, že konečné výsledky boli celkom zaujímavé a uspokojujúce. Systém ako taký pomáha ilustrovať, koľko komplikovaných strojov alebo dokonca niektorých ich častí možno vnímať ako zbierku nezávislých dielov umiestnených spoločne na dosiahnutie konkrétneho cieľa.

Vzhľadom na dosť zjednodušený dizajn konečného projektu môžu tí, ktorí majú záujem zlepšiť jeho výkon, vykonať úpravy a úpravy konečného produktu, vďaka ktorým bude projekt lepší a prepracovanejší. Odhaľuje však slabiny v obvode, ako je napríklad aktivácia serva, ktorá má za následok sporadické výkyvy v napätí obvodu, čo môže spôsobiť, že systém nikdy nedosiahne rovnaké výsledky. Tiež sa vyskytli problémy so zmenou rýchlosti serva, keď je „eff“nastavené na 0,4 a vyššie. Ak by bol použitý snímač teploty a vlhkosti, konečný model by bol komplikovanejší, ale predstavoval by konzistentnejšie hodnoty. Napriek tomu je to skúsenosť, ktorá ukazuje, že komplexný stroj môže fungovať ako kombinácia svojich jednoduchých častí.

Odporúča: