Tartalomjegyzék:

Arduino légkondicionáló modell: 6 lépés
Arduino légkondicionáló modell: 6 lépés

Videó: Arduino légkondicionáló modell: 6 lépés

Videó: Arduino légkondicionáló modell: 6 lépés
Videó: Котика ударило током, 10 т. Вольт 2024, November
Anonim
Arduino légkondicionáló modell
Arduino légkondicionáló modell

Csapatunk azon képességének bemutatása részeként, hogy marketing célokra készítsen egy okosvonat -modellt, a cél egy olyan rendszer létrehozása volt, amelyben a hőmérséklet -érzékelő beolvassa az áramkörből származó adatokat, és az információkat olyan hőmérsékleti értékké alakítja át, amely megvilágított képernyőn jelenik meg, és arra összpontosít, hogy a ventilátor be- vagy kikapcsol. A cél az, hogy segítsen az utasok vezetési körülményeinek kielégítésében egy automatizált rendszer segítségével, amely a közvetlen közelében lévő hőmérséklet kijelzésére is szolgál.

Az Arduino mikrokontroller készlet és a MATLAB 2016b és 2017b verziók használatával relatív sikerrel bizonyíthattuk ezeket az eredményeket.

1. lépés: Felszerelés

Felszerelés
Felszerelés

Mikrokontroller készlet a következőkkel:

-Sparkfun Red Board

-Sparkfun Breadboard

-LCD tábla

-Potenciométer

-Hőmérséklet szenzor

-Szervo

-USB/Arduino adapter

-Jumper vezetékek (minimum 25)

Laptop (Windows 10) USB bemenettel

3D nyomtatott objektum (opcionális)

2. lépés: A mikrokontroller beállítása

A mikrokontroller beállítása
A mikrokontroller beállítása
A mikrokontroller beállítása
A mikrokontroller beállítása
A mikrokontroller beállítása
A mikrokontroller beállítása
A mikrokontroller beállítása
A mikrokontroller beállítása

Tekintsük ezt: az egész rendszer egyetlen egységből áll, amelyek mindegyike jelentős tényezőt alkalmaz a végeredményhez. Emiatt erősen ajánlott az áramkörről képet készíteni, mielőtt a vezetékeket összekuszált rendetlenségben csatlakoztatná.

Az egyes modellek képei megtalálhatók a mikrokontroller szerszámkészlet kézikönyvében vagy annak webhelyén:

Kezdje a hőmérséklet -érzékelő, a potenciométer, a szervocsatlakozók és az LCD rögzítésével. Javasoljuk, hogy az LCD mérete és a hozzá szükséges vezetékek száma miatt helyezze a kenyérsütő saját felére, a többi darab pedig a másik felére, és hogy a potenciométer olyan helyen legyen, ahol valaki könnyedén forgassa el a gombját.

Referencia:

LCD: c1-16

Szervó: i1-3 (GND + -)

Hőmérséklet érzékelő: i13-15 (- GND +)

Potenciométer: g24-26 (- GND +)

Ezután kezdje el az áthidaló vezetékek csatlakoztatását a mikrovezérlő egységek minden csapjához; bár a teljes nagy tervben tetszőleges, a tervezést a következő fontos kapcsolatokkal hozták létre:

A potenciométer csatlakoztatása az LCD -hez: f25 - e3

Szervo GND vezeték: j1 - Digitális bemenet 9

Hőmérséklet érzékelő GND: j14 - analóg bemenet 0

LCD bemenetek: e11-e15-Digitális bemenet 2-5

e4 - Digitális bemenet 7

e6 - Digitális bemenet 6

(Megjegyzés: Ha sikeres, az LCD szélén mindkét lámpának fel kell világítania, és a potenciométer segíthet a fényerő beállításában, ha az adaptert táplálja.)

Választható: Egy 3D nyomtatott objektumot használtak a követelmény részeként. A törékenyebb részek esetleges károsodásának elkerülése érdekében egy hosszabb tokot helyeztek hüvelyként az LCD köré. Az LCD képernyőjének méretei körülbelül 2-13/16 "x 1-1/16" x 1/4 "méretűnek bizonyultak, és így csak a magasság változott jelentősen. Ha a 3D nyomtató könnyen elérhető, fontolja meg személyes tárgy hozzáadását Figyelembe kell venni azt is, hogy a mérések eltérhetnek.

3. lépés: MATLAB beállítás

MATLAB beállítás
MATLAB beállítás
MATLAB beállítás
MATLAB beállítás

Telepítse a MATLAB (2016a és újabb) frissített verzióját, amely elérhető a MathWorks webhelyén: https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Miután megnyitotta, nyissa meg a Kiegészítők elemet a Kezdőlap lapon, és töltse le a "MATLAB támogatási csomagot az Arduino hardverhez", hogy a mikrovezérlő parancsai elérhetők legyenek.

Ha elkészült, tesztelhető a mikrovezérlő számítógéphez/laptophoz való csatlakoztathatósága. Miután csatlakoztatta őket a szerszámkészlet USB -adapterével, írja be a "fopen (serial ('nada'))" parancsot.

Hibaüzenet jelenik meg, amelyben a csatlakozó "COM#" lesz, amire szükség lesz egy arduino objektum létrehozásához, amennyiben az mindig ugyanaz a bemenet.

Mivel az LCD nem rendelkezik közvetlen kapcsolattal az Arduino könyvtárhoz, új könyvtárat kell létrehozni az üzenetek megjelenítéséhez. Javasoljuk, hogy hozzon létre egy LCDAddon.m fájlt a MATLAB súgóablakában található LCD példából, miután rákeresett az "Arduino LCD" elemre, és a +arduinoioaddons mappába helyezte, vagy használja a mellékelt tömörített mappát, és másolja át annak tartalmát a fent említett mappa.

Ha sikeres, akkor az Arduino objektum MATLAB -ban való létrehozásának kódja az alábbi.

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

4. lépés: Funkciók

Funkciók
Funkciók
Funkciók
Funkciók

Hozzon létre egy MATLAB függvényt. A bemenetekhez az "eff" és a "T_min" változókat használjuk; a kimenetek esetében, bár szükségtelenek az általános kialakításban, a "B" változót használtuk az eredmények adatainak tárolására. Az "eff" bemenet lehetővé teszi a szervó maximális sebességének szabályozását, a "T_min" bemenet pedig a kívánt minimális hőmérsékletet szabályozza. A "B" értéknek tehát mátrixot kell készítenie, amely három oszlopot tartalmaz a ventilátor időtartamára, hőmérsékletére és hatékonyságára vonatkozóan. Továbbá, a részletek bónuszaként az alább felsorolt kód is tartalmaz egy if-utasítást, amely szerint a ventilátor fordulatszáma ötven százalékkal csökken, ha eléri a kívánt minimális hőmérsékletet.

Ha minden bemenet és áthidaló vezeték pontosan van elhelyezve, és feltételezve, hogy az arduino csatlakozó portja COM4, és a funkció neve "fanread", akkor a következő kódnak elegendőnek kell lennie:

függvény [B] = fanread (Tmin, eff)

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

t = 0; t_max = 15; % idő másodpercben

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

initializeLCD (lcd, 'Sorok', 2, 'Oszlopok', 2);

ha eff> = 1 || e <0

hiba ("A ventilátor nem aktiválódik, ha az effekt 0 és 1 között van beállítva.")

vége

t = 1 esetén: 10 % ciklus/intervallum

tiszta c; % megakadályozza az ismétlődő hibát

v = olvasási feszültség (a, 'A0');

Hőmérséklet = (v-0,5)*100; % -os becslés 2,7-5,5 V feszültségtartományokra

ha TempC> Tmin, ha TempC

c = ['Hőmérséklet', szám2str (TempC, 3), 'C Be'];

writePWMDutyCycle (a, 'D9', eff/2); % kapcsolja be a szervót fél sebességgel

spd = 50;

más

c = ['Hőmérséklet', szám2str (TempC, 3), 'C Be'];

writePWMDutyCycle (a, 'D9', eff); % kapcsolja be a szervót a megadott sebességgel

spd = 100;

vége

más

c = ['Hőmérséklet', szám2str (TempC, 3), 'C Ki'];

writePWMDutyCycle (a, 'D9', 0); % kapcsolja ki, ha már be van kapcsolva

spd = 0;

vége

printLCD (lcd, c);

szünet (3); % három másodperc telik el ciklusonként

idő (t) = t.*3;

tempplot (t) = TempC;

aktus (t) = spd;

részterület (2, 1, 1)

plot (idő, temppplot, 'b-o') % vonaldiagram

tengely ([0 33 0 40])

xlabel ('Idő (másodperc)')

ylabel ('Hőmérséklet (C)')

kitartás

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

kitartás

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

részterület (2, 1, 2)

bar (time, act) % oszlopdiagram

xlabel ('Idő (másodperc)')

ylabel ('Hatékonyság (%)')

vége

B = transzponálás ([idő; temppplot; aktus]);

vége

Most, hogy a funkció befejeződött, ideje tesztelni.

5. lépés: Tesztelés

Tesztelés
Tesztelés
Tesztelés
Tesztelés

Most tesztelje a funkciót a parancsablakban a "function_name (input_value_1, input_value_2)" beillesztésével és nézze meg. Győződjön meg arról, hogy már nincs Arduino objektum; ha igen, akkor a "clear a" paranccsal távolítsa el. Hiba esetén ellenőrizze és ellenőrizze, hogy a csatlakozók nem a megfelelő helyen vannak -e, vagy nem megfelelő digitális vagy analóg bemenetet használnak. Az eredmények várhatóan változhatnak, bár ezt bizonyos áthidaló vezetékek és a hőmérséklet -érzékelő elhelyezése okozhatja.

Az eredmények elvárásainak változásokat kell okozniuk a szervó teljesítményében és az LCD -n megjelenő adatokban. Minden három másodperces időközönként egy szövegsornak meg kell jelenítenie a Celsius -fokban mért hőmérsékletet, valamint azt, hogy a ventilátor aktív -e vagy sem, miközben a ventilátor teljes sebességgel, fél sebességgel vagy egyáltalán nem működik. Az adatok nagy valószínűséggel nem lehetnek konzisztensek, bár ha többféle eredményt szeretne, helyezze a "Tmin" értéket az áramkör által termelt átlaghőmérséklet közelébe.

6. lépés: Következtetés

Következtetés
Következtetés

Bár a próba -tévedés nehéz feladat, a végeredmény meglehetősen érdekesnek és kielégítőnek bizonyult. Egy rendszer önmagában segít szemléltetni, hogy hány bonyolult gép vagy akár egyes alkatrészeik tekinthetők független alkatrészek gyűjteményének, amelyeket egy meghatározott cél elérése érdekében helyeznek össze.

A végső projekt meglehetősen leegyszerűsített felépítése miatt azok, akik érdeklődnek a teljesítmény javítása iránt, módosíthatnak és módosíthatnak a végterméken, ami jobbá és bonyolultabbá teheti a projektet. Azonban feltárja az áramkör gyengeségeit, például a szervó aktiválását, amely az áramkör feszültségleolvasásának szórványos ingadozását eredményezi, ami miatt a rendszer soha nem eredményez azonos eredményt. Ezenkívül problémák merültek fel a szervósebesség változásának észlelésekor, amikor az "eff" érték 0,4 vagy magasabb. Ha hőmérséklet- és páratartalom -érzékelőt használnának, a végső modell bonyolultabb lenne, ugyanakkor következetesebb értékeket mutatna be. Mindazonáltal ez egy olyan tapasztalat, amely azt mutatja, hogy egy összetett gép egyszerű részeinek kombinációjaként is működhet.

Ajánlott: