Obsah:

Model klimatizace Arduino: 6 kroků
Model klimatizace Arduino: 6 kroků

Video: Model klimatizace Arduino: 6 kroků

Video: Model klimatizace Arduino: 6 kroků
Video: Miniaturní FLATHEAD šestiválcový benzínový motor Sestavení a běh! 2024, Listopad
Anonim
Model klimatizace Arduino
Model klimatizace Arduino

Jako součást demonstrace schopnosti našeho týmu vytvořit model inteligentního vlakového zařízení pro marketingové účely bylo cílem vytvořit systém, ve kterém snímač teploty čte data z okruhu a převádí informace na hodnotu teploty, která je zobrazeno na osvětlené obrazovce a zaměřeno na to, zda se ventilátor zapne nebo vypne. Účelem je pomoci přizpůsobit se jízdním podmínkám cestujících pomocí automatizovaného systému, který také zobrazuje teplotu v bezprostřední blízkosti.

Pomocí sady mikrokontrolérů Arduino a verzí MATLAB verze 2016b a 2017b jsme dokázali tyto výsledky s relativním úspěchem demonstrovat.

Krok 1: Zařízení

Zařízení
Zařízení

Sada mikrokontroléru s následujícími prvky:

-Sparkfun Red Board

-Sparkfun Breadboard

-LCD deska

-Potenciometr

-Senzor teploty

-Servo

-USB/Arduino adaptér

-propojovací vodiče (minimálně 25)

Notebook (Windows 10) se vstupem USB

3D vytištěný objekt (volitelně)

Krok 2: Nastavení mikrokontroléru

Nastavení mikrokontroléru
Nastavení mikrokontroléru
Nastavení mikrokontroléru
Nastavení mikrokontroléru
Nastavení mikrokontroléru
Nastavení mikrokontroléru
Nastavení mikrokontroléru
Nastavení mikrokontroléru

Zvažte toto: celý systém se skládá z jednotlivých jednotek, z nichž každá uplatňuje významný faktor na konečný výsledek. Z tohoto důvodu se důrazně doporučuje nastavit obraz obvodu před připojením vodičů ve spletitém nepořádku.

Obrázky každého jednotlivého modelu lze nalézt v příručce k sadě nástrojů k mikrokontroléru nebo na jeho webových stránkách

Začněte připojením teplotního čidla, potenciometru, servo konektorů a LCD k desce. Doporučuje se, aby vzhledem k velikosti LCD a požadavku na počet vodičů pro něj byl umístěn na vlastní polovinu prkénka s ostatními kousky na druhé polovině a aby byl potenciometr v oblasti, kde někdo může snadno otočte knoflíkem.

Pro referenci:

LCD: c1-16

Servo: i1-3 (GND + -)

Teplotní senzor: i13-15 (- GND +)

Potenciometr: g24-26 (- GND +)

Dále začněte připojovat propojovací vodiče ke každému kolíku jednotek mikrokontroléru; i když v celkovém velkém schématu byl libovolný, design byl vytvořen s těmito důležitými spojeními:

Připojení potenciometru k LCD: f25 - e3

Servo GND vodič: j1 - digitální vstup 9

Snímač teploty GND: j14 - analogový vstup 0

LCD vstupy: e11-e15-digitální vstup 2-5

e4 - digitální vstup 7

e6 - digitální vstup 6

(Poznámka: Pokud je úspěšná, obě světla na okraji LCD by měla blikat a potenciometr může pomoci upravit jeho jas, jakmile je napájen z adaptéru.)

Volitelné: Jako součást požadavku byl použit 3D vytištěný objekt. Aby se předešlo případnému poškození křehčích částí, bylo kolem LCD umístěno jako pouzdro prodloužené pouzdro. Rozměry obrazovky LCD se ukázaly být přibližně 2-13/16 "x 1-1/16" x 1/4 ", a proto se výrazně změnila pouze výška. Pokud je 3D tiskárna snadno dostupná, zvažte přidání osobního objektu i když zbytečné. Mějte také na paměti, že měření se mohou lišit.

Krok 3: Nastavení MATLABu

Nastavení MATLAB
Nastavení MATLAB
Nastavení MATLAB
Nastavení MATLAB

Nainstalujte si aktualizovanější verzi MATLABu (2016a a novější), dostupnou na webu MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Po otevření přejděte na Doplňky na kartě Domů a stáhněte si „Balíček podpory MATLAB pro hardware Arduino“, aby byly příkazy mikrokontroléru přístupné.

Po dokončení lze provést test s cílem zjistit připojení mikrokontroléru k jednomu počítači/notebooku. Po připojení pomocí adaptéru USB ze sady nástrojů vložte příkaz „fopen (serial ('nada'))."

Zobrazí se chybové hlášení s uvedením konektoru jako „COM#“, které bude potřeba k vytvoření objektu arduino, pokud je to vždy stejný vstup.

Vzhledem k tomu, že LCD nemá přímé připojení ke knihovně Arduino, musí být pro zobrazování zpráv vytvořena nová knihovna. Doporučujeme vytvořit soubor LCDAddon.m z příkladu LCD, který najdete v okně nápovědy MATLAB, po vyhledání „Arduino LCD“a umístění do složky +arduinoioaddons, nebo použijte připojenou komprimovanou složku a zkopírujte veškerý její obsah do výše uvedeného složku.

Pokud je úspěšný, pak kód pro vytvoření objektu Arduino v MATLABu je uveden níže.

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

Krok 4: Funkce

Funkce
Funkce
Funkce
Funkce

Vytvořte funkci MATLAB. Pro vstupy používáme proměnné „eff“a „T_min“; pro výstupy, i když v celkovém návrhu zbytečné, jsme použili proměnnou „B“jako způsob, jak obsahovat data z výsledků. Vstup "eff" umožňuje řídit maximální rychlost serva a vstup "T_min" ovládá požadovanou minimální teplotu. Hodnota „B“by tedy měla vytvořit matici, která obsahuje tři sloupce pro čas, teplotu a účinnost ventilátoru. Jako bonus k detailům má níže uvedený kód také prohlášení if, že rychlost ventilátoru se sníží o padesát procent, když se přiblíží požadované minimální teplotě.

Pokud jsou všechny vstupy a propojovací vodiče umístěny přesně a za předpokladu, že port připojení arduino je COM4 a název funkce je „fanread“, měl by stačit následující kód:

funkce [B] = fanread (Tmin, eff)

vymazat a; clear lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

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

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

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

pokud eff> = 1 || e <0

chyba ('Ventilátor se neaktivuje, pokud není nastaven efekt mezi 0 a 1.')

konec

pro t = 1: 10 % počet smyček/intervalů

jasné c; % zabránit chybě opakování

v = readVoltage (a, 'A0');

TempC = (v-0,5)*100; % odhad pro rozsahy napětí 2,7-5,5 V

pokud TempC> Tmin, pokud TempC

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff/2); % zapněte servo na poloviční rychlost

spd = 50;

jiný

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff); % zapněte servo při dané rychlosti

spd = 100;

konec

jiný

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

writePWMDutyCycle (a, 'D9', 0); % vypněte, pokud je již zapnuto

spd = 0;

konec

printLCD (lcd, c);

pauza (3); Uplyne % tři sekundy na smyčku

čas (t) = t.*3;

tempplot (t) = TempC;

jednat (t) = spd;

podkres (2, 1, 1)

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

osa ([0 33 0 40])

xlabel ('Čas (sekundy)')

ylabel ('Teplota (C)')

vydrž

děj ([0 33], [Tmin Tmin], 'r-')

vydrž

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

podkres (2, 1, 2)

sloupec (čas, akt) % sloupcový graf

xlabel ('Čas (sekundy)')

ylabel ('Účinnost (%)')

konec

B = transponovat ([čas; tempplot; jednat]);

konec

Nyní, když je funkce kompletní, je čas na testování.

Krok 5: Testování

Testování
Testování
Testování
Testování

Nyní otestujte funkci v příkazovém okně vložením „název_funkce (hodnota_vstupu_1, hodnota_vstupu_2)“a sledujte. Ujistěte se, že již neexistuje žádný objekt Arduino; pokud ano, odeberte jej příkazem „clear a“. Pokud dojde k chybám, zkontrolujte a zkontrolujte, zda nejsou konektory na špatném místě nebo zda jsou použity nesprávné digitální nebo analogové vstupy. Očekává se, že výsledky se budou lišit, i když to může být způsobeno umístěním určitých propojovacích vodičů a teplotního čidla.

Očekávání výsledků by měla vést ke změnám ve výkonu serva a dat na LCD. S každým třísekundovým intervalem by měl řádek textu zobrazovat teplotu ve stupních Celsia a to, zda je ventilátor aktivní, když ventilátor běží na plné otáčky, poloviční nebo žádné otáčky. Data by s největší pravděpodobností neměla být konzistentní, ale pokud toužíte po více různých výsledcích, umístěte hodnotu „Tmin“blízko průměrné teploty vytvářené obvodem.

Krok 6: Závěr

Závěr
Závěr

I když náročný úkol byl proveden metodou pokusu a omylu, konečné výsledky se ukázaly být docela zajímavé a uspokojivé. Systém jako takový pomáhá ilustrovat, kolik komplikovaných strojů nebo dokonce některých jejich částí lze považovat za soubor nezávislých částí umístěných společně za účelem dosažení konkrétního cíle.

Vzhledem k poměrně zjednodušenému designu konečného projektu mohou ti, kteří mají zájem zlepšit jeho výkon, provést v konečném produktu vylepšení a úpravy, díky nimž bude projekt lepší a propracovanější. Odhaluje však slabiny v obvodu, jako je aktivace serva, což má za následek sporadické výkyvy ve čtení napětí v obvodu, což může způsobit, že systém nikdy nedosáhne stejných výsledků. Také došlo k problémům se změnou rychlosti serva, když je "eff" nastaveno na 0,4 a vyšší. Pokud by byl použit snímač teploty a vlhkosti, konečný model by byl komplikovanější, ale představoval by konzistentnější hodnoty. Přesto je to zkušenost, která ukazuje, že složitý stroj může fungovat jako kombinace jeho jednoduchých částí.

Doporučuje: